[PYTHON] Streben Sie eine einfache Installation von OpenCv und Cuda mit JetPack (NVIDIA SDK Manager) von Nvidia an

Streben Sie eine einfache Installation von OpenCv und Cuda mit JetPack (NVIDIA SDK Manager) von Nvidia an

スクリーンショット 2020-06-19 21.43.27.png

Bereiten Sie eine Maschine mit der GPU von Nvidia vor

Die Nvidia-GPU benötigt einen PC

$ apt-cache search "^nvidia-[0-9]{3}$"

Finden Sie heraus, welcher Nvidia-Treiber mit apt-cache auf diesem PC installiert werden kann. 20191106123629.png 20191106125506.png

Cuda 10.0 ist für NVIDIA SDK Manager installiert. Es sind mehr als 410 NVIDIA-Treiber installiert. Verwenden Sie einen Windows-Computer, der Cuda 10.0 unterstützt, oder verwenden Sie Jatson. Wenn dies nicht unterstützt wird, geben Sie * NVIDIA SDK Manager * auf, senken Sie die Version von Cuda und installieren Sie sie manuell

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html Cuda 10.0 funktioniert nicht, da der GPU-Treiber für ältere PCs 410 oder weniger beträgt

~~ Verwenden Sie eine Software für virtuelle Umgebungen ~~

