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 `` - 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 `` - 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 `` - 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 `` - Set a manifest path. Optional arguments: * ``-h/--help`` - Print help and exit. Here is an example of ```` argument: .. image:: /content/Registry_CLI_extn_manifest_example.png :align: center :alt: Sample screenshot for manifest_name extn sync ~~~~~~~~~~ This command is used to synchronize an extension. **Command syntax**: :: registry extn sync [args] Required arguments: * ``-r/--repo-name `` - Set a repository name. * ``-e/--extension-name `` - Set an extension name. * ``-s/--select-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 `` - Select an output directory. * ``-s/--select-version `` - Select an extension version. * ``-n/--extn-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 `` - Select an output directory. * ``-s/--select-version `` - Select an extension version. * ``-n/--extn-name `` - Select an extension name. * ``-a/--arch `` - Set an architecture. * ``-f/--distro `` - Set a distribution. * ``-o/--os `` - Select an operating system. Optional arguments: * ``--cuda `` - Select a CUDA version. * ``--cudnn `` - Select a CUDNN version * ``--tensorrt `` - Select a TensorRT version. * ``--deepstream `` - Select a DeepStream version * ``--triton `` - Select a Triton version. * ``--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_18.04 ubuntu_18.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 `` - Select a repository name. * ``-n/--name `` - Select an extension name. * ``-a/--author `` - Select an author. * ``-l/--labels [ ...]`` - 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 `` - 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 `` - Select an extension name. Optional arguments: * ``-h/--help`` - Print help and exit. * ``-r/--repo-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 `` - Select an extension name. * ``-v/--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 `` - Select an extension name. * ``-s/--select-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 `` - Select a base type. * ``-r/--repo-name `` - Select a repository name. * ``-t/--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 `` - 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 `` - Set the graph file to be used. * ``-d/--target-file-path `` - Set the target file path * ``-m/--manifest-file-path `` - Set the manifest file path. Optional arguments: * ``-h/--help`` - Print help and exit. * ``-u/--output-directory `` - Set the output directory. * ``-r/--archive-dir-path `` - Set the archive directory path. * ``-i/--in-export-dir-path `` - Set the export directory path. **Sample Target File**: :: platform: arch: x86_64 os: linux distribution: ubuntu_18.04 compute: cuda: 11.4 tensorrt: 8.0.1.6 cudnn: 8.2.2.26 deepstream: 6.0 triton: 2.13.0 vpi: 1.1.12