Release Blog 1: Top 3 Highlights in the CV-CUDA Releases - Summer 2024 #207
shiremathNV
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Top 3 Highlights in the CV-CUDA Releases this Summer (2024)
CV-CUDA is an open-source library from NVIDIA that went live on GitHub in Q2 2022, and since then we have enabled thousands of developers to accelerate the pre- and post-processing stages of their vision AI pipelines using GPU-accelerated image processing and computer vision operations, like resize, normalize, color convert, remap, filter, morphology, SIFT, and many more.
Faster turnaround through monthly CV-CUDA releases
As the CV-CUDA developer community continues to grow, we are seeing more engagement on GitHub with questions, feedback, issue reporting, and enhancement requests. Earlier this summer, the CV-CUDA team decided to move to a monthly release cadence to have a faster turnaround to release new requested features and capabilities, and to address bugs/issues. This has helped us to support our developer community better. In addition to our release announcements on GitHub, moving forward, we aim to publish a release update blog for each release to help our developers get a deeper insight into some of the key features, improvements, and bug fixes. We will also use this blog to provide any insight into what to expect in the upcoming releases.
In this blog, we will cover the top 3 improvements made in the last three monthly releases of CV-CUDA that went live from June to August.
1. Controlling Cache Memory Limit
The CV-CUDA 0.10 release went live in July 2024 on GitHub, and it includes a critical cache memory consumption issue that has been fixed, along with multiple other bug fixes that were reported by developers. The release also now offers the ability to independently build the NVCV library.
The unbounded cache memory consumption is a critical issue that can occur in vision use cases dealing with web data that are typically long-running workflows involving a wide range of image and video sizes causing the cache to grow significantly; for example, if one keeps creating non-wrapped tensors of different shapes. To address this issue, CV-CUDA now provides a user-configurable’ cache limit and automatic clearance mechanism.
import cvcuda
To learn more about this cache consumption and the features added in the release to control the cache limit, please refer to the [Best Practices] (https://cvcuda.github.io/CV-CUDA/nvcvobjectcache.html) section added in CV-CUDA GitHub documentation.
Other Fixes and Improvements in v0.10
In addition to this critical bug, there were multiple other bugs, some were reported by developers, that were fixed in this release:
Addressed potential crashes caused by the Resize operator's linear and nearest neighbor interpolation from non-aligned vectorized writes.
Python CvtColor operator can now correctly handle NV12 and NV21 outputs.
Addressed Resize and RandomResizedCrop linear interpolation weight for border rows and columns.
Updated the fused ResizeCropConvertReformat operator for a missing parameter in C API
2. Performance Improvements in Resize and Operators with Cubic Interpolation
In CV-CUDA v0.9, there were major performance improvements that were made to:
3. Potential race condition with Python garbage collection fixed with Pybind upgrade
In CV-CUDA v0.11, there was a fix to potential race conditions or crashes with Python garbage collection associated with an older version of Pybind11 (2.10). This user-reported issue was fixed with a simple upgrade to Pybind11 from 2.10 to 2.13. This Pybind upgrade now also enables CV-CUDA compatibility with NumPy 2.
Learn more about what other features and improvements went live in these releases here.
Summary
NVIDIA’s CV-CUDA team continues to strive towards our mission to make accelerated computing more accessible to data scientists and engineers. We can’t wait to see what people do with these new capabilities.
Have you encountered any of these issues when using CV-CUDA? Leave a comment if these fixes resolved your issue and/or how we could do better in a future release.
CV-CUDA Team
Resources
Have a question or need help? - Submit a GitHub issue now
Why CV-CUDA?
One of the major challenges that Computer Vision developers face when building AI cloud-scale inference pipelines is achieving end-to-end performance throughput, whether it be for online or offline workloads. With these pipelines ingesting billions of images or million hours of videos, every percent of throughput speed up can result in significant cost savings at this scale. With online systems, this could also mean staying within the expected latency budgets when providing your end-user with real-time experiences. When deploying such pipelines, CV-CUDA and other NVIDIA acceleration libraries play a pivotal role in enabling our customers and partners to achieve significant end-to-end performance improvements.
Beta Was this translation helpful? Give feedback.
All reactions