Jump to content

PVA validation

From RidgeRun Developer Wiki
Yocto Documentation
Release 2026


Follow us on: YouTube Twitter LinkedIn Email Share this page

Share This Page

Preferred Partner Logo 3 Partner Program Banner



NVIDIA Jetson AGX Thor integrates a Programmable Vision Accelerator (PVA), a dedicated hardware engine for supported computer vision and image-processing operations.

This OE4T Yocto workspace provides recipes for the PVA kernel driver, firmware, user-space libraries, and NVIDIA Vision Programming Interface (VPI) runtime. The meta-tegra-community layer supplies the VPI sample applications.

This page describes how to verify PVA support and execute PVA-accelerated applications on Jetson AGX Thor using VPI 4 and Jetson Linux R39.2.1.

Overview

Running the VPI PVA examples requires:

  • PVA kernel driver and firmware.
  • NVIDIA PVA user-space libraries.
  • NVIDIA VPI runtime with PVA backend support.
  • Sample applications implementing supported algorithms.

The relevant components are distributed across these layers:

Component Recipe or package Layer
VPI runtime libnvvpi4 meta-tegra
PVA user-space libraries tegra-libraries-pva meta-tegra
cuPVA runtime libraries pva-sdk meta-tegra
VPI sample applications vpi4-samples meta-tegra-community
VPI test scripts vpi-tests, also provides vpi4-tests meta-tegra-community
Full demo image demo-image-full meta-tegrademo

The demo-image-full recipe includes vpi4-tests, which depends on vpi4-samples. No additional IMAGE_INSTALL setting is required for this image.

The current pva-sdk recipe installs cuPVA runtime libraries. It does not install a complete SDK development environment or SDK examples, and it is not required by the VPI sample recipes described here.

Checking PVA Support on the Target

Run the commands in this section on the Jetson.

Identify the flashed image:

cat /etc/issue

For the full demo image, the output includes:

Image 'demo-image-full' ready on ...

Check whether the PVA device node exists:

ls -l /dev/nvhost-ctrl-pva*

On the tested Thor system, this lists the character device:

/dev/nvhost-ctrl-pva0

The presence of the device node confirms that the driver exposes a PVA device. A successful application workload is needed to validate PVA execution.

Preparing the VPI Samples

Check that the sample applications are installed:

ls /opt/nvidia/vpi4/bin/

Create a writable directory for generated output:

mkdir -p ~/pva-test
cd ~/pva-test

Run the following examples from this directory. Video examples can generate large output files; use a filesystem with several GB of available space.

After each sample, check its exit status immediately. A status of 0 indicates successful completion.

Gaussian Filter PVA Benchmark

Run:

/opt/nvidia/vpi4/bin/vpi_sample_05_benchmark pva

echo "Exit status: $?"

The benchmark exercises a Gaussian filter using the selected backend. Example output may resemble:

Input size: 1920 x 1080
Image format: VPI_IMAGE_FORMAT_U16
Algorithm: 5x5 Gaussian Filter on pva
Approximated elapsed time per call on pva: 0.402835 ms

The dimensions, format, and timing shown here are illustrative. Execution time depends on the sample version, platform configuration, clocks, and operating conditions.

Basic PVA Convolution Test

Run the convolution sample with the PVA backend:

/opt/nvidia/vpi4/bin/vpi_sample_01_convolve_2d \
    pva /opt/nvidia/vpi4/assets/kodim08.png

echo "Exit status: $?"

This command was validated on the Jetson AGX Thor running demo-image-full. It completed without console output and returned:

Exit status: 0

The explicit pva argument selects the PVA backend.

Edge image generated by the PVA convolution example
Output generated by the Basic PVA Convolution example.

Harris Corner Detection

Run:

/opt/nvidia/vpi4/bin/vpi_sample_03_harris_corners \
    pva /opt/nvidia/vpi4/assets/kodim08.png

echo "Exit status: $?"

The application detects corner features in the input image. Output may include a keypoint count, for example:

184 keypoints found

The exact count is illustrative, not a pass criterion. Check that the application completes without execution errors and returns 0.

Corner features detected by the PVA Harris corner detection example
Output generated by the Harris Corner Detection example.

Algorithms Supported by the PVA Backend

The NVIDIA VPI 4.1 platform support table lists the following 28 algorithms with PVA backend support on Jetson Orin and Jetson Thor. Each link provides the algorithm documentation and backend limitations.

Troubleshooting

VPI Samples Are Not Available

If /opt/nvidia/vpi4/bin/ does not exist, identify the image running on the target:

cat /etc/issue

The project's demo-image-full includes the VPI samples automatically. Other images, including demo-image-base, may require an explicit package addition.

For those images, add this to build/conf/local.conf on the build host:

IMAGE_INSTALL:append = " vpi4-samples"

Rebuild the selected image:

bitbake demo-image-base

From the build directory, verify that its manifest contains the samples:

grep '^vpi4-samples ' \
    tmp/deploy/images/jetson-agx-thor-devkit/demo-image-base-jetson-agx-thor-devkit.rootfs.manifest

If using demo-image-full, substitute that image name in the build and manifest commands.

Extract the newly generated flash bundle into a fresh directory, put the board into Force Recovery Mode, and flash it using sudo ./initrd-flash.

Flash the same image recipe that was rebuilt. Rebuilding demo-image-base does not update an existing demo-image-full bundle.

PVA Device Is Not Available

Inspect the kernel log:

dmesg | grep -i -E 'pva|vpu'

Check whether the kernel module is installed:

find "/lib/modules/$(uname -r)" -name 'nvhost-pva.ko*'

Check loaded modules:

lsmod | grep -i pva

Also verify that the kernel, firmware, and user-space libraries belong to the BSP used to build the image.


Cookies help us deliver our services. By using our services, you agree to our use of cookies.