github NVIDIA/DALI v0.24.0
DALI v0.24.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.

  • New Operators:
  • Operator Improvements:
    • Extended the Slice and Crop family of operators with out-of-bounds policies, which provides support for padding and trimming to existing shape (#2000, #2056, #2044).
    • Moved the memory hint allocation in the Resize to the build phase (#2033).
    • Optimized the Transpose GPU operator to improve the performance on non-uniform data batches (#2011, #2032).
  • Support for GPU data input data in the ExternalSource operator (#1997).
    • Added built-in support for GPU CuPy and PyTorch tensors in ExternalSource (#2050).
    • Added the ability to provide an external stream, stream 0, or automatic stream selection for GPU data access (#2050).
    • Added DLPack input support to the ExternalSource operator (#2023).
  • Add an ability to dump info about operator output buffer size (#2039)
  • Improved error checking with external libraries (#2062, #2063).

Bug fixes

  • Fix semantics of the masks_meta field (#2029)
  • Fix shape comparison in C API tests. (#2045)
  • Fix conda build after TensorFlow 2.2 release (#2048)
  • Fix Slice pad support when last dimension is padded (#2056)
  • Fix TL1_jupyter_conda test (#2058)
  • Fix CropMirrorNormalize benchmark (#2059)
  • Fix epoch_size method in the pipeline (#2071)
  • Undefined name: RuntimeErrorError --> RuntimeError (#2076)
  • Use ==/!= to compare constant literals (str, bytes, int, float, tuple) (#2078)
  • Fix Assertion is always true in Python tests (#2077)
  • Fix undefined name errors in Python reshape tests (#2079)
  • Fix conda build after the new build of libprotobuf was released (#2101)

Improvements

  • Add Convolution CPU kernel (#1987)
  • Lock numba version to 0.49 when librosa is used (#2016)
  • Add a deprecation warning for python 3.5 (#2021)
  • Change locked version of numba to at most 0.49, as 0.47 is the last release for py35 (#2020)
  • Add Preemphasis GPU operator (#2025)
  • Add out-of-bounds-policy (including pad support) to Slice/Crop (#2000)
  • Change from a custom manylinux3 to prebuild and upstream manylinux2014 (#1965)
  • Enable python ExternalSource operator for the GPU data (#1997)
  • Batched GPU transposition (#2011)
  • Move memory hint allocation in the Resize to the build phase (#2033)
  • Replace cuTT in Transpose operator with DALI kernel + move permute to core. (#2032)
  • Separable convolution (#2009)
  • Build DALI with OpenMP SIMD (#1992)
  • Use empty tensors for DL FW plugins instead of zeroed one (#2030)
  • Lanczos3 downscale + interp type notebook. (#2041)
  • Update docs layout template after sphinx_rtd_theme update (#2046)
  • Makes TF RN50 TL3 test to compile ahead of time (#2028)
  • Add an ability to dump info about operator output buffer size (#2039)
  • Add Gaussian window calculation for Gaussian Op (#2053)
  • Remove cuda 9 related packages from tests, update cupy to 7.5 (#2049)
  • Use Slice kernel to implement Pad operator (instead of SliceFlipNormalizePermutePad) (#2057)
  • Add PyTorch support in ExternalSource + fix handling of CUDA streams in Python frontend (#2050)
  • Add GaussianBlur CPU Op (#2038)
  • HW Decoder utilization test (#2022)
  • Add DLPack input support to the ExternalSource operator (#2023)
  • Add better return value/error status checks (#2062)
  • Check libjpeg return codes (#2063)
  • CropMirrorNormalize full pad support (#2044)
  • Remove confusing main from nosetest files (#2083)
  • Update to CUDA 11 GA toolkit (#2094)
  • Detect version of CUDA based on libcudart.so.* name (#2105)
  • Reduce Paddle RN50 test gpu mem fraction to 80% (#2152)

Breaking API changes

Deprecated feature

  • Added a deprecation warning for Python 3.5 (#2021).
  • Deprecated output_dtype and use dtype (#2051).
  • Added an argument deprecation mechanism and deprecated "image_type" in Crop, Slice, and CropMirrorNormalize (#2061).

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.
  • The DALI TensorFlow plugin might not be compatible with TensorFlow versions 1.15.0 and later.
    To use DALI with the TensorFlow version that does not have a prebuilt plugin binary shipped with DALI, make sure that the compiler that is used to build TensorFlow exists on the system during the plugin installation. (Depending on the particular version, use GCC 4.8.4, GCC 4.8.5, or GCC 5.4.)
  • 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.24.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-tf-plugin-cuda100==0.24.0

or for CUDA 11:
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-cuda110==0.24.0
pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/ nvidia-dali-tf-plugin-cuda110==0.24.0

Or use direct download links (CUDA 10.0):

https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.24.0-1446725-cp35-cp35m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.24.0-1446725-cp36-cp36m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.24.0-1446725-cp37-cp37m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda100/nvidia_dali_cuda100-0.24.0-1446725-cp38-cp38-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-tf-plugin-cuda100/nvidia-dali-tf-plugin-cuda100-0.24.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.24.0-1472979-cp35-cp35m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.24.0-1472979-cp36-cp36m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.24.0-1472979-cp37-cp37m-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-cuda110/nvidia_dali_cuda110-0.24.0-1472979-cp38-cp38-manylinux2014_x86_64.whl
https://developer.download.nvidia.com/compute/redist/nvidia-dali-tf-plugin-cuda110/nvidia-dali-tf-plugin-cuda110-0.24.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.