Skip to content

Commit 84e3dcd

Browse files
Merge pull request #189 from CVCUDA/feat/milesp/release_cvcuda_0110
feat: adding release v0.11.0 of cvcuda
2 parents f769fe4 + 8890637 commit 84e3dcd

79 files changed

Lines changed: 968 additions & 500 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3rdparty/pybind11

Submodule pybind11 updated 178 files

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ cmake_minimum_required(VERSION 3.20.1)
1717

1818
# We need to check this variable before starting a CUDA project - otherwise it will appear
1919
# as set, with the default value pointing to the oldest supported architecture (52 as of CUDA 11.8)
20-
if(DEFINED CMAKE_CUDA_ARCHITECTURES)
20+
if(CMAKE_CUDA_ARCHITECTURES)
2121
set(USE_CMAKE_CUDA_ARCHITECTURES TRUE)
2222
endif()
2323

2424
project(cvcuda
2525
LANGUAGES C CXX
26-
VERSION 0.10.0
26+
VERSION 0.11.0
2727
DESCRIPTION "CUDA-accelerated Computer Vision algorithms"
2828
)
2929

@@ -49,6 +49,7 @@ endif()
4949
option(BUILD_TESTS "Enable testsuite" OFF)
5050
option(BUILD_PYTHON "Build python bindings" OFF)
5151
option(BUILD_BENCH "Build benchmark" OFF)
52+
option(BUILD_DOCS "Build documentation" OFF)
5253
option(ENABLE_SANITIZER "Enabled sanitized build" OFF)
5354

