CV-CUDA是一个开源项目,它使建筑有效的云规模人工智能(AI)成像和计算机视觉(CV)应用程序。它使用图形处理单元(GPU)加速度来帮助开发人员构建高效的预处理和后处理管道。 CV-CUDA起源于NVIDIA与派恩达斯之间的合作努力。
有关可用运营商的更多信息,请参阅我们的开发人员指南。
要启动并运行本地副本,请按照以下步骤操作。
| CV-CUDA构建 | 平台 | CUDA版本 | CUDA计算能力 | 硬件体系结构 | NVIDIA驱动程序 | Python版本 | 支持的编译器(从源构建) | API与预建二进制 | OS/Linux发行版用预先构建的软件包测试 |
|---|---|---|---|---|---|---|---|---|---|
| x86_64_cu11 | x86_64 | 11.7或更高版本 | SM7及以后 | Volta,Turing,Ampere,Hopper,Ada Lovelace | R525或更高版本*** | 3.8、3.9、3.10、3.11 | GCC> = 9* GCC> = 11 ** | GCC> = 9 | ubuntu> = 20.04 wsl2/ubuntu> = 20.04 |
| x86_64_cu12 | x86_64 | 12.2或更高版本 | SM7及以后 | Volta,Turing,Ampere,Hopper,Ada Lovelace | R525或更高版本*** | 3.8、3.9、3.10、3.11 | GCC> = 9* GCC> = 11 ** | GCC> = 9 | ubuntu> = 20.04 wsl2/ubuntu> = 20.04 |
| aarch64_cu11 | aarch64 | 11.4 | SM7及以后 | Jetson Agx Orin | 喷气背包5.1 | 3.8 | GCC> = 9* GCC> = 11 ** | GCC> = 9 | Jetson Linux 35.x |
| aarch64_cu12 | aarch64 | 12.2 | SM7及以后 | Jetson Agx Orin,IGX Orin + Ampere RTX6000,IGX Orin + ADA RTX6000 | JetPack 6.0 DP,R535(IGX OS V0.6) | 3.10 | GCC> = 9* GCC> = 11 ** | GCC> = 9 | Jetson Linux 36.2 IGX OS V0.6 |
*部分构建,没有测试模块(请参阅已知限制)
**完整构建,包括测试模块
***样品需要驾驶员R535或更高版本才能运行,并且仅由CUDA 12正式支持。
-DBUILD_TESTS=0构建pip install --upgrade sphinx ),并明确解析系统的默认Python版本./ci/build_docs path/to/build -DPYTHON_VERSIONS="<py_ver>" 。为了方便起见,我们在此处为CUDA版本,Python版本和体系结构的各种组合提供了预制包装。以下步骤描述了如何从此类预制软件包中安装CV-CUDA。
我们支持两个主要的替代途径:
选择满足您环境需求的安装方法。
从当前CV-CUDA版本的发行资产中,为您的计算机体系结构,Python和CUDA版本下载适当的.WHL文件。所有CV-CUDA版本的发布信息都可以在此处找到。下载后,执行pip install命令以安装Python轮。例如:
pip install cvcuda_ < cu_ver > - < x.x.x > -cp < py_ver > -cp < py_ver > -linux_ < arch > .whl其中<cu_ver>是所需的CUDA版本, <xxx>是CV-CUDA版本版本, <py_ver>是所需的Python版本, <arch>是所需的架构。
请注意,Python车轮是独立的,它们包括C ++/CUDA库和Python绑定。
使用apt安装C ++/CUDA库(CVCUDA-LIB*)和开发标头(CVCUDA-DEV*):
sudo apt install -y ./cvcuda-lib- < x.x.x > - < cu_ver > - < arch > -linux.deb ./cvcuda-dev- < x.x.x > - < cu_ver > - < arch > -linux.deb使用apt安装Python绑定(CVCUDA-PYTHON*):
sudo apt install -y ./cvcuda-python < py_ver > - < x.x.x > - < cu_ver > - < arch > -linux.deb其中<cu_ver>是所需的cuda版本, <py_ver>是所需的python版本, <arch>是所需的体系结构。
安装C ++/CUDA库(CVCUDA-LIB*)和开发标头(CVCUDA-DEV*):
tar -xvf cvcuda-lib- < x.x.x > - < cu_ver > - < arch > -linux.tar.xz
tar -xvf cvcuda-dev- < x.x.x > - < cu_ver > - < arch > -linux.tar.xz安装python绑定(cvcuda-python*)
tar -xvf cvcuda-python < py_ver > - < x.x.x > - < cu_ver > - < arch > -linux.tar.xz其中<cu_ver>是所需的cuda版本, <py_ver>是所需的python版本, <arch>是所需的体系结构。
遵循以下指令从来源构建CV-CUDA:
安装设置存储库所需的依赖项:
在Ubuntu> = 20.04上,使用apt安装以下软件包:
sudo apt install -y git git-lfs克隆存储库
git clone https://github.com/CVCUDA/CV-CUDA.git假设存储库是在~/cvcuda中克隆的,则只需运行init_repo.sh脚本一次就需要正确配置它。
cd ~ /cvcuda
./init_repo.sh安装构建CV-CUDA所需的依赖项:
在Ubuntu> = 20.04上,使用apt安装以下软件包:
sudo apt install -y g++-11 cmake ninja-build python3-dev libssl-dev patchelf11.x或12.x Cuda工具包的任何版本都应起作用。因此,建议使用11.7和12.2测试CV-CUDA,因此建议使用这些版本。
sudo apt install -y cuda-11-7
# or
sudo apt install -y cuda-12-2建立项目:
ci/build.sh [release | debug] [output build tree path] [-DBUILD_TESTS = 1 | 0] [-DPYTHON_VERSIONS = ' 3.8;3.9;3.10;3.11 ' ] [-DPUBLIC_API_COMPILERS = ' gcc-9;gcc-11;clang-11;clang-14 ' ]build-rel ,而build-deb将是调试。build-rel/lib和可执行文件(测试等)都在build-rel/bin中。-DBUILD_TESTS选项可用于禁用/启用构建测试(默认启用,请参见已知限制)。-DPYTHON_VERSIONS选项可用于选择Python版本以构建绑定和车轮的版本。默认情况下,仅选择默认系统Python3版本。-DPUBLIC_API_COMPILERS选项可用于选择用于检查公共API兼容性的编译器。默认情况下,尝试选择和检查GCC-11,GCC-9,Clang-11和Clang-14。 已知限制:建立在Ubuntu 20.04上的文档需要最新版本的sphinx( pip install --upgrade sphinx ),并明确解析系统的默认Python版本./ci/build_docs path/to/build -DPYTHON_VERSIONS="<py_ver>" 。
安装构建文档所需的依赖项:
在Ubuntu上,使用apt和pip安装以下软件包:
sudo apt install -y doxygen graphviz python3 python3-pip sphinx
python3 -m pip install breathe recommonmark graphviz sphinx-rtd-theme构建文档:
ci/build_docs.sh [build folder]默认构建文件夹是“构建”。
有关如何从源构建样本并运行它们的说明,请参见样本文档。
安装运行测试所需的依赖项:
在Ubuntu> = 20.04上,使用apt和pip安装以下软件包:
sudo apt install -y python3 python3-pip
python3 -m pip install pytest torch numpy==1.26测试在<buildtree>/bin中。您可以运行下面的脚本以一次运行所有测试。这是一个在build-rel中创建构建树的示例:
build-rel/bin/run_tests.sh包装安装程序
成功构建项目后,可以使用以下CPACK命令生成安装程序:
cd build-rel
cpack .这将在Build目录中生成Debian Installer和Tarballs(*.tar.xz),在其他发行版中进行集成所需。
对于要生成的安装程序的细粒度选择,完整的语法是:
cpack . -G [DEB | TXZ]Python车轮
默认情况下,在release构建过程中,为可用的CUDA版本和指定的Python版本创建了Python绑定和车轮。现在,车轮已输出到build-rel/python3/repaired_wheels文件夹(在Manylinux的情况下由auditwheel repair命令处理后)。单个生成的Python车轮与Cmake Build步骤中指定的所有版本的Python兼容。在这里, build-rel是用于构建发行版构建的构建目录。
PYTHON合规性的新型Python车轮必须在Manylinux 2014 Docker环境中建造。可以使用docker/manylinux/docker_buildx.sh脚本生成Docker图像。这些图像确保车轮符合2014年的Manylinux和PYPI标准。
仍可以使用pip安装内置的车轮。例如,在Linux X86_64上安装为CUDA 12.x,Python 3.10和3.11构建的Python Wheel:
pip install cvcuda_cu12- < x.x.x > -cp310.cp311-cp310.cp311-linux_x86_64.whlCV-CUDA是一个开源项目。作为开源社区的一部分,我们致力于使该社区蓬勃发展的学习,改进和更新的周期。但是,CV-CUDA尚未为外部贡献做好准备。
要了解贡献CV-CUDA的过程,请参阅我们的贡献页面。要了解我们对开源社区的承诺,并提供一个支持和尊重所有贡献者的努力的环境,请阅读我们的行为准则。
mkop.sh脚本是为CV-CUDA库中的新运营商创建脚手架的强大工具。它可以自动多个任务,从而确保一致性和节省时间。
mkop.sh的功能:操作员存根创建:生成NO-OP(NO-OPERATION)运算符模板,这是实现新功能的起点。
文件自定义:修改模板文件以包括新操作员的名称,以确保整个代码库中的命名惯例。
CMAKE集成:将新的运算符文件添加到适当的Cmakelists,促进无缝编译和集成到构建系统中。
Python绑定:为新操作员创建Python包装存根,从而可以在Python环境中使用。
测试设置:为C ++和Python生成测试文件,从而为新操作员的单位测试即时开发。
mkop.sh :使用所需的操作员名称运行脚本。该脚本假设它位于~/cvcuda/tools/mkop中。
./mkop.sh [Operator Name]如果脚本是从其他位置运行的,请提供通往CV-CUDA根目录的路径。
./mkop.sh [Operator Name] [CV-CUDA root]注意:在需要匹配其余文件结构的情况下,将新操作员名称的第一个字母放置在Captritation中。
初始设置:脚本开始验证输入并设置必要的变量。然后,它大写了操作员名称的第一个字母,以遵守命名约定。
模板修改:它处理各种模板文件( Public.h , PrivateImpl.cpp等),用新操作员名称代替占位符。这包括调整文件标头,命名空间和功能签名。
cmake和Python集成:脚本更新CMakeLists.txt文件和Python模块文件,以包括新操作员,以确保构建系统和Python界面识别它。
测试框架:最后,它为C ++和Python设置了测试文件,使开发人员能够立即开始为新操作员编写测试。
CV-CUDA根据Apache-2.0许可证运行。
CV-CUDA作为NVIDIA计划,致力于确保开发实践。请阅读我们的安全页面以了解更多信息。
CV-CUDA由NVIDIA和BONTEDANCE共同开发。