Build and Run Sample Applications for DRIVE OS 6.x Linux

Note: To access the GPU from a Docker Container, please ensure that you have NVIDIA Container Toolkit installed. Installation instructions for NVIDIA Container Toolkit can be found at https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html for your host development environment distribution. An NVIDIA GPU and appropriate CUDA drivers must also be available on the host to run GPU-accelerated applications, including samples.
Note: If you are compiling and running samples in Docker and you want to preserve the compiled samples, please keep in mind that Docker containers are a temporary environment that will essentially be deleted when the container is stopped. To preserve the changes made in a running container, please refer to the Docker official documentation on committing Docker images: https://docs.docker.com/engine/reference/commandline/commit.

Alternatively, if the container was started with a mounted ${WORKSPACE}, you may copy or move the compiled binaries to the mounted ${WORKSPACE} before exiting the container so that the compiled binaries will be available on the host.

Graphics Applications

For boards that are pre-flashed or flashed with the custom GDM desktop file system (default for SDK Manager and Docker installations), the Bubble sample application is available in the /opt/nvidia/drive-linux/samples/ folder.

To run a basic X11 sample, use the following commands:

$ cd /opt/nvidia/drive-linux/samples/opengles2/bubble/x11 
$ ./bubble -fps 

To run other graphics samples for X11 and the supported window systems, see the DRIVE OS 6.0 SDK Developer Guide section on "Build and Run Sample Applications for DRIVE OS 6.0 Linux" and "Windows Systems."

CUDA

Documentation is available online: CUDA Toolkit Documentation v11.4.4.

  • The installations of CUDA Host x86 and Linux AArch64 are in the /usr/local/cuda-11.4/ folder.
  • The source code files of all CUDA samples are in the /usr/local/cuda-11.4/samples folder.

How to Build the CUDA Samples for the Linux Target

Host cross-compile is supported for DRIVE OS releases only. After you finish installing CUDA x86 and cross-compile packages, perform the following steps:

  1. Install the CUDA sample sources to a directory on your x86 development host where you do not need root privileges to write, such as the $HOME directory as shown in the following example:

    $ cd ~/
    • Use the following command to run the cuda-install-samples-11.4.sh script from the CUDA installation in the x86 host file system:

      $ <$NV_WORKSPACE>/drive-linux/filesystem/targetfs/usr/local/cuda-11.4/bin/cuda-install-samples-11.4.sh .
      Where $NV_WORKSPACE is:
      • Docker: /drive
    • A successful run will show the following:
      Copying samples to ./NVIDIA_CUDA-11.4_Samples now...
      Finished copying samples.

      Samples will be installed to the directory ~/NVIDIA_CUDA-11.4_Samples.

  2. $ cd ~/NVIDIA_CUDA-11.4_Samples
    $ sudo make SMS=87 TARGET_ARCH=aarch64 TARGET_OS=linux TARGET_FS=$NV_WORKSPACE/drive-linux_src/filesystem/targetfs
Note: This will build the samples for the Orin GPU (SMS=87). To build for other GPUs, replace the SMS value with the target compute version.    

How to Run the CUDA Samples

To run a CUDA sample application:

  1. Copy the sample files of your choice to the target from the host.

    For example:

    $ cd ~/
    $ rcp -r NVIDIA_CUDA-11.4_Samples <username>@<host>:/home/<username>
  2. From the target, run the sample application.
    $ cd ~/NVIDIA_CUDA-11.4_Samples/bin/aarch64/linux/release/
    $ ./deviceQueryDrv

TensorRT

After you finish installing the TensorRT packages, the /usr/src/tensorrt folder is created on the development host.

For more information about:

How to Build the TensorRT Samples

On the development host:

$ cd /usr/src/tensorrt/samples
$ sudo make TARGET=aarch64

How to Run the TensorRT Samples on the Target

To run a TensorRT sample application,

  1. Copy the sample files of your choice to the target.

  2. From the target, run the sample application.

For example, from the host:

$ scp -r /usr/src/tensorrt <username>@<target ip address>:/home/nvidia/tensorrt

From the target:

$ cd /home/nvidia/tensorrt
$ ./bin/sample_algorithm_selector

For further information, the TensorRT Developer guide and API reference documents are available at https://docs.nvidia.com/deeplearning/tensorrt/index.html, including sample cross-compile information at https://docs.nvidia.com/deeplearning/tensorrt/sample-support-guide/index.html#cross-compiling-linux.