Beschleunigen Sie die OpenCV-Bildverarbeitung mit GPU (CUDA) In der Post habe ich bestätigt, dass Xavier NX auch GPU MAT zur Beschleunigung verwendet.
Beim Versuch, GPUMAT (CUDA) mit XavierNX zu verwenden
cv2.error: OpenCV(4.1.1) /home/nvidia/host/build_opencv/nv_opencv/modules/core/include/opencv2/core/private.cuda.hpp:107: error: (-216:No CUDA support) The library is compiled without CUDA support in function 'throw_no_cuda'
Es wird gesagt, dass GPU MAT nicht verwendet werden kann. Erstellen Sie ein OpenCV 4.3 GPUMAT (CUDA) -fähiges Image mit Docker. Erstellen Sie OpenCV 4.3 mit DNN_BACKEND_CUDA auf Jetson Xavier NX (https://qiita.com/sowd0726/items/57a4e867d358283bdf20).
Ausführen des erstellten Bildes # Hier wird das erstellte Bild als opencv 430: 100 gekennzeichnet.
sudo docker run -it --rm --net=host --runtime nvidia -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix opencv430:100
Dann auf Docker https://github.com/iwatake2222/OpenCV_CUDA Führen Sie das Skript in aus.
python3 opencv_cuda.py
Ich führe es jeweils nur einmal aus, daher gibt es Variationen, aber die CPU ist schneller als der Jetson Nano, aber die GPU fühlt sich ziemlich langsam an. Bei der Messung der GPU 1, Kopie auf GPU-Seite, 2, Größenänderung, 3, kehren Sie zur CPU-Seite zurück In Wirklichkeit profitieren also nur 2 von der GPU, daher denke ich, dass der Wert selbst so ist, aber [OpenCV-Bildverarbeitung mit GPU (CUDA) beschleunigen](OpenCV-Bildverarbeitung mit GPU (CUDA)] Warum ist es langsamer als Jetson Nano im Vergleich zum Ergebnis von (schneller)? .. .. Wenn jemand irgendwelche Kenntnisse hat
nvpmodel -m 0
CPU = 0.8271254301071167[msec]
GPU = 0.9963115930557251[msec]
1
nvpmodel -m 1
CPU = 1.1097469329833984[msec]
GPU = 0.8339884281158447[msec]
1
nvpmodel -m 2
CPU = 1.107427430152893[msec]
GPU = 1.0129541397094726[msec]
1
nvpmodel -m 3
CPU = 1.0416812896728516[msec]
GPU = 0.9837974786758423[msec]
1
nvpmodel -m 4
CPU = 1.3258913993835448[msec]
GPU = 1.004795241355896[msec]
1
Führen Sie plötzlich jetson_clocks aus und messen Sie CPU = 1.1041647672653199[msec] GPU = 0.3990261316299438[msec] 1 ist geworden. /etc/nvpmodel.conf Soweit ich sehen kann, ändert sich die maximale Uhr nicht, aber wenn jetson_clocks ausgeführt wird, wird der Regler gestoppt und auf die maximale Uhr festgelegt. Obwohl ich es nicht überprüft habe, besteht die Möglichkeit, dass der Betrieb von Governmentor nicht rechtzeitig erfolgt, da die Übertragung häufig durch CPU-Verarbeitung und die Größenänderung häufig durch GPU-Verarbeitung umgeschaltet wird. Ich werde es überprüfen, wenn ich Lust dazu habe.
Recommended Posts