Overview

GXF is a modular and extensible framework to build high-performance AI applications. It aims to successfully achieve the following goals -

  • Enable developers to reuse components and app graphs between different products (Isaac, Jarvis, Metropolis, etc.) to build their own applications.

  • Enable developers to use common data formats (GXF file spec, GXF standard message formats).

  • Enable developers with tools to build and analyze their applications (GXF Omni GUI, GXF Python API).

  • Use the same foundation (GXF Core) to build and run AI applications (“public roads” for the company).

GXF Overview

Closer look on the GXF stack to show how each SDK will build extensions and with registry it can be re-used. Note that the Graph Composer GUI provides the Drag & Drop (min coding) tools to develop AI Pipelines based on GXF Graphs/Extensions

GXF Stack

GXF Core

GXF Core implements basic framework for entity, component and parameters which enable developers to implement GXF extensions on top of it. A short description of GXF terms used throughout the document –

Term

Description

Component

Functional block. Defines the data and behavior aspects of an entity.

Entity

Composition of functional blocks. An entity is a lightweight, uniquely identifiable container of components

System

Governs a set of components across different nodes

Connection

Connection between two components

Extension

Collection of functional blocks, matched 1-1 with a file on disk (library)

Graph

Data-driven representation of an application using entities and connections

Sub-graph

Graph wrapped in entity as functional block

GXF Extensions

A GXF extension is a shared library and/or header file containing one or more components. Extensions are divided into two types: - Standard Extensions GXF comes with a multiple standard components and systems - Custom Extensions Developers and NV product teams such as Isaac, Jarvis Speech, Jarvis vision, Clara AGX, DeepStream can inject customcomponents and systems to GXF Registry.

All extensions will be stored in GXF registry where all teams have access to it. Developers can reuse components and app graphs between different products (Isaac, Jarvis, Metropolis, DS, CVCore etc.)