Environment:NVIDIA DALI TensorFlow Environment
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Deep_Learning, Computer_Vision |
| Last Updated | 2026-02-08 16:00 GMT |
Overview
TensorFlow environment with `nvidia-dali-cuda120` and `nvidia-dali-tf-plugin` for GPU-accelerated data loading via `DALIDataset` (`tf.data.Dataset` integration).
Description
This environment extends the base CUDA GPU environment with TensorFlow-specific integration. The DALI TF plugin (`nvidia-dali-tf-plugin`) provides the `DALIDataset` operator that wraps a DALI pipeline as a `tf.data.Dataset` source, integrating seamlessly with `model.fit()` training loops. The plugin is built as a shared library (`libdali_tf_*.so`) that is loaded into TensorFlow's op registry at runtime. It includes a custom GPU memory allocator (`TFGPUAllocator`) that routes DALI GPU allocations through TensorFlow's memory manager to avoid fragmentation.
Usage
Use this environment for any TensorFlow/Keras training workflow that uses DALI for data loading. This is the mandatory prerequisite for the DALIDataset and Model_Fit_TensorFlow implementations.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux (manylinux_2_28 compatible) | Same as CUDA GPU Environment |
| Hardware | NVIDIA GPU with CUDA support | Multi-GPU via `tf.distribute.MirroredStrategy` |
| CUDA Toolkit | 12.0+ | Required for DALI GPU operators |
| Disk | 5GB+ SSD | For TensorFlow + DALI packages |
Dependencies
System Packages
- CUDA Toolkit >= 12.0
- Protobuf = 6.31.1 (exact version for TFRecord support)
Python Packages
- `tensorflow` >= 2.x
- `nvidia-dali-cuda120` >= 1.48.0
- `nvidia-dali-tf-plugin-cuda120` (TF plugin matching DALI version)
- `numpy` < 2 (TensorFlow examples require NumPy 1.x)
Credentials
No additional credentials required beyond the base CUDA GPU environment.
Quick Install
# Install TensorFlow
pip install tensorflow
# Install DALI + TF plugin
pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-cuda120
pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-tf-plugin-cuda120
# Verify integration
python -c "from nvidia.dali.plugin.tf import DALIDataset; print('OK')"
Code Evidence
TF plugin shared library loading from `dali_tf_plugin/nvidia/dali_tf_plugin/dali_tf_plugin.py:1-59`:
# Loads libdali_tf*.so into TensorFlow's op registry at runtime
# The plugin bridges DALI pipeline outputs to tf.data.Dataset interface
DALIDataset usage from `docs/examples/use_cases/tensorflow/efficientdet/efficientdet_pipeline.py:173-210`:
dali_dataset = dali_tf.DALIDataset(
pipeline=pipe,
batch_size=batch_size,
output_shapes=shapes,
output_dtypes=dtypes,
device_id=device_id,
)
Multi-GPU strategy from `docs/examples/use_cases/tensorflow/efficientdet/train.py:52-57`:
strategy = tf.distribute.MirroredStrategy(devices)
num_devices = len(devices) if devices else len(physical_devices)
# Global batch = per-device batch * num_devices
args.batch_size * num_devices
TF GPU memory allocator bridge from `dali_tf_plugin/tfallocator.h:1-133`:
// TFGPUAllocator routes DALI GPU allocations through TensorFlow's
// memory manager to avoid fragmentation between the two frameworks
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `ImportError: cannot import name 'DALIDataset'` | TF plugin not installed | `pip install nvidia-dali-tf-plugin-cuda120` |
| `numpy` version incompatibility | NumPy 2.x with older TensorFlow | Pin `numpy<2` for TensorFlow examples |
| `Protobuf version mismatch` | Wrong protobuf version | Pin `protobuf==6.31.1` to match DALI build |
Compatibility Notes
- TensorFlow Versions: The DALI TF plugin is built against specific TensorFlow versions. The install tool (`dali_tf_plugin_install_tool.py`) auto-detects the installed TF version and downloads the matching prebuilt binary.
- NumPy Constraint: TensorFlow examples (EfficientDet, YOLOv4) require `numpy<2` due to API changes in NumPy 2.0.
- Memory Management: The TF plugin uses a custom `TFGPUAllocator` to share GPU memory between DALI and TensorFlow, avoiding fragmentation.
- NGC Containers: DALI and TF plugin come preinstalled in NVIDIA NGC TensorFlow containers.