Graph Execution Engine

Graph Execution Engine is used to execute AI application graphs. It accepts multiple graph files as input, and all graphs are executed in same process context. It also needs manifest files as input which includes list of extensions to load. It must list all extensions required for the graph. Registry graph install command can be used to download all required extensions and generate manifest file.

/opt/nvidia/graph-composer/gxe --help
  Flags from gxf/gxe/gxe.cpp:
  -app (GXF app file to execute. Multiple files can be comma-separated)
    type: string default: ""
  -app_root (Root path for GXF app and subgraph files with relative path)
    type: string default: ""
  -graph_directory (Path to a directory for searching graph files.)
    type: string default: ""
  -log_file_path (Path to a file for logging.) type: string default: ""
  -manifest (GXF manifest file with extensions. Multiple files can be
    comma-separated) type: string default: ""
  -severity (Set log severity levels: 0=None, 1=Error, 2=Warning, 3=Info,
    4=Debug. Default: Info) type: int32 default: 3

Other options

1. How to override the parameters that are specified in the graph file using command line options?

1. Single graph file

Command line option --param of gxe can be used to override the parameters specified in the graph file. Complete path is delimited by / only exception being the last literal whose value has to be overridden is delimited by =

Below is the snippet of a graph file

---
name: Entity1
components:
- type: nvidia::gxf::PeriodicSchedulingTerm
  parameters:
    recess_period: 2000000
- type: nvidia::gxf::CountSchedulingTerm
  parameters:
    count: 100
- type: nvidia::gxf::test::StepCount
  parameters:
    expected_count: 100
---

To override the count of CountSchedulingTerm below command line option can be used.

--param=Entity1/nvidia::gxf::CountSchedulingTerm/count=101

2. Multiple subgraph files

When multiple subgraph files are used, then the entity names of various subgraphs are delimited by . until the componet name is reached whose parameter has to be overriden. Hereafter the component type and the parameter will be delimited by /

Below is the snippet of multiple sub graph files

test_subgraph.yaml

---
name: gather_subgraph
components:
- type: nvidia::gxf::Subgraph
  name: gather_subgraph
  parameters:
    location: "gxf/test/apps/gather_subgraph.yaml"
    prerequisites:
      monitored_rx: rx/signal
- name: output
  parameters:
    max_capacity: 2
- name: forward1_buf_term
  parameters:
    min_size: 1
---

gather_subgraph.yaml

---
name: forward_subgraph_1
components:
- name: forward
  type: nvidia::gxf::Subgraph
  parameters:
    location: gxf/test/apps/forward_subgraph.yaml
    prerequisites:
      monitored_rx: prerequisites/monitored_rx
---

forward_subgraph.yaml

---
name: counter
components:
- name: step_counter
  type: nvidia::gxf::test::StepCount
  parameters:
    expected_count: 100
---

To override the expected_count of step_counter below command line option can be used.

--param=gather_subgraph.forward_subgraph_1.counter/nvidia::gxf::test::StepCount/expected_count=101