Deploying Applications#
To deploy your application to a supported target, first ensure that you have flashed the SOC with a compatible BSP image. See release notes for supported operating systems.
It is also recommended to review the release notes and PVA documentation which is included with your operating system.
Deploying the cuPVA Runtime#
PVA applications require the cuPVA host runtime. The host runtime can be linked statically or dynamically. If it is linked dynamically, the runtime needs to be deployed along with your application. The cuPVA host dynamic runtime makes use of symlinks to select the appropriate version. cuPVA host dynamic runtimes are ABI compatible for the same major.minor version. Therefore, you should always choose to deploy the latest available version of the cuPVA host runtime matching the major.minor release which you used to build your application.
For some platforms, the cuPVA runtime comes in safety and non-safety variants. Be sure to deploy the correct runtime for your build configuration.
Deploying the cuPVA Runtime on L4T#
On L4T targets, the cuPVA host dynamic runtime can be installed with:
sudo apt install pva-sdk-2.7.1-l4t
See installation for more details. The appropriate .deb file can also be extracted from the local installer and redistributed with your application.
Note
Installing the pva-sdk-2.7.1-l4t
package also runs ldconfig
so that the cuPVA runtime can be found system-wide without using LD_LIBRARY_PATH
or similar.
Deploying the cuPVA Runtime on Automotive Platforms with Read-Only Filesystems#
On targets with read-only filesystems, the cuPVA host runtime may need to be deployed to the filesystem prior to flashing the board. For example, in DRIVE OS, users typically modify the filesystem using the DRIVE OS SDK/PDK. Refer to the SDK/PDK documentation for details about how to deploy binaries and files to your chosen operating system.
The cuPVA runtime libraries are installed with the PVA SDK on the host under /opt/nvidia/pva-sdk-2.7/lib/<arch>
. Proper filesystem access and ownership permissions should be set as required for a library which will be loaded by a user’s application, and the libraries must be placed at the correct filesystem paths. Symlinks should also be deployed to ensure correct operation.
The dynamic runtime library and symlinks must be in a path recognized by the dynamic loader. This can be achieved by configuring
your system (for example, by using ldconfig
on Linux platforms) or by setting the LD_LIBRARY_PATH
environment variable when
launching a cuPVA application.
Note
The cuPVA host utility library is not necessary to build and run PVA applications, but does provide some additional data logging and debug utilities, beyond what is available in the host runtime library. Some samples use this library as a demonstration.
Deploying Your Application#
After deploying the cuPVA host runtime, your application can now be deployed by installing it on the target device.
In addition to deploying your application, you may need to deploy an allowlist. See vpu_allowlist for more information.