Skip to content

Commit 0b4035d

Browse files
committed
feat: release of CV-CUDA v0.2.1-alpha
1 parent 304c79b commit 0b4035d

File tree

357 files changed

+15041
-4248
lines changed

Some content is hidden

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

357 files changed

+15041
-4248
lines changed

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,3 +18,4 @@
1818
*.tiff filter=lfs diff=lfs merge=lfs -text
1919
*.onnx filter=lfs diff=lfs merge=lfs -text
2020
*.bmp filter=lfs diff=lfs merge=lfs -text
21+
*.mp4 filter=lfs diff=lfs merge=lfs -text

.gitmodules

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,3 +19,6 @@
1919
[submodule "3rdparty/googletest"]
2020
path = 3rdparty/googletest
2121
url = https://github.com/google/googletest.git
22+
[submodule "3rdparty/dlpack"]
23+
path = 3rdparty/dlpack
24+
url = https://github.com/dmlc/dlpack.git

3rdparty/dlpack

Submodule dlpack added at ca4d00a

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,7 +23,7 @@ endif()
2323

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

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Contributing to CV-CUDA
22

3-
**As of release v0.2.0-alpha, CV-CUDA is not accepting outside contribution.**
3+
**As of release v0.2.1-alpha, CV-CUDA is not accepting outside contribution.**
44

55
Contributions to CV-CUDA fall into the following categories:
66

