Artificial Intelligence1 min read

Run Native DLA Inference in Python on NVIDIA Jetson AGX Orin Using cuDLA

By · Published by Everything Blog

In short

The new `cuda.bindings.cudla` module, integrated into version 13.3.0 of the CUDA Python project, provides a streamlined interface for edge AI tasks such as image classification. The framework relies on the pre-installed `libcudla.so` library packaged with NVIDIA JetPack, requiring Python 3.10 or newer without any additional software development kits. Models are prepared ahead of time using TensorRT's `trtexec` tool to generate standalone binary loadables that execute without runtime TensorRT dependencies. Furthermore, applications can operate in a hybrid mode where standard CUDA streams synchronize both accelerator tasks and normal GPU processing.

Key points

  • Deploying inference on dedicated Deep Learning Accelerators helps conserve system power w…: Deploying inference on dedicated Deep Learning Accelerators helps conserve system power while freeing graphics processors for other concurrent tasks.
  • Running pre-compiled DLA loadables requires Python 3.10 or newer and relies directly on r…: Running pre-compiled DLA loadables requires Python 3.10 or newer and relies directly on runtime libraries already shipped with NVIDIA JetPack.
  • The identical cuDLA API is supported across embedded Jetson AGX Orin hardware as well as…: The identical cuDLA API is supported across embedded Jetson AGX Orin hardware as well as NVIDIA RTX Spark laptops running Windows.

Sources checked by our analysis pipeline: 1

AI applications at the edge often need to run multiple neural networks within limited compute and power budgets. NVIDIA Deep Learning Accelerator (DLA) platforms provide dedicated hardware for deep learning inference. On NVIDIA Jetson AGX Orin, DLA executes supported neural network operations, allowing applications to offload inference work from the GPU. This can improve power efficiency and leave GPU capacity available for other application tasks.

NVIDIA cuDLA is the runtime API for managing execution on this accelerator. Applications use it to create DLA devices, load compiled networks, register memory buffers, and submit inference tasks. The cuda.bindings.cudla module exposes these APIs directly to Python, so developers can integrate DLA execution into their applications without writing C++ code to manage the runtime.

This post walks through the inference lifecycle on Jetson AGX Orin using an image classification example. It briefly covers installation and compiling a model into a DLA loadable, then follows execution from creating a device and loading the network to managing buffers, synchronizing execution, and reading the output. The example also shows how GPU and DLA stages work together in…

Artificial Intelligence