Registry Command Line Interface

The Registry command line interface (CLI) can be invoked by registry command with the following options:

registry –help
registry --version
registry command [args]
Where
  • -h/--help brings up the help options and exit

  • -v/--version prints the version and exits.

The sections below provide details about the command options that can be used with the registry.

cache

This command is used to interact with the cache content.

Command syntax

registry cache [args]

Optional arguments:

  • -h/--help - Print help and exit.

  • -s/--set <new_cache_path> - Set an absolute path where the cache must be located.

  • -c/--clean - Clean the cache.

  • -r/--refresh - Refresh the cache.

  • -v/--view - View the cache location.

repo

This command is used to interact with the repositories.

Command syntax

registry repo [args]

Optional arguments:

  • -h/--help - Print help and exit.

repo clean

This command is used to clean the default repository.

Command syntax

registry repo clean [args]

Optional arguments:

  • -h/--help - Print help and exit.

repo list

This command is used to list repositories.

Command syntax:

registry repo list [args]

Optional arguments:

  • -h/--help - Print help and exit.

  • -d/--details - Provide details about repositories.

repo info

This command is used to provide information about a repository.

Command syntax:

registry repo info [args]

Required arguments:

  • -n/--name <repository_name> - Provide details a repository.

Optional arguments:

  • -h/--help - Print help and exit.

repo sync

This command is used to synchronize a repository. Also synchronizes each extension of the provided repository to the cache.

Command syntax:

registry repo sync [args]

Required arguments:

  • -n/--name <repository_name> - Set the name of repository to be used.

Optional arguments:

  • -h/--help - Print help and exit.

extn

An extension references headers, shared libraries, binary files and data files. It is referenced by uuid (Universally unique identifier), a name and a version. It can depend on other extensions for which their name, uuid and version must be specified. Also, an extension contains a list of components. An extension can be implemented for several targets with differences in architecture, operating system, distribution and CUDA version. Each one of these combinations is called a variant.

Each extension has an interface, this interface is composed of an extension.yaml file along with optional header files. These files are common for all variants of that extension.

Each extension contains a list of components. A component contains a typename, a type_id, a base typename, a description and a boolean telling if the component is abstract.

Command syntax:

registry extn [args]

Optional arguments:

  • -h/--help - Print help and exit.

extn add

This command is used to add an extension.

Command syntax:

registry extn add [args]

Required arguments:

  • -m/--manifest-name <manifest_name> - Set a manifest path.

Optional arguments:

  • -h/--help - Print help and exit.

Here is an example of <manifest_name> argument:

name: cuda
extension_library: libgxf_cuda.so
uuid: d63a98fa-7882-11eb-a917-b38f664f399c
version: 2.5.0
license_file: gxf/cuda/LICENSE
url: www.nvidia.com
git_repository: null
labels:
- gxf
priority: 1
platform:
  arch: x86_64
  os: linux
  distribution: ubuntu_22.04
compute:
  cuda: 12.2
  tensorrt: null
  cudnn: null
  deepstream: null
  triton: null
  vpi: null
dependencies:
- extension: std
  uuid: 8ec2d5d6-b5df-48bf-8dee-0252606fdd7e
  version: 2.5.0
  manifest: std/register_std_ext_manifest.yaml
headers:
- cuda_common.hpp
- cuda_event.hpp
- cuda_stream.hpp
- cuda_stream_id.hpp
- cuda_stream_pool.hpp
binaries: []
python_alias: cuda
namespace: gxf
python_bindings:
- gxf/cuda/cuda_pybind.so
python_sources:
- __init__.py
- Components.py
data: []

extn sync

This command is used to synchronize an extension.

Command syntax:

registry extn sync [args]

Required arguments:

  • -r/--repo-name <repository_name> - Set a repository name.

  • -e/--extension-name <extension_name> - Set an extension name.

  • -s/--select-version <extension_version> - Select a version.

Optional arguments:

  • -h/--help - Print help and exit.

extn import

This command is used to import extension packages from NGC. A specific version of an extension contains an interface and multiple variants.

Interface Command syntax:

registry extn import interface [args]

Required arguments:

  • -d/--output-directory <directory> - Select an output directory.

  • -s/--select-version <extension_version> - Select an extension version.

  • -n/--extn-name <extension_name> - Select an extension name.

Optional arguments:

  • -h/--help - Print help and exit.

Variant Command syntax: ::

registry extn import variant [args]

Required arguments: * -d/--output-directory <directory> - Select an output directory. * -s/--select-version <extension_version> - Select an extension version. * -n/--extn-name <extension_name> - Select an extension name. * -a/--arch <architecture> - Set an architecture. * -f/--distro <distribution> - Set a distribution. * -o/--os <os> - Select an operating system.

