github NVIDIA/DALI v0.22.0
DALI v0.22.0

latest releases: v1.37.0, v1.38.0-dev, v1.36.0...
3 years ago

Key Features and Enhancements

This DALI release includes the following key features and enhancements.

  • DALI now supports CUDA 11:
    • DALI builds for CUDA 11 are now available.
    • CUDA 9 support has been deprecated.
    • DALI 0.22.0 is the final release that provides a CUDA 9 build.
  • Support is now available for the Ampere Hardware JPEG decoder.
  • The following new operators are now available:
    • NumpyReader, which allows you to read standard .npy (NumPy) files (#1858).
    • CoordFlip for CPU and GPU (#1894, #1895).
  • Readers can be set to read files directly instead of using mmap, which improves network filesystems performance (#1909).
  • DALI can be built as a CMake subproject (#1924).

Bug fixes

  • Fix TL1_tensorflow-dali_test (#1869)
  • Hotfix of external_source.py (#1878)
  • Build fix for aarch64 (incorrect cmake dependency) (#1883)
  • Fix TL1_ssd_training test by freezing apex version (#1898)
  • Fix support for dynamic per-sample shape in Warp operators (#1911)
  • Remove Optical flow test bug (#1902)
  • Fix jitter operator illegal memory access (#1914)
  • Fix setup_packages.py after pip update to 20.1 version (#1916)
  • Fix TL1_python-nvjpeg_test test dependency (#1926)
  • L1 test fix for Xavier (#1936)
  • Fix tensorflow_dataset test to run on any power of 2 number of GPUs (#1935)
  • Fix a race condition in ExternalSourceTest test (#1943)

Improvements

  • Add support for array and cuda_array interface for DALI tensor (#1857)
  • Add collapse_dim and collapse_dims for TensorListShape. (#1862)
  • Add support for TensorFlow 2.2.0rc2 (#1860)
  • Add ExternalSource to "C API" (#1865)
  • Numpy reader (#1858)
  • Add TensorGPU and TensorListGPU constructors based on CUDA array interface (#1868)
  • Bump up OpenCV version to 4.3.0, libturbo-jpeg to 2.0.4, libtiff to 4.1.0, FFmpeg to 4.2.2 (#1783)
  • Add "no exec check" to SmallVector to prevent warnings in host-only functions. (#1870)
  • Allow for a separate dali_tf_plugin pip wheel step (#1856)
  • QA tests: Fix nvidia-dali-tf-plugin to uninstall weekly and nightly packages (#1877)
  • make install target for installing DALI on system where it's build (#1854)
  • Allow RandomBBoxCrop thresholds to refer to relative overlap alternatively to IoU (#1874)
  • Add a link to release notes in the docs (#1881)
  • Operator diagnostics mechanism (#1880)
  • Reductions: position-dependent preprocessing, kernels for unhandled edge cases (#1884)
  • Update Horovod in Tensorflow test (#1887)
  • Add an ability to strip DALI whl binary from debug symbols (#1897)
  • Extend conda testing (#1784)
  • Copy out core* files if the test_body fails (#1890)
  • Make volume return 1 for 0-dim shape. (#1906)
  • Update DALI PyTorch RN50 example to the latest AMP version (#1888)
  • Add a specialized TF dataset for conda (#1910)
  • Deserialize pipeline in python API (#1912)
  • Add CoordFlip CPU operator (#1894)
  • Restore an ability to use direct read of files instead of mmap (#1909)
  • Use only ImportError in setup_packages (#1922)
  • Collect exit code from test_body (#1923)
  • Coordinate Flip GPU operator (#1895)
  • DALI as a git submodule (#1924)
  • Add Erase GPU Kernel (#1903)
  • C API ExternalSource for GPU input (#1892)
  • Fix warning condition in ExternalSource (#1934)
  • Reduce GPU - kernel frontend (#1882)
  • Add checking alignment argument for 0 in the pad operator (#1937)
  • Move from http://xiph.org to GitHub for libflac, libvorbis and libogg (#1938)
  • C API function: inherit parameters from serialized pipeline (#1932)
  • Use LinearTransformation kernel in ColorTwist GPU Op (#1918)
  • Adjust test sizes for Erase GPU Kernel (#1939)
  • Use user stream by default in copy_to_external/feed_ndarray (#1921)
  • Move to TensorFlow 2.2.0 from 2.2.0-RC2 (#1946)
  • Add support for random_shuffle argument in test_RN50_data_pipeline (#1945)
  • Proper DALI initialization in process & daliInitialize function (#1929)
  • Update clang version to 8.0.1 in deps image (#1949)
  • Add support for nvjpeg HW decoder, including rework to accommodate different decoding methods in one batch
  • Fix "hw_decoder_load" handling for slice/cropImageDecoder for nvJPEG
  • Move HW decoding to separate stream
  • Fix linter in nvjpeg HW decoder
  • Deprecate CUDA 9
  • Add CUDA 11 to the installation guide and build.sh

Breaking API changes

None

Deprecated feature

  • CUDA 9 support is deprecated. DALI 0.22.0 is the last release that provides CUDA 9 build.

Known issues:

  • The video loader operator requires that the key frames occur at a minimum every 10 to 15 frames of the video stream. If the key frames occur at a lesser frequency, then the returned frames may be out of sync.
  • DALI TensorFlow plugin may not be compatible with TensorFlow versions 1.15.0 and/or later. If the user wants to use DALI with TensorFlow version which doesn’t have prebuilt plugin binary shipped with DALI it requires the gcc compiler that matches the one used to build TensorFlow (gcc 4.8.4 or gcc, 4.8.5 or 5.4, depending on the particular version) is present on the system.
  • Due to some known issues with meltdown/spectra mitigations and DALI, DALI shows best performance when run in Docker with escalated privileges, for example:
    • privileged=yes in Extra Settings for AWS data points
    • --privileged or --security-opt seccomp=unconfined for bare Docker

Binary builds

Install via pip for CUDA 9:
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/9.0 nvidia-dali==0.22.0
or for CUDA 10:
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/10.0 nvidia-dali==0.22.0
or for CUDA 11:
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/cuda/11.0 nvidia-dali==0.22.0

Or use direct download links (CUDA 9.0):
https://developer.download.nvidia.com/compute/redist/cuda/9.0/nvidia-dali/nvidia_dali-0.22.0-1313462-cp35-cp35m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/9.0/nvidia-dali/nvidia_dali-0.22.0-1313462-cp36-cp36m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/9.0/nvidia-dali/nvidia_dali-0.22.0-1313462-cp37-cp37m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/9.0/nvidia-dali/nvidia_dali-0.22.0-1313462-cp38-cp38-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/9.0/nvidia-dali-tf-plugin/nvidia-dali-tf-plugin-0.22.0.tar.gz

Or use direct download links (CUDA 10.0):

https://developer.download.nvidia.com/compute/redist/cuda/10.0/nvidia-dali/nvidia_dali-0.22.0-1313464-cp35-cp35m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/10.0/nvidia-dali/nvidia_dali-0.22.0-1313464-cp36-cp36m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/10.0/nvidia-dali/nvidia_dali-0.22.0-1313464-cp37-cp37m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/10.0/nvidia-dali/nvidia_dali-0.22.0-1313464-cp38-cp38-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/10.0/nvidia-dali-tf-plugin/nvidia-dali-tf-plugin-0.22.0.tar.gz

Or use direct download links (CUDA 11.0):

https://developer.download.nvidia.com/compute/redist/cuda/11.0/nvidia-dali/nvidia_dali-0.22.0-1313465-cp35-cp35m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/11.0/nvidia-dali/nvidia_dali-0.22.0-1313465-cp36-cp36m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/11.0/nvidia-dali/nvidia_dali-0.22.0-1313465-cp37-cp37m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/11.0/nvidia-dali/nvidia_dali-0.22.0-1313465-cp38-cp38-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/cuda/11.0/nvidia-dali-tf-plugin/nvidia-dali-tf-plugin-0.22.0.tar.gz

FFmpeg source code:

  • This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here

Libsndfile source code:

Don't miss a new DALI release

NewReleases is sending notifications on new releases.