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共同開發。