NVIDIA Brings Native DLA Inference to Python on Jetson AGX Orin via cuDLA
NVIDIA's cuda-bindings 13.3.0 introduces native Python support for cuDLA, enabling seamless DLA hardware inference on Jetson AGX Orin without C++ wrappers.

NVIDIA has updated its CUDA Python ecosystem with the release of cuda-bindings 13.3.0, introducing direct Python support for the NVIDIA Deep Learning Accelerator (DLA) runtime. Through the new cuda.bindings.cudla module, developers building edge AI applications on platforms like the NVIDIA Jetson AGX Orin can orchestrate hardware-accelerated inference entirely in Python. By offloading fixed-function neural network operations—such as convolutions and pooling—from the GPU to dedicated DLA silicon, applications can reduce power consumption while reserving GPU capacity for parallel compute tasks.
Bridging Python to DLA Hardware
The cuDLA API acts as the runtime layer for controlling DLA execution. Previously requiring C++ to interface with the underlying libcudla.so runtime provided by NVIDIA JetPack, the new Python bindings expose thirteen C++ functions, nine data types, and eight enums directly to Python applications via Cython wrappers. Beyond embedded hardware like Jetson AGX Orin, the identical API interface is available on Windows AI laptops using NVIDIA RTX Spark.
Execution centers around hybrid mode (cudla.Mode.CUDA_DLA), where DLA tasks are queued onto standard CUDA streams alongside GPU kernels. This enables an integrated pipeline: GPU-based preprocessing, DLA inference execution, and GPU-based postprocessing can all be sequenced on a single CUDA stream without manual synchronization barriers between execution stages.
To prepare models for execution, developers use the TensorRT trtexec tool to compile trained ONNX models into standalone DLA loadables (.bin or .nvdla files). Using flags such as --useDLACore=0 and --buildDLAStandalone, TensorRT builds a compiled binary that runs directly on DLA hardware without requiring TensorRT at runtime. In TensorRT 11, model precision is derived directly from the ONNX tensor types rather than explicit command-line precision flags.
The On-Device Python Inference Lifecycle
Managing inference on Jetson AGX Orin using cuda.bindings.cudla follows a structured programmatic lifecycle. First, CUDA is initialized and a DLA device handle is created in hybrid mode. The application then reads the compiled loadable binary into memory as raw Python bytes and passes it to module_load_from_memory.
To maintain a model-agnostic workflow, developers query module attributes using module_get_attributes to inspect expected input and output tensor descriptors. Properties such as size_, shape, data format, and stride dictate memory allocations. GPU memory is allocated using cudaMalloc, and these memory buffers must be registered with cuDLA using mem_register to generate DLA-side hardware handles.
Input data is preprocessed into NumPy arrays matching the specified tensor layouts and copied asynchronously to the GPU buffer via cudaMemcpyAsync. The application builds a cudla.Task structure, populating registered input and output handles, and calls submit_task to enqueue the workload onto the CUDA stream. After calling cudaStreamSynchronize, output tensors are copied back to host memory as NumPy arrays for immediate consumption in Python data pipelines. Hardware handles and allocated memory must be explicitly released using cleanup calls like mem_unregister, module_unload, and destroy_device, while runtime failures raise native cudla.CudlaError Python exceptions.
What it means for developers
For edge AI developers, native Python cuDLA bindings remove a major architectural bottleneck. Developers no longer need to write custom C++ wrappers or maintain dual-language codebases to leverage dedicated DLA cores on Jetson hardware. Prototyping, sensor integration, and runtime management can remain entirely within Python, accelerating development cycles for robotics and embedded vision applications.
Furthermore, moving core inference tasks off the main GPU frees compute cycles for real-time video processing, sensor fusion, or local logic execution. While edge devices handle localized computer vision tasks, modern AI architectures often pair edge hardware with cloud-based large language models. Developers looking to integrate cloud LLM capabilities alongside edge hardware can try top AI models cheaply through one API at https://apixoai.online.
To get started with native cuDLA in Python, systems require Python 3.10 or higher (with Python 3.12 recommended) and JetPack 7.2.2 or later on Jetson AGX Orin. Developers can install the bindings directly via PyPI using pip install "cuda-bindings>=13.3.0".
Source: Run Native DLA Inference in Python on NVIDIA Jetson AGX Orin Using cuDLA — NVIDIA Technical Blog. Written by the Apixo team from that report.
One key for Claude, GPT, GLM, DeepSeek and more. Pay per token with crypto.
Get your API key