Optional arguments:

  • --cuda <cuda> - Select a CUDA version.

  • --cudnn <cudnn> - Select a CUDNN version

  • --tensorrt <tensorrt> - Select a TensorRT version.

  • --deepstream <deepstream> - Select a DeepStream version

  • --triton <triton> - Select a Triton version.

  • --vpi <vpi> - Select a VPI version.

  • -h/--help - Print help and exit.

Supported values for the required arguments:

Arguments

Supported

Default

Architecture

aarch64, x86_64, sbsa

x86_64

Distribution

ubuntu_22.04

ubuntu_22.04

Operating System

linux

linux

extn list

This command is used to list extensions. Once extensions are present in cache, it is possible to list them and obtain details about them. Also, it is possible to filter extensions to display only the ones matching some characteristics. The filtering is optional.

Command syntax:

registry extn list [args]

Optional arguments:

  • -h/--help - Print help and exit.

  • -r/--repo-name <repository_name> - Select a repository name.

  • -n/--name <extension_name> - Select an extension name.

  • -a/--author <extension_author> - Select an author.

  • -l/--labels <label1> [ <label2>...] - Select one or multiple labels.

extn info

This command is used to provide information about an extension.

Command syntax:

registry extn info [args]

Required arguments:

  • -n/--extn-name <extension_name> - Select an extension name.

Optional arguments:

  • -h/--help - Print help and exit.

extn versions

This command is used to display versions of an extension.

Command syntax:

registry extn versions [args]

Required arguments:

  • -n/--name <extension_name> - Select an extension name.

Optional arguments:

  • -h/--help - Print help and exit.

  • -r/--repo-name <repository_name> - Select a repository name.

extn variants

This command is used to display variants of an extension.

Command syntax:

registry extn variants [args]

Required arguments:

  • -n/--name <extension_name> - Select an extension name.

  • -v/--version <version> - Select an extension version.

Optional arguments:

  • -h/--help - Print help and exit.

extn dependencies

This command is used to display all dependencies of an extension.

Command syntax:

registry extn dependencies [args]

Required arguments:

  • -n/--name <extension_name> - Select an extension name.

  • -s/--select-version <extension_version> - Select an extension version.

Optional arguments:

  • -h/--help - Print help and exit.

comp

This command is used to interact with components. Each component contains a list of parameters. A parameter contains a key, a headline, a description, a gxf_parameter_type, a default value, a handle type and flags.

Command syntax:

registry comp [args]

Optional arguments:

  • -h/--help - Print help and exit.

comp list

This command is used to list components. Filters are available as it is the case for components.

Command syntax:

registry comp list [args]

Optional arguments:

  • -h/--help - Print help and exit.

  • -b/--base-type <base_type> - Select a base type.

  • -r/--repo-name <repository_name> - Select a repository name.

  • -t/--typename <typename> - Select a typename.

comp info

This command is used to provide information about a component.

Command syntax:

registry comp info [args]

Required arguments:

  • -t/--type <component_type> - Select a component type.

Optional arguments:

  • -h/--help - Print help and exit.

graph

This command is used to interact with the graph.

Command syntax:

registry graph [args]

Optional arguments:

  • -h/--help - Print help and exit.

graph install

This command is used to install graph and generate a manifest with the list of extensions needed to execute the graph and in the order in which they must be loaded. Also generates an archive of the extensions and their files corresponding to the variant arguments specified using the target file. For every extension used in the graph, the registry will choose the closest matching variant from its cache and create the archive. The variant chosen by the registry will be specified in the output manifest file. Generated archive can also be unpacked locally into a directory specified by --archive-dir-path.

Command syntax:

registry graph install [args]

Required arguments:

  • -g/--graph-file <graph_file> - Set the graph file to be used.

  • -d/--target-file-path <target_file_path> - Set the target file path

  • -m/--manifest-file-path  <manifest_file_path> - Set the manifest file path.

Optional arguments:

  • -h/--help - Print help and exit.

  • -u/--output-directory <output_directory> - Set the output directory.

  • -r/--archive-dir-path  <archive_directory_path> - Set the archive directory path.

  • -i/--in-export-dir-path <in_export_dirpath> - Set the export directory path.

Sample Target File:

platform:
  arch: x86_64
  os: linux
  distribution: ubuntu_22.04
compute:
  cuda: 12.2
  cudnn: 8.9.2
  tensorrt: 8.6.1
  deepstream: 7.0
  triton: 2.37.0
  vpi: 2.3.1