CUDA Installation Guide

Installation guide for CUDA for the DRIVE OS release.

CUDA Toolkit Installation Instructions

The Safety toolkit is used primarily by customers going to Production with the Safety Certified DriveOS binaries and libraries and complying with the DriveOS Safety Manual.

The safety build, aarch64-QNX-safety, is only supported on QNX OS. The software stack is designed according to standard safety software development practices. This document assumes you have a safety-hardened stack running on QNX OS and safety-certified hardware.

The CUDA safety toolkit has these safety-certified elements:
  • CUDA runtime library

  • CUDA math library (no other CUDA libraries)

  • NVCC compiler

The safety build does not support CUDA developer tools. The users of the CUDA software stack are expected to debug the GPU software by building the software for aarch64-QNX.

The safety toolkit allows you to do the following:

  • Install more than one parallel safety toolkits on the same machine.

  • Use the safety certified NVCC compiler to build the application using standard QNX DriveOS build for debugging using CUDA development tools.

For details on CUDA host installation and cross development installation, see https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html and https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#cross-platform.

Note: The CUDA safety driver is a subset of the CUDA standard library. If you need to debug using standard build, use the standard CUDA driver and flash the standard build of DriveOS.

Terms and abbreviations:

AV
Autonomous vehicle; refers to autonomous vehicles as a class or an application area, as in "AV pipelines" or "AV use cases".
Safety
Used by developers for production with the Safety Certified and hardened APIs and DRIVE OS libraries that are compliant with the DRIVE OS Safety Manual.
Standard
Used by developers to create algorithms and AV applications for AV use cases on NVIDIA Automotive platforms using NVIDIA DRIVE OS APIs. Variants of Standard build include X86, AArch64 Linux, and AArch64 QNX.

Pre-installation Actions

Some actions must be taken before the CUDA Toolkit and Driver can be installed on Linux:
  • Verify the system has a CUDA-capable GPU.

  • Verify the system is running a supported version of Linux.

  • Verify the system has the correct kernel headers and development packages installed.

  • Verify the system has a host compiler such as qcc for QNX or gcc for Linux.

  • Verify the host system has at least 10GB free on the root partition.

  • Download the NVIDIA CUDA Toolkit.
Note: You can override the install-time prerequisite checks by running the installer with the -override flag. Remember that the prerequisites will still be required to use the NVIDIA CUDA Toolkit.

Verify You Have a CUDA-Capable GPU

To verify that your GPU is CUDA-capable, go to your distribution's equivalent of System Properties, or, from the command line, enter:

$ lspci | grep -i nvidia

If you do not see any settings, update the PCI hardware database that Linux maintains by entering update-pciids (generally found in /sbin) at the command line and rerun the previous lspci command.

If your graphics card is from NVIDIA and it is listed in http://developer.nvidia.com/cuda-gpus, your GPU is CUDA-capable.

The Release Notes for the CUDA Toolkit also contain a list of supported products.

Verify You Have a Supported Version of Linux

The CUDA Development Tools are only supported on specific distributions of Linux. The CUDA Safety toolkit is only supported on Ubuntu 18.04.

To determine which distribution and release number you're running, type the following at the command line:

$ uname -m && cat /etc/*release

Verify the System Has the Correct Kernel Headers and Development Packages Installed

Note: If you perform a system update which changes the version of the linux kernel being used, make sure to rerun the command below to ensure you have the correct kernel headers and kernel development packages installed. Otherwise, the CUDA Driver will fail to work with the new kernel.

Ubuntu

The kernel headers and development packages for the currently running kernel can be installed with:
$ sudo apt-get install linux-headers-$(uname -r)

Host Installation

Basic instructions can be found in the Quick Start Guide. Read on for more detailed instructions.

Overview

The Package Manager installation interfaces with your system's package management system. When using Deb, the downloaded package is a repository package. Such a package only informs the package manager where to find the actual installation packages, but will not install them.

If those packages are available in an online repository, they will be automatically downloaded in a later step. Otherwise, the repository package also installs a local repository containing the installation packages on the system. Whether the repository is available online or installed locally, the installation procedure is identical and made of several steps.

See Ubuntu for installation instructions, below.

Finally, some helpful package manager capabilities are detailed.

These instructions are for native development only. For cross-platform development, see the CUDA Cross Development Installation section.

Note: The package "cuda-core" has been deprecated in CUDA 9.1. Please use "cuda-compiler" instead.

Ubuntu

  1. Perform the pre-installation actions.

  2. Install repository meta-data

    $ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
  3. Installing the CUDA public GPG key

    When installing using the local repo:

    $ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub

    When installing using network repo on Ubuntu 18.04:

    $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<architecture>/7fa2af80.pub
  4. Update the Apt repository cache

    $ sudo apt-get update
  5. Install CUDA

    $ sudo apt-get install cuda
  6. Perform the post-installation actions.

Additional Package Manager Capabilities

Below are some additional capabilities of the package manager that users can take advantage of.

Available Packages

The recommended installation package is the cuda package. This package will install the full set of other CUDA packages required for native development and should cover most scenarios.

The cuda package installs all the available packages for native development. That includes the compiler, the debugger, the profiler, the math libraries, and so on. For x86_64 platforms, this also includes the visual profiler. It also includes the NVIDIA driver package.

On supported platforms, the cuda-cross-armhf, cuda-cross-aarch64, and cuda-cross-ppc64el packages install all the packages required for cross-platform development to ARMv7, ARMv8, and POWER8, respectively. The libraries and header files of the target architecture's display driver package are also installed to enable the cross compilation of driver applications. The cuda-cross-<arch> packages do not install the native display driver.

The packages installed by the packages above can also be installed individually by specifying their names explicitly. The list of available packages be can obtained with:

$ cat /var/lib/apt/lists/*cuda*Packages | grep "Package:"

Package Upgrades

The cuda package points to the latest stable release of the CUDA Toolkit. When a new version is available, use the following command to upgrade the toolkit and driver:

$ sudo apt-get install cuda

The cuda-cross-<arch> packages can also be upgraded in the same manner.

The cuda-drivers package points to the latest driver release available in the CUDA repository. When a new version is available, use the following command to upgrade the driver:

$ sudo apt-get install cuda-drivers

Some desktop environments, such as GNOME or KDE, will display an notification alert when new packages are available.

To avoid any automatic upgrade and lock down the toolkit installation to the X.Y release, install the cuda-X-Y or cuda-cross-<arch>-X-Y package.

Side-by-side installations are supported. For instance, to install both the X.Y CUDA Toolkit and the X.Y+1 CUDA Toolkit, install the cuda-X.Y and cuda-X.Y+1 packages.

Meta Packages

Meta packages are RPM/Deb packages which contain no (or few) files but have multiple dependencies. They are used to install many CUDA packages when you may not know the details of the packages you want. Below is the list of meta packages.

Table 1. Meta Packages Available for CUDA 10.2
Meta Package Purpose
cuda Installs all CUDA Toolkit and Driver packages. Handles upgrading to the next version of the cuda package when it's released.
cuda-10-2 Installs all CUDA Toolkit and Driver packages. Remains at version 10.2 until an additional version of CUDA is installed.
cuda-toolkit-10-2 Installs all CUDA Toolkit packages required to develop CUDA applications. Does not include the driver.
cuda-tools-10-2 Installs all CUDA command line and visual tools.
cuda-runtime-10-2 Installs all CUDA Toolkit packages required to run CUDA applications, as well as the Driver packages.
cuda-compiler-10-2 Installs all CUDA compiler packages.
cuda-libraries-10-2 Installs all runtime CUDA Library packages.
cuda-libraries-dev-10-2 Installs all development CUDA Library packages.
cuda-drivers Installs all Driver packages. Handles upgrading to the next version of the Driver packages when they're released.

Cross Development Installation

Perform the following steps to install CUDA for Safety.

  1. Obtain the three local repos:
    • cross-qnx-standard
    • cross-qnx-safe
    • minimal-safe-toolkit
      Note:cross-qnx-standard is a standard build and optional for safety-only development.
  2. Run the following commands, substituting the build number for n:

    $ sudo dpkg -i cuda-repo-minimal-safe-toolkit-10-2-local-10.2.n_1.0-1_amd64.deb
    $ sudo apt install cuda-qnx-safe-toolkit-10-2-n 
    $ sudo dpkg -i cuda-repo-cross-qnx-standard-10-2-local-10.2.n_all.deb
    $ sudo apt install cuda-qnx-standard-cross-qnx-10-2-n
    $ sudo dpkg -i cuda-repo-cross-qnx-safe-10-2-local-10.2.n_all.deb
    $ sudo apt update
    $ sudo apt install cuda-cross-qnx-safe-10-2-n

Target File Installation

Perform the following steps to install the target files:
  1. Obtain the target-repo, for example, cuda-repo-qnx-10-2-local-target-10.2.109_1.0-1_amd64.deb.
  2. Run the following comands:
    $ sudo dkg -i <package-name>.deb
    $ sudo apt-get update
    $ sudo apt-get install cuda-qnx-10-2

The target files will be installed on the host system at /usr/local/cuda-targets. You will need to copy these files onto the target file system.

Note: The target installation is only needed for standard builds. There are no dynamic libraries for safety build and there are no target files to be copied over.

Post-installation Actions

The post-installation actions must be manually performed. These actions are split into mandatory, recommended, and optional sections.

Mandatory Actions

Some actions must be taken after the installation before the CUDA Toolkit and Driver can be used.

Verify the installation was performed correctly by running the following command included in the cross safety packages:

$ verify_cuda_installation.sh

Environment Setup

The PATH variable needs to include:
  • /usr/local/cuda-safe-10.2/bin

To add this path to the PATH variable:

$ export PATH=/usr/local/cuda-safe-10.2/bin:/usr/local/cuda-safe-10.2/NsightCompute-2019.1${PATH:+:${PATH}}

In addition, when using the runfile installation method, the LD_LIBRARY_PATH variable needs to contain /usr/local/cuda-safe-10.2/lib64 on a 64-bit system, or /usr/local/cuda-safe-10.2/lib on a 32-bit system

  • To change the environment variables for 64-bit operating systems:

    $ export LD_LIBRARY_PATH=/usr/local/cuda-safe-10.2/lib64\
                             ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • To change the environment variables for 32-bit operating systems:

    $ export LD_LIBRARY_PATH=/usr/local/cuda-safe-10.2/lib\
                             ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Note that the above paths change when using a custom install path with the runfile installation method.

Recommended Actions

Other actions are recommended to verify the integrity of the installation.

Install Writable Samples

In order to modify, compile, and run the samples, the samples must be installed with write permissions. A convenience installation script is provided:
$ cuda-install-samples-10.2.sh <dir>
This script is installed with the cuda-samples-10-2 package. The cuda-samples-10-2 package installs only a read-only copy in /usr/local/cuda-10.2/samples.

Verify the Installation

Before continuing, it is important to verify that the CUDA toolkit can find and communicate correctly with the CUDA-capable hardware. To do this, you need to compile and run some of the included sample programs.

Note: Ensure the PATH and, if using the runfile installation method, LD_LIBRARY_PATH variables are set correctly.

Compiling the Examples

The version of the CUDA Toolkit can be checked by running nvcc -V in a terminal window. The nvcc command runs the compiler driver that compiles CUDA programs. It calls the host compiler such as qcc or gcc for C code and the NVIDIA PTX compiler for the CUDA code.

The NVIDIA CUDA Toolkit includes sample programs in source form. You should compile them by changing to ~/NVIDIA_CUDA-10.2_Samples and typing make. The resulting binaries will be placed under ~/NVIDIA_CUDA-10.2_Samples/bin.

Running the Binaries

After compilation, find and run deviceQuery under ~/NVIDIA_CUDA-10.2_Samples. If the CUDA software is installed and configured correctly, the output for deviceQuery should look similar to that shown in Figure 1.

Figure 1. Valid Results from deviceQuery CUDA Sample

Valid Results from deviceQuery CUDA Sample.


The exact appearance and the output lines might be different on your system. The important outcomes are that a device was found (the first highlighted line), that the device matches the one on your system (the second highlighted line), and that the test passed (the final highlighted line).

If a CUDA-capable device and the CUDA Driver are installed but deviceQuery reports that no CUDA-capable devices are present, this likely means that the /dev/nvidia* files are missing or have the wrong permissions.

On systems where SELinux is enabled, you might need to temporarily disable this security feature to run deviceQuery. To do this, type:
$ setenforce 0
from the command line as the superuser.

Running the bandwidthTest program ensures that the system and the CUDA-capable device are able to communicate correctly. Its output is shown in Figure 2.

Figure 2. Valid Results from bandwidthTest CUDA Sample

Valid Results from bandwidthTest CUDA Sample.


Note that the measurements for your CUDA-capable device description will vary from system to system. The important point is that you obtain measurements, and that the second-to-last line (in Figure 2) confirms that all necessary tests passed.

If the tests do not pass, make sure you have a CUDA-capable NVIDIA GPU on your system and make sure it is properly installed.

If you run into difficulties with the link step (such as libraries not being found), consult the Linux Release Notes found in the doc folder in the CUDA Samples directory.

Removing CUDA Toolkit and Driver

Follow the below steps to properly uninstall the CUDA Toolkit and NVIDIA Drivers from your system. These steps will ensure that the uninstallation will be clean.

Ubuntu

To remove CUDA Toolkit:
$ sudo apt-get --purge remove "*cublas*" "cuda*"
To remove NVIDIA Drivers:
$ sudo apt-get --purge remove "*nvidia*"

Troubleshooting

This section lists several scenarios in which anomalous conditions cause unintended results, and possible solutions.

Situation: The user provides the wrong input.

Response: dpkg/apt will produce an error indicating the instructions were incorrect and not take any action. Consult the documentation for more information.

Situation: The system reboots in the middle of an install.

Response: The install will fail. Any installed packages should be purged using sudo dpkg --purge and the installation should be triggered again.

Situation: The installation/verification fails due to file or package corruption. Package corruption may produce an error such as:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  cuda-nvdisasm-10-2
0 upgraded, 1 newly installed, 0 to remove and 105 not upgraded.
Need to get 0 B/28.2 MB of archives.
After this operation, 29.1 MB of additional disk space will be used.
Get:1 file:/var/cuda-repo-ubuntu1804-10-2-local  cuda-nvdisasm-10-2 10.2.167-1 [28.2 MB]
Err:1 file:/var/cuda-repo-ubuntu1804-10-2-local  cuda-nvdisasm-10-2 10.2.167-1
  Hash Sum mismatch
  Hashes of expected file:
   - SHA512:646bebb453fd6161932fb6c7c5a19a209cdde80771808cd80aaad549e03dd2f8f626ccadd7d9d9d67e4cbf988e8bd7cc59f202f4f5e7a20960f9267b84e2ce3f
   - SHA256:85c2209901934d547c7f9aab0f3026d5e1b70b4c19a666e6595e6803507f5a64
   - SHA1:68a1166e5b5dfc584626e4875ce1e5f551b22506 [weak]
   - MD5Sum:f6a7047a162bf45c9123865ffb4441d0 [weak]
   - Filesize:28164774 [weak]
  Hashes of received file:
   - SHA512:8eafd2a331977ce24fb19a36484b629cbb029cd788834d7a393be020805cbf440475f8af221eddcfd67f25496235be13e232387f06f1c7d339287558493e665a
   - SHA256:8a45f9b9d71a9666b7a2d27136e87c5f26c3c9dc70e578ed4d1b126b8e422a59
   - SHA1:be23bbc663ffb056084a19c161eacf22e0d373ac [weak]
   - MD5Sum:4c5e577308dcd696c97a0a29d4501be0 [weak]
   - Filesize:28158580 [weak]
  Last modification reported: Thu, 14 May 2020 18:54:27 +0000
E: Failed to fetch file:/var/cuda-repo-ubuntu1804-10-2-local/./cuda-nvdisasm-10-2_10.2.167-1_amd64.deb  Hash Sum mismatch
   Hashes of expected file:
    - SHA512:646bebb453fd6161932fb6c7c5a19a209cdde80771808cd80aaad539e03dd2f8f626ccadd7d9d9d67e4cbf988e8bd7cc59f202f4f5e7a20960f9267b84e2ce3f
    - SHA256:85c2209901934d547c7f9aab0f3026d5e1b70b4c19a666e6595e6803507f5a64
    - SHA1:68a1166e5b5dfc584626e4875ce1e5f551b22506 [weak]
    - MD5Sum:f6a7047a162bf45c9123865ffb4441d0 [weak]
    - Filesize:28164774 [weak]
   Hashes of received file:
    - SHA512:8eafd2a331977ce24fb19a36484b629cbb029cd788834d7a992be020805cbf440475f8af221eddcfd67f25496235be13e232387f06f1c7d339287558493e665a
    - SHA256:8a45f9b9d71a9666b7a2d27136e87c5f26c3c9dc70e578ed4d1b126b8e422a59
    - SHA1:be23bbc663ffb056084a19c161eacf22e0d373ac [weak]
    - MD5Sum:4c5e577308dcd696c97a0a29d4501be0 [weak]
    - Filesize:28158580 [weak]
   Last modification reported: Thu, 14 May 2020 18:54:27 +0000
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Response: Purge (using sudo dpkg --purge) any installed packages and attempt a reinstall. If the problem persists, try on a different host system. If it still persists, check for legitimate corruption by comparing the md5sum hash of the downloaded installer to the expected md5sum hash of the download.

Situation: Package dependencies are missing. If dependencies are missing, the error can manifest in two different forms:
Err:1 file:/var/cuda-repo-ubuntu1804-10-2-local  cuda-nvdisasm-10-2 10.2.167-1
  File not found - /var/cuda-repo-ubuntu1804-10-2-local/./cuda-nvdisasm-10-2_10.2.167-1_amd64.deb (2: No such file or directory)
The following packages have unmet dependencies:
cuda : Depends: cuda-10-2 (>= 10.2.167) but it is not going to be installed

Response: Ensure the required files are in the correct directories.

Situation: Package signing failed, or the signing key was not imported. The error will appear during the apt-get update step, and may look like:
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: file:/var/cuda-repo-ubuntu1804-10-2-local  Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80
W: Failed to fetch file:/var/cuda-repo-ubuntu1804-10-2-local/Release.gpg  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80
W: Some index files failed to download. They have been ignored, or old ones used instead.

Response: Import the required key.

Situation: System has run out of disk space. The error may look like:
Errors were encountered while processing:
 /tmp/apt-dpkg-install-PySCgh/088-nsight-systems-2020.2.5_2020.2.5.8-1_amd64.deb
 /tmp/apt-dpkg-install-PySCgh/106-cuda-documentation-10-2_10.2.167-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Response: Add disk space and retry the installation.

Notice

THE INFORMATION IN THIS GUIDE AND ALL OTHER INFORMATION CONTAINED IN NVIDIA DOCUMENTATION REFERENCED IN THIS GUIDE IS PROVIDED “AS IS.” NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE INFORMATION FOR THE PRODUCT, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Notwithstanding any damages that customer might incur for any reason whatsoever, NVIDIA’s aggregate and cumulative liability towards customer for the product described in this guide shall be limited in accordance with the NVIDIA terms and conditions of sale for the product.

THE NVIDIA PRODUCT DESCRIBED IN THIS GUIDE IS NOT FAULT TOLERANT AND IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE IN CONNECTION WITH THE DESIGN, CONSTRUCTION, MAINTENANCE, AND/OR OPERATION OF ANY SYSTEM WHERE THE USE OR A FAILURE OF SUCH SYSTEM COULD RESULT IN A SITUATION THAT THREATENS THE SAFETY OF HUMAN LIFE OR SEVERE PHYSICAL HARM OR PROPERTY DAMAGE (INCLUDING, FOR EXAMPLE, USE IN CONNECTION WITH ANY NUCLEAR, AVIONICS, LIFE SUPPORT OR OTHER LIFE CRITICAL APPLICATION). NVIDIA EXPRESSLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH HIGH RISK USES. NVIDIA SHALL NOT BE LIABLE TO CUSTOMER OR ANY THIRD PARTY, IN WHOLE OR IN PART, FOR ANY CLAIMS OR DAMAGES ARISING FROM SUCH HIGH RISK USES.

NVIDIA makes no representation or warranty that the product described in this guide will be suitable for any specified use without further testing or modification. Testing of all parameters of each product is not necessarily performed by NVIDIA. It is customer’s sole responsibility to ensure the product is suitable and fit for the application planned by customer and to do the necessary testing for the application in order to avoid a default of the application or the product. Weaknesses in customer’s product designs may affect the quality and reliability of the NVIDIA product and may result in additional or different conditions and/or requirements beyond those contained in this guide. NVIDIA does not accept any liability related to any default, damage, costs or problem which may be based on or attributable to: (i) the use of the NVIDIA product in any manner that is contrary to this guide, or (ii) customer product designs.

Other than the right for customer to use the information in this guide with the product, no other license, either expressed or implied, is hereby granted by NVIDIA under this guide. Reproduction of information in this guide is permissible only if reproduction is approved by NVIDIA in writing, is reproduced without alteration, and is accompanied by all associated conditions, limitations, and notices.

Acknowledgments

NVIDIA extends thanks to Professor Mike Giles of Oxford University for providing the initial code for the optimized version of the device implementation of the double-precision exp() function found in this release of the CUDA toolkit.

NVIDIA acknowledges Scott Gray for his work on small-tile GEMM kernels for Pascal. These kernels were originally developed for OpenAI and included since cuBLAS 8.0.61.2.

Notice

THE INFORMATION IN THIS GUIDE AND ALL OTHER INFORMATION CONTAINED IN NVIDIA DOCUMENTATION REFERENCED IN THIS GUIDE IS PROVIDED “AS IS.” NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE INFORMATION FOR THE PRODUCT, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Notwithstanding any damages that customer might incur for any reason whatsoever, NVIDIA’s aggregate and cumulative liability towards customer for the product described in this guide shall be limited in accordance with the NVIDIA terms and conditions of sale for the product.

THE NVIDIA PRODUCT DESCRIBED IN THIS GUIDE IS NOT FAULT TOLERANT AND IS NOT DESIGNED, MANUFACTURED OR INTENDED FOR USE IN CONNECTION WITH THE DESIGN, CONSTRUCTION, MAINTENANCE, AND/OR OPERATION OF ANY SYSTEM WHERE THE USE OR A FAILURE OF SUCH SYSTEM COULD RESULT IN A SITUATION THAT THREATENS THE SAFETY OF HUMAN LIFE OR SEVERE PHYSICAL HARM OR PROPERTY DAMAGE (INCLUDING, FOR EXAMPLE, USE IN CONNECTION WITH ANY NUCLEAR, AVIONICS, LIFE SUPPORT OR OTHER LIFE CRITICAL APPLICATION). NVIDIA EXPRESSLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR SUCH HIGH RISK USES. NVIDIA SHALL NOT BE LIABLE TO CUSTOMER OR ANY THIRD PARTY, IN WHOLE OR IN PART, FOR ANY CLAIMS OR DAMAGES ARISING FROM SUCH HIGH RISK USES.

NVIDIA makes no representation or warranty that the product described in this guide will be suitable for any specified use without further testing or modification. Testing of all parameters of each product is not necessarily performed by NVIDIA. It is customer’s sole responsibility to ensure the product is suitable and fit for the application planned by customer and to do the necessary testing for the application in order to avoid a default of the application or the product. Weaknesses in customer’s product designs may affect the quality and reliability of the NVIDIA product and may result in additional or different conditions and/or requirements beyond those contained in this guide. NVIDIA does not accept any liability related to any default, damage, costs or problem which may be based on or attributable to: (i) the use of the NVIDIA product in any manner that is contrary to this guide, or (ii) customer product designs.

Other than the right for customer to use the information in this guide with the product, no other license, either expressed or implied, is hereby granted by NVIDIA under this guide. Reproduction of information in this guide is permissible only if reproduction is approved by NVIDIA in writing, is reproduced without alteration, and is accompanied by all associated conditions, limitations, and notices.

Trademarks

NVIDIA, the NVIDIA logo, and cuBLAS, CUDA, CUDA-GDB, CUDA-MEMCHECK, cuDNN, cuFFT, cuSPARSE, DIGITS, DGX, DGX-1, DGX Station, NVIDIA DRIVE, NVIDIA DRIVE AGX, NVIDIA DRIVE Software, NVIDIA DRIVE OS, NVIDIA Developer Zone (aka "DevZone"), GRID, Jetson, NVIDIA Jetson Nano, NVIDIA Jetson AGX Xavier, NVIDIA Jetson TX2, NVIDIA Jetson TX2i, NVIDIA Jetson TX1, NVIDIA Jetson TK1, Kepler, NGX, NVIDIA GPU Cloud, Maxwell, Multimedia API, NCCL, NVIDIA Nsight Compute, NVIDIA Nsight Eclipse Edition, NVIDIA Nsight Graphics, NVIDIA Nsight Systems, NVLink, nvprof, Pascal, NVIDIA SDK Manager, Tegra, TensorRT, Tesla, Visual Profiler, VisionWorks and Volta are trademarks and/or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.