~~ Parallels Desktop, VMWare usw. Hier verwenden wir parallels-desktop ~~ Nachtrag: Der Geforce-Treiber wird in einer virtuellen Umgebung nicht erkannt Wenn es sich um einen Mac handelt, geben Sie an, ob Sie Linux per Bootboot oder unter Windows starten möchten Ob auf einen externen Jetson Nano übertragen und installiert werden soll (#1)

Ubuntu installieren

Distributionsseite der japanischen Version Ubuntu スクリーンショット 2020-06-19 19.53.39.png

Lassen Sie den Cursor mit Strg + Alt los ~~ Die Parallels Tool-CD wird gemountet, daher sollten Sie sie zusammen installieren. ~~

#Aktualisieren
sudo apt-get update
sudo apt-get upgrade
Beziehung zwischen NVIDIA-Grafiktreiber und Cuda-Version

Die Cuda-Version des NVIDIA SDK-Managers ist 10.0. Es funktioniert nicht mit alten PC Gpu und alten Nivida Treibern. Geben Sie entweder die automatische Installation von NVIDIA SDK Manager auf und wechseln Sie zur manuellen Installation, indem Sie die Version von Cuda senken oder einen neuen PC erneuern

Überprüfen Sie, ob die GPU Nvidia ist
sudo lshw -C display 

Der virtuelle Videoadapter wird in einer virtuellen Umgebung angezeigt
Der Nivide-Treiber kann nicht in einer virtuellen Umgebung installiert werden, daher der Host-PC(Linux or Windows)Der Nivide-Treiber muss installiert sein

Finden Sie heraus, ob Ubuntu die GPU erkennt

$ sudo ubuntu-drivers devices

Installationsmethode für den Nvidia-Treiber 1

Referenz

Finden Sie heraus, ob Ubuntu die GPU erkennt

$ sudo ubuntu-drivers devices

Wenn die GPU-Modellnummer korrekt angezeigt wird, führen Sie den folgenden Befehl aus, um den Treiber zu installieren.

$ sudo ubuntu-drivers autoinstall
#Listen Sie die auf Ihrem Computer installierten NVIDIA-Treiber auf
$ dpkg -l | grep nvidia

# apt-Liste der NVIDIA-Treiber, die mit get installiert werden können
$ apt-cache search "^nvidia-[0-9]{3}$"

Überprüfen Sie mit dem Befehl nvidia-smi, ob die Treiberversion und die GPU-Details angezeigt werden

$ nvidia-smi

Wenn es korrekt angezeigt wird, fahren Sie mit der Installation von Cuda fort.

Ich habe eine Fehlermeldung erhalten, als ich nvidia-smi ausgeführt habe
$ nvidia-smi 
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
nvidia-smi konnte den treiber von nvidia nicht bestätigen. Stellen Sie sicher, dass Sie den neuesten Treiber haben.

In diesem Fall wird das Problem durch Deaktivieren von Nouveau behoben. Erstellen Sie zunächst /etc/modprobe.d/blacklist-nouveau.conf und bearbeiten Sie es wie folgt.

$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf

Füllen Sie den folgenden Inhalt aus

blacklist nouveau
options nouveau modeset=0

Führen Sie als Nächstes den folgenden Befehl aus, um das Kernelmodul neu zu laden.

$ sudo update-initramfs -u

$ sudo reboot

$ nvidia-smi

Referenz

Starten Sie Ihren PC neu und fahren Sie mit der CUDA-Installation fort, wenn nvidia-smi ausgeführt werden kann

Installationsmethode für den Nvidia-Treiber 2

Laden Sie den [Nvidia-Treiber] herunter (https://www.nvidia.co.jp/Download/index.aspx?lang=jp). スクリーンショット 2020-06-30 14.18.07.png

Wählen Sie den installierten GPU-Treiber aus, laden Sie die Run-Format-Datei herunter und installieren Sie sie

$ chmod +x GPU-Treibername.run
$sudo sh GPU-Treibername.run

Überprüfen Sie mit dem Befehl nvidia-smi, ob die Treiberversion und die GPU-Details angezeigt werden

$ nvidia-smi
Vorsichtsmaßnahmen bei der Neuinstallation

Wenn ich zuerst den NVIDIA SDK Manager installiert habe, wurde der neueste NVIDIA-Grafiktreiber installiert. Als ich dann versuchte, den alten Grafiktreiber auf meinem Computer zu installieren, trat ein Fehler auf und ich konnte ihn nicht installieren. Ich habe versucht, mit dem Befehl aptitude für die Abhängigkeitsauflösung eine Neuinstallation durchzuführen, aber er blieb auf dem Desktop-Bildschirm hängen.

Beachten Sie, dass die Maschine hing sudo aptitude install libnvidia-encode-418 Referenz

Es kann besser sein, gehorsam zu deinstallieren und neu zu installieren

sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*

Cuda und OpenCv installieren

Installieren Sie NVIDIA SDK Manager Kann nur installiert werden, wenn eine Verbindung zum Netz besteht スクリーンショット 2020-06-19 19.51.55.png

Laden Sie das JetPack-Archiv herunter, entpacken Sie es und installieren Sie es. ** Sie müssen ein Nvidia-Konto erstellen ** スクリーンショット 2020-06-19 20.01.18.png

Wählen Sie HostMachien. Wählen Sie JetPack 4.3.

Referenzartikel スクリーンショット 2020-06-19 20.05.24.png

** Aktivieren Sie unten nach dem Download unbedingt Installieren ** ** Überprüfen Sie dies unbedingt, da es bei der Installation während des Downloads zu einem Fehler kommen kann ** Sie benötigen ca. 30G Kapazität

Die Installierung ist abgeschlossen

スクリーンショット 2020-06-20 19.09.20.png

OpenCv und Cuda wurden automatisch installiert.

JetPack 4.3 in jetson components:

L4T R32.3.1 (K4.9)
Ubuntu 18.04 LTS aarch64
CUDA 10.0
cuDNN 7.6.3
TensorRT 6.0.1
VisionWorks 1.6
OpenCV 4.1 (4.1.1)
Nsight Systems 2019.6
Nsight Graphics 2019.5
Nsight Compute 2019.3
SDK Manager 1.0.0

Lage der Cuda

/usr/local/cuda
/usr/local/cuda-10.0

So überprüfen Sie opencv

$ sudo apt-get install python3-pip

$ sudo pip3 install numpy
$ python3
>>> import cv2
>>> print(cv2)
>>> cv2.__version__
4.1.1

So installieren Sie den offiziellen Cuda

Erläuterung von Official cuda

Pfadeinstellungen hinzufügen

$ sudo apt install vim
#Update vim
sudo apt install vim

#Geben Sie die Versionsnummer in x und y ein
$ sudo vim ~/.bashrc

## CUDA and cuDNN paths
export PATH=/usr/local/cuda-x.y/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-x.y/lib64:${LD_LIBRARY_PATH}
#Umgebungsvariable$LD_LIBRARY_Fügen Sie den NVIDIA-Treiberpfad zu PATH hinzu
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-Nummer

#sparen
$ source ~/.bashrc

#Bestätigen
$ nvcc -V

#Überprüfen Sie den Speicherort des CUDA Toolkit
$ which nvcc

#/usr/local/cuda-10.0/bin/nvcc 

Referenz Referenz

Installation und Funktionsprüfung von RunTime von cuDNN

cudnn-archive スクリーンショット 2020-06-30 13.27.00.png

cuDNN Runtime Library for Ubuntuh   cuDNN Developer Library for Ubuntuh cuDNN Code Samples and User Guide for Ubuntu Zum Installieren herunterladen und doppelklicken

Referenz

Funktionsprüfung von cuDNN

Überprüfen Sie, ob sich der Pfad in cuda-10.0 / bin befindet Wenn Sie bestanden haben, können Sie cuda-install-samples-10.0.sh ausführen Führen Sie in Ihrem Home-Verzeichnis. Geben Sie den Ordnernamen in das Argument ein. Wenn Sie cuda-install-samples-10.0.sh ausführen, wird ein Beispielordner in Ihrem Home-Verzeichnis erstellt. Ich habe eine Make-Datei, also werde ich sie erstellen Eine Beispieldatei wird im Ordner bin generiert. Versuchen Sie daher, sie auszuführen. Führen Sie deviceQuery aus, um festzustellen, ob das cuda-Gerät gültig ist

$ cd /usr/local/cuda-10.0/bin

# /usr/local/cuda-10.0/bin/cuda-install-samples-10.0.sh

#Kopieren Sie das Verzeichnis mit dem Beispielcode in Ihr Ausgangsverzeichnis
$ cuda-install-samples-10.0.sh Ordnername

$Name des CD-Ordners/NVIDIA_CUDA-10.0_Samples
$ make
$ cd NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release

$ ./deviceQuery
 
$ ./bandwidthTest

$ ./volumeRender 

[Referenz](https://medium.com/@vitali.usau/install-cuda-10-0-cudnn-7-3-and-build-tensorflow-gpu-from-source-on-ubuntu-18-04 -3daf720b83fe)

Bestätigung der cuDNN-Installation

Listen Sie die installierten Pakete mit dem Befehl dpkg -l auf.

#Listen Sie die auf Ihrem Computer installierten cuDNN-Pakete auf
$ dpkg -l | grep cudnn

cuDNN-Speicherort

#Überprüfen Sie das Verzeichnis, in dem das Deb-Paket gespeichert ist(-L Option)
$ dpkg -L libcudnn7

Installieren Sie Yolo

$ sudo apt install git
$ git clone https://github.com/AlexeyAB/darknet.git
$ cd darknet
darknet$ vim Makefile
GPU=1
CUDNN=1
OPENCV=1

darknet$ make

-lcuda nicht gefunden Fehler erscheint

Finden Sie heraus, wo libcuda.so ist

# libcuda.Finden Sie heraus, wo das ist
$ locate libcuda.so

# libcuda.Platziere also Treffer
/usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so
/usr/loca/cuda-10.0/targets/aarch64-linux/lib/stubs/libcuda.so

Wenn Sie die Datei libcuda.so gefunden haben, erstellen Sie sie im Ordner x86_64-linux-gnu. Finden Sie einen guten Artikel, indem Sie einen symbolischen Link für libcuda.so.1 im Ordner x86_64-linux erstellen

sudo ln -s /usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so.1

# libcuda.so.1 und libcuda.Daher sind beide symbolischen Links erforderlich
sudo ln -s /usr/local/cuda-10.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so

Referenz

#Mach es nochmal
$ make clean
$ make

Es heißt, dass die Datei cudnn.h nicht existiert. Kopieren Sie die Datei cudnn.h

[cudnn Installationsbeamter](https://translate.google.co.jp/translate?hl=ja&sl=auto&tl=ja&u=https%3A%2F%2Fdocs.nvidia.com%2Fdeeplearning%2Fsdk%2Fcudnn-install%2Findex. html% 23installlinux-tar)

cudnn-archive スクリーンショット 2020-06-26 17.41.06.png

Laden Sie die cuDNN Library für Linux herunter

#Entpacken Sie das cuDNN-Paket. Kann sogar aus dem Finder dekomprimiert werden

$ tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz

$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

cudnn.h, das während make nicht gefunden wurde, gibt keinen Fehler mehr aus

cudnn verwandt

libcudnn.so.7.0.Libcudnn anders als 1.Löschen Sie also die Datei
/usr/local/cuda/lib64 $ sudo rm -rf libcudnn.so libcudnn.so.7
Reproduzieren
sudo ln -s libcudnn.so.7.0.1 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
make clean 
make

Ich kann kein Darknet / Obj schreiben

Ändern Sie die Darknet / Obj-Berechtigungen

$sudo chmod 777 heimatweg/darknet/obj Heimatpfad/darknet/backup

Mach es nochmal

$ make clean
$ make

Gewichte herunterladen

Download von pjreddie, da es nicht in der Alexey AB-Version enthalten ist

$ wget https://pjreddie.com/media/files/yolov3.weights

Versuchen Sie, Yolo auszuführen

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Fehler beim Ausführen von Yolo Not compiled with OpenCV, saving to predictions.png instead

DarkNet Makefile openCv ist nicht 1

$ vim Makefile
  OPENCV=1

CUDA driver version is insufficient for CUDA runtime version CUDA driver version is insufficient for CUDA runtime version : No Such File or Directory

in Wartestellung [Referenz](https://support.dl.sony.com/faq-ja/faq%EF%BC%9A%E3%82%BB%E3%83%83%E3%83%88%E3%82% A2% E3% 83% 83% E3% 83% 97 /) Kommt es heraus, wenn der NVIDIA-Grafiktreiber nicht installiert ist? Nachforschungen anstellen

Aktualisieren Sie auch cuda
sudo apt-get install cuda

No CUDA-capable device is detected

CUDA-kompatibles Gerät nicht erkannt Weil die GPU von Nvidia in der virtuellen Umgebung nicht erkannt wird. Stoppen Sie die virtuelle Umgebung und installieren Sie das Betriebssystem erneut auf dem Host-PC

PATH-Prüfung des CUDA- und NVIDIA-Treibers (/ usr / lib / nvidia - ***)

Enthält die Ausgabe "/ usr / local / cuda-10.0 / lib64" und "/ usr / lib / nvidia-number"?

$ echo $LD_LIBRARY_PATH  

PATH-Prüfung auf CUDA- und nvcc-Befehle

Ist die Ausgabe "/ usr / local / cuda-10.0 / bin / nvcc"?

$ which nvcc             
/usr/local/cuda-10.0/bin/nvcc

PATH-Prüfung auf Befehl nvidia-smi

Ist die Ausgabe "/ usr / bin / nvidia-smi"?

 $ which nvidia-smi
/usr/bin/nvidia-smi

So deinstallieren Sie

#Geben Sie die Version in x ein
sudo apt remove cuda-x-y
sudo apt autoremove
sudo apt remove libcudnnx libcudnnx-dev libcudnnx-doc
rm -rfv ~/NVIDIA_CUDA-x.y_Samples/ #Löschen Sie den Beispielcode.
# ~/.Löschen Sie die zu bashrc hinzugefügte PATH-Einstellung mit einem Texteditor.
#Melden Sie sich ab, um Änderungen in den PATH-Einstellungen widerzuspiegeln

Punkt

Bereiten Sie eine Maschine mit Nvidia GPU vor Der Nvidia-Grafiktreiber kann nicht in einer virtuellen Umgebung installiert werden Der Cuda von Nividia Sdk Maneger ist 10.0, daher funktioniert er nicht mit älteren Nividia-Treibern. Verwenden Sie den Nvidia-Treiber, mit dem Cuda 10.0 ausgeführt werden kann Entpacken Sie das cuDNN-Paket und kopieren Sie die angegebene Datei (cudnn * .h) usw. an den angegebenen Speicherort Suchen Sie den Speicherort von libcuda.so mit locate libcuda.so. Fügen Sie den symbolischen Link in / usr / lib / x86_64-linux-gnu ein Nach dem Bearbeiten von .bashrc mit vim wird es nur angewendet, wenn es als Quelle ~ / .bashrc gespeichert ist

Fazit

Bei Verwendung von Jetson Nano ist es besser, Nividia Sdk Maneger zu verwenden. Kompatibel mit cuda10- und Nividia-Treibern Überprüfen Sie bei der Installation auf einem PC die GPU. Wenn der Nvidia-Treiber 410 oder höher unterstützt, versuchen Sie, das Nividia SDK zu verwenden. Wenn es nicht weniger als 410 unterstützt, geben Sie das SDK auf und führen Sie es manuell aus.

Referenzseite

** Inspiration-Blog ** Es ist sehr detailliert geschrieben

Offizielle Installationsinformationen für Coda Linux

Ein komfortables Jetson-Leben mit NVIDIA SDK Manager auf Docker

JetPack-Setup-Verfahren für Jetson TX2

https://pysource.com/2019/08/29/yolo-v3-install-and-run-yolo-on-nvidia-jetson-nano-with-gpu/

(#1) CUDA on WSL2 Wenn Sie WSL2 verwenden, können Sie Linux unter Windows erstellen und den GPU-Treiber von Windows verwenden.

Recommended Posts

Streben Sie eine einfache Installation von OpenCv und Cuda mit JetPack (NVIDIA SDK Manager) von Nvidia an
Einfache Installation von OpenCV auf RaspberryPi 3+
Einfache Einführung in die Python3-Serie und OpenCV3
Einfache Installation und Start von Jupyter Notebook mit Docker (unterstützt auch nbextensions und Scala)