v0.17.0
Release Highlights
CV-CUDA v0.17.0-beta includes the following changes:
New Features and Enhancements
-
Added the
JpegCompressionDistortionoperator, a self-contained GPU simulation of JPEG compression artifacts (full-range JFIF YCbCr, 4:2:0 chroma subsampling, per-8x8-block DCT quantization; ported from NVIDIA DALI, no codec dependency) with per-image or per-batch quality. -
Added the
AdjustContrast,AdjustHue,AdjustSaturation,AdjustSharpness,AutoContrast,CLAHE(Contrast Limited Adaptive Histogram Equalization),Invert,Posterize, andSolarizeoperators. -
Added native planar (
NCHW/CHW) support across the public image operator catalog, subject to each operator's documented input type, dimensionality, channel, format, and auxiliary-input limitations. -
Added tensor input support to
GammaContrastand by-value parameter paths toBrightnessContrast,GammaContrast,GaussianNoise, andNormalize, avoiding temporary device parameter tensors and host-to-device copies. -
Added
NVCVRoundMode(cvcuda.Roundin Python), with nearest and truncate modes for integral output conversion inConvertToand the scalarGammaContrastpath. -
Extended the Python API with
Stream.wait_stream(), NumPyfloat16interoperability, single-dimension and emptyTensorLayoutvalues, and hashableTensorLayoutandTypeobjects. -
Added always-on NVTX ranges to public C and Python operator submissions for improved Nsight profiling visibility.
-
Expanded Python operator samples and documentation, and revamped the Docker build and development images. Source builds no longer use Git submodules.
Performance Improvements
-
Improved performance across more than 50 operators, with 1.8x average speedups on H100.
-
Reduced Python wrapper overhead in
ResourceGuardwith batched sync/hold and cached pybind11 reverse casts. -
Reduced binary and package sizes with size-optimized CUDA fatbinary compression when built with CUDA 12.8 or later.
-
Reduced x86_64 package sizes by removing blanket SM86 and SM89 code generation while retaining performance-sensitive operator cubins and conservative coverage for inconclusive or post-freeze cases.
Bug Fixes
-
Fixed correctness and robustness issues across operators:
Composite,Erase,FindHomography,GammaContrast,GaussianNoise,Histogram,HistogramEq,HQResize,Inpaint,PillowResize,RandomResizedCrop,ResizeCropConvertReformat,Rotate, andWarpAffine/WarpPerspective. -
Fixed cubic interpolation boundary conditions in
Resizeand the shared cubic paths used byRandomResizedCrop, and added 1-channel (grayscale/Y8) support toResizeCropConvertReformat(issue [#285]). -
Fixed multi-GPU workspace and cache handling, CUDA Array Interface and DLPack stream synchronization, device restoration during
Streamdestruction, and memory growth in theas_imagecache (issue [#258]). -
Strengthened input validation and memory safety across operators, returning clear errors instead of aborting or launching invalid CUDA work. Also fixed
ResourceGuarderror paths that could terminate the Python process. -
Fixed text rendering backend issues and added dedicated unit coverage for the STB text backend.
-
Corrected multi-stream Python test synchronization (community contribution PR [#288] by Daniel Ching).
Compatibility Changes
-
Dropped official support for Python 3.9.
-
C++ operator wrapper classes are now move-only; copying an operator wrapper no longer compiles.
-
The C
cvcudaConvertToSubmitfunction now requires an explicitNVCVRoundModeargument. C++ and Python callers retain nearest rounding as the default; existing C binaries using this entry point must be rebuilt. -
Public NVCV allocator callbacks and resource user-pointer APIs now use the opaque
NVCVResourceContext,NVCVMemoryBuffer, andNVCVUserPointertypes instead ofvoid *. Custom allocators and direct C/C++ callers may require signature updates or explicit casts. -
Added
CVCUDA_AARCH64_JETSONfor Jetson Orin source builds; default aarch64 source builds target SBSA.
Compatibility and Known Limitations
For full details, see the main README's compatibility table and known limitations.
License
CV-CUDA is licensed under the Apache 2.0 license.
Resources
- CV-CUDA GitHub
- Optimizing Microsoft Bing Visual Search with NVIDIA Accelerated Libraries
- Accelerating AI Pipelines: Boosting Visual Search Efficiency
- Optimize Short-Form Video Processing Toward the Speed of Light
- CV-CUDA Increasing Throughput and Reducing Costs for AI-Based Computer Vision with CV-CUDA
- NVIDIA Announces Microsoft, Tencent, Baidu Adopting CV-CUDA for Computer Vision AI
- CV-CUDA Helps Tencent Cloud Audio and Video PaaS Platform Achieve Full-Process GPU Acceleration for Video Enhancement AI
Acknowledgements
CV-CUDA originated as a collaborative effort between NVIDIA and the ByteDance Machine Learning team.