5455
# Configure build tree ======================

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
[![License](https://img.shields.io/badge/License-Apache_2.0-yellogreen.svg)](https://opensource.org/licenses/Apache-2.0)
2020

21-
![Version](https://img.shields.io/badge/Version-v0.10.1--beta-blue)
21+
![Version](https://img.shields.io/badge/Version-v0.11.0--beta-blue)
2222

2323
![Platform](https://img.shields.io/badge/Platform-linux--64_%7C_win--64_wsl2%7C_aarch64-gray)
2424

@@ -60,10 +60,28 @@ To get a local copy up and running follow these steps.
6060
- [CV-CUDA Samples] require driver r535 or later to run and are only officially supported with CUDA 12.
6161
- Only one CUDA version (CUDA 11.x or CUDA 12.x) of CV-CUDA packages (Debian packages, tarballs, Python Wheels) can be installed at a time. Please uninstall all packages from a given CUDA version before installing packages from a different version.
6262
- Documentation built on Ubuntu 20.04 needs an up-to-date version of sphinx (`pip install --upgrade sphinx`) as well as explicitly parsing the system's default python version ` ./ci/build_docs path/to/build -DPYTHON_VERSIONS="<py_ver>"`.
63-
- Python bindings installed via Debian packages and Python tests fail with Numpy 2.0. We recommend using an older version of Numpy (e.g. 1.26) until we have implemented a fix.
6463
- The Resize and RandomResizedCrop operators incorrectly interpolate pixel values near the boundary of an image or tensor when using cubic interpolation. This will be fixed in an upcoming release.
65-
- Cache/resource management introduced in v0.10 add micro-second-level overhead to Python operator calls. Based on the performance analysis of our Python samples, we expect the production- and pipeline-level impact to be negligible. CUDA kernel and C++ call performance is not affected. We aim to investigate and reduce this overhead further in a future release.​
66-
- Sporadic Pybind11-deallocation crashes have been reported in long-lasting multi-threaded Python pipelines with externally allocated memory (eg wrapped Pytorch buffers). We are evaluating an upgrade of Pybind11 (currently using 2.10) as a potential fix in an upcoming release.
64+
- The CvtColor operator incorrectly computes the data location of the second chromaticity channel for conversions that involve YUV(420) semi-planar formats. This issue persists through the current release and we intend to address this bug in CV-CUDA v0.12. We do not recommend using these formats.​
65+
- Known affected formats:​
66+
- NVCV_COLOR_YUV2RGB_I420​
67+
- NVCV_COLOR_RGB2YUV_I420​
68+
- NVCV_COLOR_YUV2BGR_I420​
69+
- NVCV_COLOR_BGR2YUV_I420​
70+
- NVCV_COLOR_YUV2RGBA_I420​
71+
- NVCV_COLOR_RGBA2YUV_I420​
72+
- NVCV_COLOR_YUV2BGRA_I420​
73+
- NVCV_COLOR_BGRA2YUV_I420​
74+
- NVCV_COLOR_RGB2YUV_I420​
75+
- NVCV_COLOR_YUV2RGB_YV12​
76+
- NVCV_COLOR_RGB2YUV_YV12​
77+
- NVCV_COLOR_YUV2BGR_YV12​
78+
- NVCV_COLOR_BGR2YUV_YV12​
79+
- NVCV_COLOR_YUV2RGBA_YV12​
80+
- NVCV_COLOR_RGBA2YUV_YV12​
81+
- NVCV_COLOR_YUV2BGRA_YV12​
82+
- NVCV_COLOR_BGRA2YUV_YV12​
83+
- NVCV_COLOR_RGB2YUV_YV12​
84+
- NVCV_COLOR_YUV2GRAY_420​
6785

6886
### Installation
6987

@@ -209,7 +227,6 @@ For instructions on how to build samples from source and run them, see the [Samp
209227
Install the dependencies required for running the tests:
210228
- python3, python3-pip: to run python bindings tests
211229
- torch: dependencies needed by python bindings tests
212-
- numpy: known limitation: Python tests fail with numpy 2.0. We recommend using an older version (eg 1.26) until we have implemented a fix.
213230

214231
On Ubuntu >= 20.04, install the following packages using `apt` and `pip`:
215232
```shell

bench/python/all_ops/op_adaptivethreshold.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
class OpAdaptiveThreshold(AbstractOpBase):
2525
def setup(self, input):
26+
super().setup(input)
2627
self.maxval = 255.0
2728
self.adaptive_method = cvcuda.AdaptiveThresholdType.GAUSSIAN_C
2829
self.threshold_type = cvcuda.ThresholdType.BINARY

bench/python/all_ops/op_as_image.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
class OpAsImageFromNVCVImage(AbstractOpBase):
2525
def setup(self, input):
26+
super().setup(input)
2627
# dummy run that does not use cache
2728
img = nvcv.Image((128, 128), nvcv.Format.RGBA8)
2829

bench/python/all_ops/op_as_images.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
class OpAsImagesFromNVCVImage(AbstractOpBase):
2525
def setup(self, input):
26+
super().setup(input)
2627
# dummy run that does not use cache
2728
nvcv.ImageBatchVarShape(100)
2829
img = nvcv.Image((128, 128), nvcv.Format.RGBA8)

bench/python/all_ops/op_averageblur.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
class OpAverageBlur(AbstractOpBase):
2525
def setup(self, input):
26+
super().setup(input)
2627
self.kernel_size = (3, 3)
2728
self.kernel_anchor = (-1, -1)
2829

bench/python/all_ops/op_blurbox.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
class OpBlurBox(AbstractOpBase):
2828
def setup(self, input):
29+
super().setup(input)
2930
self.kernel_size = 5
3031

3132
data = read_image(os.path.join(self.assets_dir, "brooklyn.jpg"))

bench/python/all_ops/op_boundingbox.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
class OpBoundingBox(AbstractOpBase):
2828
def setup(self, input):
29+
super().setup(input)
2930
self.border_color = (0, 255, 0, 255)
3031
self.fill_color = (0, 0, 255, 0)
3132
self.thickness = 5

bench/python/all_ops/op_brightnesscontrast.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
class OpBrightnessContrast(AbstractOpBase):
2626
def setup(self, input):
27+
super().setup(input)
2728
brightness = torch.tensor([1.2]).cuda(self.device_id)
2829
self.brightness = cvcuda.as_tensor(brightness, "N")
2930

0 commit comments

Comments
 (0)