Release Notes#
PVA SDK v2.8.0#
PVA SDK 2.8 is a feature release which adds support for improved internal driver APIs and various new runtime features, described in these release notes.
Supported Platforms and Devices#
Host#
The PVA SDK is designed for cross-compilation from an x86-64 host development environment. Supported host operating systems for this release are:
Ubuntu 22.04
Ubuntu 24.04
The PVA SDK may be used on a supported OS installation or via Docker. Refer to Installation and PVA SDK samples for more details on host setup and dependencies.
Targets#
Supported targets are:
DRIVE OS 6.5 or greater
JetPack 6.0 or greater
Native x86
Simulator
PVA Architectures#
This release of PVA SDK supports Orin and Thor PVA architectures.
New Features#
Runtime API Features#
Added
cupva::Error::DataFlowActiveAfterVpuExitto indicate that DataFlows were active after VPU exited.The cuPVA runtime now internally uses a more efficient command submission mechanism. This allows for better VPU utilization and better performance.
cupva::Context::finalize()now throws an exception if user-allocated or user-mapped memory was not explicitly freed. This helps users identify and address potential memory leaks.
Deprecations and Compatibility#
Clarified that
cupva::Fence::wait()may only be called on Fences which are signaled by PVA. For externally signaled fences imported from NvSciSync, use NvSciSync APIs instead.
Bug Fixes#
The following bugs are resolved with this release.
Reference |
Description |
Fix information |
Affected platforms |
|---|---|---|---|
PVAAS-21064 |
VPU Symbol type checking not enabled in Native builds. |
Fixed |
Native |
PVAAS-21363 |
Context was not being destroyed correctly, leading to applications crashing on exit when using CUDA memory. |
Fixed |
Orin and Thor |
PVAAS-21373 |
Finalizing cupva::Context after using CUDA memory with driver version 2006 was incorrectly throwing an exception. Destroying such a Context would cause spurious error messages. |
Fixed |
Orin and Thor |
Known Issues#
This release contains the following known issues:
Reference |
Description |
Suggested workaround |
Projected closure |
|---|---|---|---|
PVAAS-16827 |
When linking StaticDataFlows with constant padding, the constant value must be the same even if px/py are both zero for one of the dataflows. Failure to do so leads to Dataflow compilation failing. |
Use the same constant value in these cases. |
Not planned |
PVAAS-12732 |
A StaticDataFlow specifying VMEM->VMEM transfer cannot be linked to a StaticDataFlow specifying DRAM->VMEM transfer. |
Use unlinked DataFlows for these cases. |
Not planned |
PVAAS-6633 |
NvSci APIs and CUDA interoperability are not supported for native. |
Decouple interop from execution to allow testing kernels in isolation in native. |
Not planned |
PVAAS-16828 |
Multiple |
Use separate handlers for such cases. |
Not planned |
PVAAS-16829 |
Chess compiler may optimize away some VMEM store instructions when calling dataflow Open/Update and Trig APIs back to back, leading to data corruption. |
Insert a chess_memory_fence() between Open and Trig APIs. |
Future feature release |
PVAAS-17465 |
When using a single UnifiedRDFHandler for multiple tile buffers in circular buffer mode, only the tilebuffer specified to |
Explicitly copy 64B of secondary tilebuffers using |
Future feature release |
PVAAS-21339 |
CUDA interoperability tutorial build fails with cmake lesser than 3.22 while using CUDA sbsa package |
Use cmake version 3.28 or higher. |
Future feature release |
This release contains the following known issues for internal users.
Reference |
Description |
Suggested workaround |
Projected closure |
|---|---|---|---|
PVAAS-16830 |
The simulator backend does not support individual buffers larger than 4GB. |
Do not allocate large buffers when using SIM |
Not planned |
PVAAS-6633 |
NvSci APIs and CUDA interoperability are not supported for sim. |
As above. |
Not planned |