Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Environment:NVIDIA DALI CUDA GPU Environment

From Leeroopedia


Knowledge Sources
Domains Infrastructure, GPU_Computing, Computer_Vision
Last Updated 2026-02-08 16:00 GMT

Overview

Linux environment with NVIDIA GPU, CUDA 12.0+ toolkit, and the `nvidia-dali-cuda120` Python package for GPU-accelerated data loading and preprocessing.

Description

This environment provides the core GPU-accelerated context required by all DALI pipelines that use GPU operators. DALI dynamically loads CUDA runtime libraries (nvJPEG, NPP, cuFFT, nvImageCodec) at runtime rather than bundling them, so the CUDA Toolkit must be installed separately. The environment supports NVIDIA GPU architectures from Kepler (sm_35) through Blackwell (sm_120), with architecture-specific optimizations selected at build time via `CUDA_TARGET_ARCHS`. For aarch64 SBSA systems, only Volta (sm_70) and later are supported.

Usage

Use this environment for any DALI pipeline that uses GPU-accelerated operators, including image decoding (`device="mixed"` or `device="gpu"`), GPU resize, crop-mirror-normalize, and video decoding. This is the mandatory prerequisite for all DALI Implementation pages that invoke GPU operators.

System Requirements

Category Requirement Notes
OS Linux (manylinux_2_28 compatible) Ubuntu 20.04+ or equivalent; Docker builds use `quay.io/pypa/manylinux_2_28_x86_64`
Hardware NVIDIA GPU Minimum compute capability 3.5 (Kepler); aarch64 SBSA requires 7.0+ (Volta)
CUDA Toolkit 12.0 or higher Supported versions: 12.0 through 12.9, 13.0, 13.1; default build uses CUDA 13.1
NVIDIA Driver Compatible with installed CUDA version DALI CUDA 12 requires driver supporting CUDA 12+
Disk 2GB+ SSD For DALI package and cached data

Dependencies

System Packages

  • CUDA Toolkit >= 12.0 (provides nvJPEG, NPP, cuFFT at runtime)
  • nvImageCodec (nvidia-nvimagecodec-cuda120) for GPU image decoding
  • nvcomp (libnvcomp) for GPU-accelerated compression (optional)
  • NVIDIA driver compatible with installed CUDA version

Python Packages

  • `nvidia-dali-cuda120` >= 1.48.0
  • `numpy`
  • `nvtx` (NVIDIA Tools Extension for profiling)
  • `astunparse` >= 1.6.0, <= 1.6.3
  • `gast` >= 0.3.3, <= 0.7.0
  • `six` >= 1.16, <= 1.17
  • `dm-tree` <= 0.1.9
  • `packaging` <= 25.0
  • `makefun`

Python Version

  • Python >= 3.10, < 3.15
  • Python 3.14 support is experimental
  • Supported build versions: 3.10, 3.11, 3.12, 3.13, 3.13t, 3.14, 3.14t

Credentials

No API credentials are required for core DALI operation. The following environment variable is used for testing:

  • `DALI_EXTRA_PATH`: Path to the DALI_extra test data repository (testing only).

Quick Install

# Install DALI for CUDA 12.x
pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-cuda120

# Verify CUDA toolkit is available
python -c "from nvidia.dali import backend; print('CUDA version:', backend.GetCudaVersion())"

Code Evidence

CUDA version check from `dali/python/nvidia/dali/backend.py:99-103`:

if int(str(__cuda_version__)[:2]) < 11:
    deprecation_warning(
        "DALI 1.21 is the last official release that supports CUDA 10.2. "
        "Please update your environment to CUDA version 11 or newer."
    )

Runtime library availability checks from `dali/python/nvidia/dali/backend.py:108-151`:

def check_cuda_runtime():
    global cuda_checked
    if not cuda_checked:
        cuda_checked = True
        if GetCudaVersion() == -1:
            deprecation_warning("GPU is not available. Only CPU operators are available.")
        if GetCufftVersion() == -1:
            deprecation_warning(
                "nvidia-dali-cuda120 is no longer shipped with CUDA runtime. "
                "You need to install it separately. cuFFT is typically "
                "provided with CUDA Toolkit installation or an appropriate wheel."
            )
        if GetNppVersion() == -1:
            deprecation_warning(
                "nvidia-dali-cuda120 is no longer shipped with CUDA runtime. "
                "You need to install it separately. NPP is typically "
                "provided with CUDA Toolkit installation or an appropriate wheel."
            )
        if GetNvjpegVersion() == -1:
            deprecation_warning(
                "nvidia-dali-cuda120 is no longer shipped with CUDA runtime. "
                "You need to install it separately. nvJPEG is typically "
                "provided with CUDA Toolkit installation."
            )

Python version deprecation checks from `dali/python/nvidia/dali/backend.py:68-97`:

if sys.version_info[0] == 3 and sys.version_info[1] == 9:
    deprecation_warning(
        "DALI 1.53 is the last release to support Python 3.9 "
        "Please update your environment to use Python 3.10, or newer."
    )
if sys.version_info[0] == 3 and sys.version_info[1] == 14:
    deprecation_warning("Python 3.14 support is experimental and not officially tested.")

Python version constraint from `dali/python/setup.py.in:62`:

python_requires='>=3.10, <3.15',

CUDA architecture support from `cmake/CUDA_utils.cmake:43-64`:

if (${ARCH} MATCHES "aarch64-")
  set(CUDA_known_archs "53" "62" "72" "75" "87" "90a")
elseif (${ARCH} MATCHES "aarch64")
  set(CUDA_known_archs "70" "80" "90" "100" "110" "120")
else()
  set(CUDA_known_archs "35" "50" "60" "70" "80" "90" "100" "110" "120")
endif()

Common Errors

Error Message Cause Solution
`GPU is not available. Only CPU operators are available.` No NVIDIA GPU detected or CUDA driver not loaded Install NVIDIA driver; verify with `nvidia-smi`
`nvidia-dali-cuda120 is no longer shipped with CUDA runtime... cuFFT` cuFFT library not found at runtime Install CUDA Toolkit: `conda install cuda-toolkit` or install the cuFFT wheel
`nvidia-dali-cuda120 is no longer shipped with CUDA runtime... NPP` NPP library not found at runtime Install CUDA Toolkit with NPP component
`nvidia-dali-cuda120 is no longer shipped with CUDA runtime... nvJPEG` nvJPEG library not found at runtime Install CUDA Toolkit with nvJPEG component
`DALI 1.53 is the last release to support Python 3.9` Running on deprecated Python version Upgrade to Python >= 3.10

Compatibility Notes

  • CUDA 12.x vs 13.x: DALI supports CUDA 12.0 through 13.1. The default Docker build uses CUDA 13.1.
  • aarch64 SBSA: Only GPU architectures Volta (sm_70) and later are supported; Kepler/Maxwell/Pascal are excluded.
  • aarch64 Jetson: Supports from sm_53 (Tegra X1) through sm_90a.
  • cuFile (GPU Direct Storage): Only available on CUDA >= 12.2 and non-aarch64 platforms.
  • NVTX Profiling: Enabled by default for CUDA >= 10.0; provides visibility in NVIDIA Nsight tools.
  • Dynamic Linking: DALI loads CUDA libraries (nvJPEG, cuFFT, NPP, nvImageCodec, nvcomp) dynamically at runtime via dlopen.
  • NGC Containers: DALI comes preinstalled in NVIDIA NGC PyTorch, TensorFlow, and PaddlePaddle containers.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment