DALI v0.23.0
Key Features and Enhancements
This DALI release includes the following key features and enhancements.
- DALI packages name add -cuda110 and -cuda100 suffixes to indicate CUDA version and allow hosting all packages under single pip index. This is important only for installation, the DALI module in Python is still
nvidia.dali
regardless of CUDA version. See the https://docs.nvidia.com/deeplearning/dali/user-guide/docs/installation.html installation guide for details. - New and improved Operators:
- Improve how iterators count padded samples based on the reader (#1831) - the provided iterators can now query reader for the epoch size and sharding and handle the shard size changing from epoch-to-epoch when it's not evenly divisible by number of shards (rank) and batch size. More details can be found in https://docs.nvidia.com/deeplearning/dali/user-guide/docs/advanced_topics.html#sharding
- CUDA 11 build scripts for DALI were added (#2008).
Bug fixes
- Fix out-of-source build (#1975)
- Fix typo in installation documentation (#1976)
- Fix reference counting issue in the PythonFunction operator (#1978)
- Fix the wording for preset OF argument (#1994)
- Fix generation of Erase Region in kernel test (#1996)
- Fix GPU spectrogram when window_length != nfft (#1999)
- Fix MelFilterBank bug: setup block descriptors when changing shape between iterations. (#2001)
- Change locked version of numba to at most 0.49, as 0.47 is the last release for py35 (#2016, #2020)
Improvements
- Mean and Standard Deviation GPU kernels (#1919)
- Linter script change: from CMake to Python (#1951)
- Update links to the new location, remove deprecated installation guide (#1955)
- Adding more Numpy data types (#1961)
- Extend HSV example with RandomGrayscale implementation (#1962)
- Add workaround for the problem with patchelf changing TLS alignment (#1952)
- Add epsilon and ddof (delta degrees of freedom) arguments to Normalize. (#1964)
- Small docs improvements (#1970)
- Add Sequence Rearrange Op (#465)
- Add a helper class for fast unsigned division, usable on host and device. (#1967)
- Fix documentation drop-down menu and other links (#1972)
- Erase GPU operator (#1971)
- Update TF versions supported (#1973)
- Add -cudaXXX to dali package name (#1948)
- Add more error checking (#1979)
- Make DALI test to be fPIE (#1980)
- Normalize GPU kernel (#1974)
- Normalize GPU - pImpl + Bessel's corrections (#1981)
- Slice CPU kernel pad support (#1977)
- Makes GTest and Google Benchmark fPIE, DALI binaries as dynamically relocatable (#1982)
- Add more error checking in TensorFlow DALI integration (#1991)
- Normalize operator for GPU backend (#1986)
- Slice GPU kernel with multi-channel pad support (#1983)
- Split Slice benchmarks into CPU and GPU (#1995)
- Improve how iterators count padded samples based on the reader (#1831)
- Remove boost from the dependencies as it is no longer used anyway (#2006)
- Enable file path arguments (#2002)
- Enable CUDA 11 builds (#2008)
- Silence CUDA 11 compute 35 and 50 deprecation warning (#2010)
- Drop CUDA 9 from docs (#2012)
Breaking API changes
- DALI packages name add -cuda110 and -cuda100 suffixes to indicate CUDA version and allow hosting all packages under single pip index.
- CUDA 9 is no longer supported. DALI 0.22.0 was the last release that provides CUDA 9 build.
Deprecated feature
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 10
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-cuda100==0.23.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-tf-plugin-cuda100
or for CUDA 11:
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-cuda110==0.23.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-tf-plugin-cuda110
Or use direct download links (CUDA 10.0):
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.23.0-1396139-cp35-cp35m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.23.0-1396139-cp36-cp36m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.23.0-1396139-cp37-cp37m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.23.0-1396139-cp38-cp38-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-tf-plugin-cuda100/nvidia-dali-tf-plugin-cuda100-0.23.0.tar.gz
Or use direct download links (CUDA 11.0):
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.23.0-1396141-cp35-cp35m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.23.0-1396141-cp36-cp36m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.23.0-1396141-cp37-cp37m-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.23.0-1396141-cp38-cp38-manylinux1_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-tf-plugin-cuda110/nvidia-dali-tf-plugin-cuda110-0.23.0.tar.gz
FFmpeg source code:
Libsndfile source code: