CV-Cuda ist ein Open-Source-Projekt, das es ermöglicht, effiziente Cloud-Scale-Anwendungen für künstliche Intelligenz (KI) zu erstellen. Es verwendet die Beschleunigung der Grafikverarbeitungseinheit (GPU), damit Entwickler hocheffiziente Vor- und Nachbearbeitungspipelines aufbauen können. CV-Cuda entstand als kollaborative Bemühungen zwischen Nvidia und Bytedance.
Weitere Informationen zu den verfügbaren Betreibern finden Sie in unserem Entwicklerhandbuch.
Um eine lokale Kopie in Betrieb zu nehmen, befolgen Sie diese Schritte.
| CV-Cuda-Build | Plattform | CUDA -Version | CUDA -Berechnungsfähigkeit | Hardware -Architekturen | Nvidia -Fahrer | Python -Versionen | Unterstützte Compiler (Build aus Quelle) | API -Kompatibilität mit vorgebauten Binärdateien | OS/Linux -Verteilungen mit vorgebauten Paketen getestet |
|---|---|---|---|---|---|---|---|---|---|
| x86_64_cu11 | x86_64 | 11.7 oder höher | SM7 und später | Volta, Turing, Ampere, Hopper, Ada Lovelace | R525 oder später *** | 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 oder höher | SM7 und später | Volta, Turing, Ampere, Hopper, Ada Lovelace | R525 oder später *** | 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 und später | Jetson Agx Orin | Jetpack 5.1 | 3.8 | gcc> = 9* gcc> = 11 ** | gcc> = 9 | Jetson Linux 35.x |
| aArch64_cu12 | aarch64 | 12.2 | SM7 und später | 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 |
* Teilbau, kein Testmodul (siehe bekannte Einschränkungen)
** Voller Build, einschließlich Testmodul
*** Die Proben erfordern den Fahrer R535 oder höher und werden nur offiziell mit CUDA 12 unterstützt.
-DBUILD_TESTS=0pip install --upgrade sphinx ) sowie explizit die Standard-Python-Version des Systems ./ci/build_docs path/to/build -DPYTHON_VERSIONS="<py_ver>"Für den Einfachheit halber stellen wir hier vorgefertigte Pakete für verschiedene Kombinationen von CUDA-Versionen, Python-Versionen und Architekturen zur Verfügung. In den folgenden Schritten wird beschrieben, wie CV-Cuda aus solchen vorgefertigten Paketen installiert werden.
Wir unterstützen zwei wichtigste alternative Wege:
Wählen Sie die Installationsmethode, die Ihren Umgebungsbedürfnissen entspricht.
Laden Sie die entsprechende .WHL-Datei für Ihre Computerarchitektur, Python- und CUDA-Version von den Release-Assets der aktuellen CV-Cuda-Version herunter. Hier finden Sie hier Informationen zu allen CV-Cuda-Veröffentlichungen. Führen Sie nach dem Herunterladen den Befehl pip install aus, um das Python -Rad zu installieren. Zum Beispiel:
pip install cvcuda_ < cu_ver > - < x.x.x > -cp < py_ver > -cp < py_ver > -linux_ < arch > .whl Wo <cu_ver> die gewünschte CUDA-Version ist, ist <xxx> die CV-Cuda-Version, <py_ver> die gewünschte Python-Version und <arch> ist die gewünschte Architektur.
Bitte beachten Sie, dass die Python -Räder eigenständig sind und sowohl die C ++/CUDA -Bibliotheken als auch die Python -Bindungen enthalten.
Installieren Sie C ++/CUDA-Bibliotheken (cvcuda-lib*) und Entwicklungsheader (cvcuda-dev*) unter Verwendung von apt :
sudo apt install -y ./cvcuda-lib- < x.x.x > - < cu_ver > - < arch > -linux.deb ./cvcuda-dev- < x.x.x > - < cu_ver > - < arch > -linux.deb Installieren Sie Python-Bindungen (cvcuda-python*) unter Verwendung von apt :
sudo apt install -y ./cvcuda-python < py_ver > - < x.x.x > - < cu_ver > - < arch > -linux.deb Wo <cu_ver> die gewünschte CUDA -Version ist, ist <py_ver> die gewünschte Python -Version und <arch> die gewünschte Architektur.
Installieren Sie C ++/CUDA-Bibliotheken (cvcuda-lib*) und Entwicklungsheader (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.xzInstallieren Sie Python-Bindungen (cvcuda-python*)
tar -xvf cvcuda-python < py_ver > - < x.x.x > - < cu_ver > - < arch > -linux.tar.xz Wo <cu_ver> die gewünschte CUDA -Version ist, ist <py_ver> die gewünschte Python -Version und <arch> die gewünschte Architektur.
Befolgen Sie diese Anweisungen, um CV-Cuda aus der Quelle zu erstellen:
Installieren Sie die Abhängigkeiten, die zum Einrichten des Repositorys erforderlich sind:
Installieren Sie auf Ubuntu> = 20.04 die folgenden Pakete mit apt :
sudo apt install -y git git-lfsKlonen Sie das Repository
git clone https://github.com/CVCUDA/CV-CUDA.git Unter der Annahme, dass das Repository in ~/cvcuda kloniert wurde, muss es ordnungsgemäß konfiguriert werden, indem das Skript init_repo.sh nur einmal ausgeführt wird.
cd ~ /cvcuda
./init_repo.shInstallieren Sie die Abhängigkeiten, die zum Erstellen von CV-Cuda erforderlich sind:
Installieren Sie auf Ubuntu> = 20.04 die folgenden Pakete mit apt :
sudo apt install -y g++-11 cmake ninja-build python3-dev libssl-dev patchelfJede Version des CUDA -Toolkits von 11.x oder 12.x sollte funktionieren. CV-Cuda wurde mit 11,7 und 12,2 getestet, diese Versionen werden somit empfohlen.
sudo apt install -y cuda-11-7
# or
sudo apt install -y cuda-12-2Bauen Sie das Projekt auf:
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-deb für Debuggen build-rel .build-rel/lib und ausführbare (Tests usw.) befinden sich in build-rel/bin .-DBUILD_TESTS kann verwendet werden, um die Tests zu deaktivieren/zu aktivieren (standardmäßig aktiviert, siehe bekannte Einschränkungen).-DPYTHON_VERSIONS kann verwendet werden, um Python -Versionen auszuwählen, um Bindungen und Räder zu erstellen. Standardmäßig wird nur die Standard -System -Python3 -Version ausgewählt.-DPUBLIC_API_COMPILERS kann verwendet werden, um die Compiler auszuwählen, die zur Überprüfung der öffentlichen API -Kompatibilität verwendet werden. Standardmäßig wird GCC-11, GCC-9, Clang-11 und Clang-14 versucht, auszuwählen und zu überprüfen. Bekannte Einschränkung: Die Dokumentation, die auf Ubuntu 20.04 basiert, benötigt eine aktuelle Version von Sphinx ( pip install --upgrade sphinx ) sowie explizit die Standard-Python-Version des Systems ./ci/build_docs path/to/build -DPYTHON_VERSIONS="<py_ver>"
Installieren Sie die Abhängigkeiten, die zum Erstellen der Dokumentation erforderlich sind:
Installieren Sie bei Ubuntu die folgenden Pakete mit apt und pip :
sudo apt install -y doxygen graphviz python3 python3-pip sphinx
python3 -m pip install breathe recommonmark graphviz sphinx-rtd-themeErstellen Sie die Dokumentation:
ci/build_docs.sh [build folder]Der Standard -Build -Ordner ist "Build".
Anweisungen zum Erstellen von Proben aus der Quelle und zum Ausführen von Proben finden Sie in der Dokumentation der Muster.
Installieren Sie die Abhängigkeiten, die zum Ausführen der Tests erforderlich sind:
Installieren Sie auf Ubuntu> = 20.04 die folgenden Pakete mit apt und pip :
sudo apt install -y python3 python3-pip
python3 -m pip install pytest torch numpy==1.26 Die Tests befinden sich in <buildtree>/bin . Sie können das folgende Skript ausführen, um alle Tests gleichzeitig auszuführen. Hier ist ein Beispiel, wenn Build Tree in build-rel erstellt wird:
build-rel/bin/run_tests.shPaketinstallateure
Installateure können mit dem folgenden CPack -Befehl generiert werden, sobald Sie das Projekt erfolgreich erstellt haben:
cd build-rel
cpack .Dies wird im Build -Verzeichnis sowohl Debian -Installateure als auch Tarballs (*.tar.xz) generieren, die für die Integration in andere Distributionen benötigt werden.
Damit eine feinkörnige Auswahl der Installateure erzeugt werden soll, ist die vollständige Syntax:
cpack . -G [DEB | TXZ]Python -Räder
Standardmäßig werden während des release Python -Bindungen und Räder für die verfügbare CUDA -Version und die angegebene Python -Version (en) erstellt. Die Räder werden nun im Ordner build-rel/python3/repaired_wheels (nach dem Befehl auditwheel repair im Fall von ManyLinux) ausgegeben. Das Single -erzeugte Python -Rad ist mit allen während des CMake -Build -Schritts angegebenen Versionen von Python kompatibel. Hier ist build-rel das Build-Verzeichnis, mit dem der Release-Build erstellt wird.
Die neuen Python -Räder für die PYPI -Konformität müssen in der Docker -Umgebung von Manylinux 2014 aufgebaut werden. Die Docker -Bilder können mit dem Skript docker/manylinux/docker_buildx.sh erstellt werden. Diese Bilder stellen sicher, dass die Räder viele Linux 2014- und PYPI -Standards erfüllen.
Die gebauten Räder können weiterhin mit pip installiert werden. Zum Beispiel zum Installieren des Python -Rades für CUDA 12.x, Python 3.10 und 3.11 auf Linux x86_64 -Systemen:
pip install cvcuda_cu12- < x.x.x > -cp310.cp311-cp310.cp311-linux_x86_64.whlCV-Cuda ist ein Open-Source-Projekt. Im Rahmen der Open -Source -Community sind wir dem Zyklus des Lernens, Verbesserungen und Aktualisierungen verpflichtet, die diese Gemeinschaft gedeihen lassen. CV-Cuda ist jedoch noch nicht für externe Beiträge bereit.
Um den Prozess für den Beitrag zur CV-Cuda zu verstehen, finden Sie auf unserer beitragenden Seite. Um unser Engagement für die Open -Source -Community zu verstehen und ein Umfeld zu schaffen, das die Bemühungen aller Mitwirkenden unterstützt und respektiert, lesen Sie bitte unseren Verhaltenskodex.
Das mkop.sh -Skript ist ein leistungsstarkes Tool zum Erstellen eines Gerüsts für neue Bediener in der CV-Cuda-Bibliothek. Es automatisiert mehrere Aufgaben, um Konsistenz zu gewährleisten und Zeit zu sparen.
mkop.sh :Operator Stub-Erstellung : Erzeugt NO-OP-OP-Operator-Vorlagen (No-Operation), die als Ausgangspunkt für die Implementierung neuer Funktionen dienen.
Dateianpassung : Ändert Vorlagendateien so, dass der Name des neuen Bedieners einbezogen wird, um konsistente Benennungskonventionen über die Codebasis zu gewährleisten.
CMAKE -Integration : Fügt die neuen Bedienungsdateien den entsprechenden CMakelisten hinzu und erleichtert die nahtlose Zusammenstellung und Integration in das Build -System.
Python -Bindungen : Erstellt Python -Wrapper -Stubs für den neuen Bediener, sodass es in Python -Umgebungen verwendet werden kann.
Test -Setup : Generieren Sie Testdateien für C ++ und Python, wodurch die sofortige Entwicklung von Unit -Tests für den neuen Bediener ermöglicht wird.
mkop.sh : Führen Sie das Skript mit dem gewünschten Bedienungsnamen aus. Das Skript geht davon aus, dass es sich in ~/cvcuda/tools/mkop befindet.
./mkop.sh [Operator Name]Wenn das Skript von einem anderen Ort aus ausgeführt wird, geben Sie den Pfad zum CV-Cuda-Root-Verzeichnis.
./mkop.sh [Operator Name] [CV-CUDA root]Hinweis : Der erste Buchstabe des neuen Bedienungsnamens wird bei Bedarf gefördert, um den Rest der Dateistrukturen zu entsprechen.
Erstes Setup : Das Skript beginnt mit der Validierung der Eingabe und Einrichten der erforderlichen Variablen. Anschließend werden der erste Buchstabe des Bedienungsnamens verwendet, um Konventionen zu benennen.
Vorlagenänderung : Es verarbeitet verschiedene Vorlagendateien ( Public.h , PrivateImpl.cpp usw.) und ersetzt Platzhalter durch den neuen Bedienernamen. Dies beinhaltet die Anpassung von Dateihoitzen, Namespaces und Funktionssignaturen.
CMake und Python -Integration : Das Skript aktualisiert CMakeLists.txt -Dateien und Python -Moduldateien, um den neuen Bediener einzuschließen, um sicherzustellen, dass er vom Build -System und der Python -Schnittstelle erkannt wird.
Tests Framework : Schließlich werden Testdateien für C ++ und Python eingerichtet, sodass Entwickler sofort mit dem Schreiben von Tests für den neuen Bediener beginnen können.
CV-Cuda arbeitet unter der Lizenz Apache-2.0.
CV-Cuda als NVIDIA-Programm setzt sich zur Sicherung der Entwicklungspraktiken ein. Bitte lesen Sie unsere Sicherheitsseite, um mehr zu erfahren.
CV-Cuda wird gemeinsam von Nvidia und Bytedance entwickelt.