@@ -12,7 +12,7 @@ Contributions to CV-CUDA fall into the following categories:
1212
1. To propose a new feature, please file a new feature request
1313
[issue](https://github.com/CVCUDA/CV-CUDA/issues/new/choose). Describe the
1414
intended feature and discuss the design and implementation with the team and
15-
community. NOTE: Currently, as of release v0.2.0-alpha, CV-CUDA is not accepting
15+
community. NOTE: Currently, as of release v0.2.1-alpha, CV-CUDA is not accepting
1616
outside contribution.
1717
1. To ask a general question, please sumbit a question
1818
[issue](https://github.com/CVCUDA/CV-CUDA/issues/new/choose). If you need

README.md

Lines changed: 109 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

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

5-
![Version](https://img.shields.io/badge/Version-v0.2.0--alpha-blue)
5+
![Version](https://img.shields.io/badge/Version-v0.2.1--alpha-blue)
66

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

@@ -13,12 +13,12 @@
1313

1414
CV-CUDA is an open-source project that enables building efficient cloud-scale
1515
Artificial Intelligence (AI) imaging and computer vision (CV) applications. It
16-
uses GPU acceleration to help developers build highly efficient pre- and post-
17-
processing pipelines. CV-CUDA originated as a collaborative effort between
18-
[NVIDIA][NVIDIA Develop] and [ByteDance][ByteDance].
16+
uses graphics processing unit (GPU) acceleration to help developers build highly
17+
efficient pre- and post-processing pipelines. CV-CUDA originated as a
18+
collaborative effort between [NVIDIA][NVIDIA Develop] and [ByteDance][ByteDance].
1919

2020
Refer to our [Developer Guide](DEVELOPER_GUIDE.md) for more information on the
21-
operators avaliable as of release v0.2.0-alpha.
21+
operators available as of release v0.2.1-alpha.
2222

2323
## Getting Started
2424

@@ -29,7 +29,10 @@ To get a local copy up and running follow these steps.
2929
- Linux distro:
3030
- Ubuntu x86_64 >= 18.04
3131
- WSL2 with Ubuntu >= 20.04 (tested with 20.04)
32-
- CUDA Driver >= 11.7 (Not tested on 12.0)
32+
- NVIDIA driver
33+
- Linux: Driver version 520.56.06 or higher
34+
- CUDA Toolkit
35+
- Version 11.7 or above. (12.0 is not yet tested.)
3336
- GCC >= 11.0
3437
- Python >= 3.7
3538
- cmake >= 3.22
@@ -41,88 +44,140 @@ packages. Choose the installation method that meets your environment needs.
4144

4245
#### Tar File Installation
4346

44-
```
45-
tar -xvf nvcv-lib-0.2.0-cuda11-x86_64-linux.tar.xz
47+
```shell
48+
tar -xvf nvcv-lib-0.2.1-cuda11-x86_64-linux.tar.xz
49+
tar -xvf nvcv-dev-0.2.1-cuda11-x86_64-linux.tar.xz
4650
```
4751

4852
#### DEB File Installation
4953

50-
```
51-
sudo dpkg -i nvcv-lib-0.2.0-cuda11-x86_64-linux.deb
54+
```shell
55+
sudo apt-get install -y ./nvcv-lib-0.2.1-cuda11-x86_64-linux.deb ./nvcv-dev-0.2.1-cuda11-x86_64-linux.deb
5256
```
5357

5458
#### Python WHL File Installation
5559

56-
```
57-
pip install nvcv_python-0.2.0-cp38-cp38-linux_x86_64.whl
60+
```shell
61+
pip install nvcv_python-0.2.1-cp38-cp38-linux_x86_64.whl
5862
```
5963

6064
### Build from Source
6165

62-
Follow these instruction to successfully build CV-CUDA from source:
66+
Follow these instruction to build CV-CUDA from source:
67+
68+
1. Set up your local CV-CUDA repository
69+
70+
1. Install prerequisites needed to setup up the repository.
71+
72+
On Ubuntu 22.04, install the following packages:
73+
- git-lfs: to retrieve binary files from remote repository
74+
75+
```shell
76+
sudo apt-get install -y git git-lfs
77+
```
78+
79+
2. After cloning the repository (assuming it was cloned in `~/cvcuda`),
80+
it needs to be properly configured by running the `init_repo.sh` script only once.
81+
82+
```shell
83+
cd ~/cvcuda
84+
./init_repo.sh
85+
```
6386

6487
1. Build CV-CUDA
6588

66-
```
67-
cd ~/cvcuda
68-
ci/build.sh
69-
```
89+
1. Install the dependencies required for building CV-CUDA
7090

71-
This will compile a x86 release build of CV-CUDA inside `build-rel` directory.
72-
The library is in build-rel/lib, docs in build-rel/docs and executables
73-
(tests, etc...) in build-rel/bin.
91+
On Ubuntu 22.04, install the following packages:
92+
- g++-11: compiler to be used
93+
- cmake, ninja-build (optional): manage build rules
94+
- python3-dev: for python bindings
95+
- libssl-dev: needed by the testsuite (MD5 hashing utilities)
7496

75-
The script accepts some parameters to control the creation of the build tree:
97+
```shell
98+
sudo apt-get install -y g++-11 cmake ninja-build python3-dev libssl-dev
99+
```
76100

77-
```
78-
ci/build.sh [release|debug] [output build tree path]
79-
```
101+
For CUDA Toolkit, any version of the 11.x series should work.
102+
CV-CUDA was tested with 11.7, thus it should be preferred.
103+
104+
```shell
105+
sudo apt-get install -y cuda-minimal-build-11-7
106+
```
107+
108+
2. Build the project
109+
110+
```shell
111+
ci/build.sh
112+
```
80113

81-
By default it builds for release.
114+
This will compile a x86 release build of CV-CUDA inside `build-rel` directory.
115+
The library is in build-rel/lib, docs in build-rel/docs and executables
116+
(tests, etc...) are in build-rel/bin.
82117

83-
If output build tree path isn't specified, it'll be `build-rel` for release
84-
builds, and build-deb for debug.
118+
The script accepts some parameters to control the creation of the build tree:
119+
120+
```shell
121+
ci/build.sh [release|debug] [output build tree path]
122+
```
123+
124+
By default it builds for release.
125+
126+
If output build tree path isn't specified, it'll be `build-rel` for release
127+
builds, and `build-deb` for debug.
85128

86129
1. Build Documentation
87130

88-
```
89-
ci/build_docs.sh [build folder]
90-
```
131+
1. Install the dependencies required for building the documentation
91132

92-
Example:
93-
`ci/build_docs.sh build
133+
On Ubuntu 22.04, install the following packages:
134+
- doxygen: parse header files for reference documentation
135+
- python3, python3-pip: to install some python packages needed
136+
- sphinx, breathe, exhale, recommonmark, graphiviz: to render the documentation
137+
- sphinx-rtd-theme: documenation theme used
94138

95-
1. Build Samples
139+
```shell
140+
sudo apt-get install -y doxygen graphviz python3 python3-pip
141+
sudo python3 -m pip install sphinx==4.5.0 breathe exhale recommonmark graphviz sphinx-rtd-theme
142+
```
96143

97-
```
98-
./ci/build_samples.sh [build folder]
99-
```
144+
2. Build the documentation
145+
```shell
146+
ci/build_docs.sh [build folder]
147+
```
148+
149+
Example:
150+
`ci/build_docs.sh build_docs`
100151

101-
_(For instructions on how to compile samples outside of the CV-CUDA project,
102-
see the [Samples](samples/README.md) documentation)_
152+
1. Build and run Samples
153+
154+
1. For instructions on how to build samples from source and run them, see the [Samples](samples/README.md) documentation.
103155

104156
1. Run Tests
105157

106-
The tests are in `<buildtree>/bin`. You can run the script below to run all
107-
tests at once. Here's an example when build tree is created in `build-rel`
158+
1. Install the dependencies required for running the tests
108159

109-
```
110-
build-rel/bin/run_tests.sh
111-
```
160+
On Ubuntu 22.04, install the following packages:
161+
- python3, python3-pip: to run python bindings tests
162+
- torch: dependencies needed by python bindings tests
112163

113-
1. Run Samples
164+
```shell
165+
sudo apt-get install -y python3 python3-pip
166+
sudo python3 -m pip install pytest torch
167+
```
114168

115-
The samples are installed in `<buildtree>/bin`. You can run the script below
116-
to download and serialize the model and run the sample with the test data
117-
provided.
169+
2. Run the tests
118170

119-
```shell
120-
./ci/run_samples.sh
121-
```
171+
The tests are in `<buildtree>/bin`. You can run the script below to run all
172+
tests at once. Here's an example when build tree is created in `build-rel`
173+
174+
```shell
175+
build-rel/bin/run_tests.sh
176+
```
122177
123178
1. Package installers
124179
125-
From a succesfully built project, installers can be generated using cpack:
180+
Installers can be generated using the following cpack command once you have successfully built the project
126181
127182
```shell
128183
cd build-rel
@@ -134,8 +189,8 @@ Follow these instruction to successfully build CV-CUDA from source:
134189
135190
For a fine-grained choice of what installers to generate, the full syntax is:
136191
137-
```
138-
cmake . -G [DEB|TXZ]
192+
```shell
193+
cpack . -G [DEB|TXZ]
139194
```
140195
141196
- DEB for Debian packages
@@ -145,7 +200,7 @@ Follow these instruction to successfully build CV-CUDA from source:
145200
146201
CV-CUDA is an open source project. As part of the Open Source Community, we are
147202
committed to the cycle of learning, improving, and updating that makes this
148-
community thrive. However, as of release v0.2.0-alpha, CV-CUDA is not yet ready
203+
community thrive. However, as of release v0.2.1-alpha, CV-CUDA is not yet ready
149204
for external contributions.
150205
151206
To understand the process for contributing the CV-CUDA, see our

ci/check_cicd.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash -e
2+
3+
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
# Licensed under the Apache License, Version 2.0 (the "License");
7+
# you may not use this file except in compliance with the License.
8+
# You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
18+
# SDIR is the directory where this script is located
19+
SDIR=$(dirname "$(readlink -f "$0")")
20+
21+
if [ $# != 1 ]; then
22+
echo "Invalid arguments"
23+
echo "Usage: $(basename "$0") <container tag id>"
24+
exit 1
25+
fi
26+
27+
tag_used=$1
28+
shift
29+
30+
# shellcheck source=docker/config
31+
. $SDIR/../docker/config
32+
33+
if [ "$TAG_IMAGE" != "$tag_used" ]; then
34+
echo "Tag of docker image used, $IMAGE_URL_BASE:$tag_used, must be $TAG_IMAGE. Please update the .gitlab-ci.yml" && false
35+
fi

0 commit comments

Comments
 (0)