Accélérer le traitement des images OpenCV avec GPU (CUDA) En regardant le Post, j'ai confirmé que Xavier NX utilise également GPU MAT pour accélérer.
--Construisez OpenCV4 avec Jetpack 4.4 de XavierNX pour pouvoir utiliser GPUMAT (CUDA). -Jetpack 4.4 contient à l'origine OpenCV 4.1.1, mais il a été construit sans GPU MAT activé. -Exécuter le script dans Accélérer le traitement d'image OpenCV avec GPU (CUDA).
Lorsque vous essayez d'utiliser GPUMAT (CUDA) avec XavierNX
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'
On dit que GPU MAT ne peut pas être utilisé. Créez une image compatible GPUMAT (CUDA) d'OpenCV 4.3 avec Docker Build OpenCV 4.3 avec DNN_BACKEND_CUDA sur Jetson Xavier NX (https://qiita.com/sowd0726/items/57a4e867d358283bdf20).
Exécutez l'image créée # Ici, l'image créée est étiquetée comme opencv 430: 100.
sudo docker run -it --rm --net=host --runtime nvidia -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix opencv430:100
Puis sur Docker https://github.com/iwatake2222/OpenCV_CUDA Exécutez le script dans.
python3 opencv_cuda.py
Je ne l'exécute qu'une fois chacun, donc il y a des variations, mais le processeur est plus rapide que le Jetson Nano, mais le GPU semble plutôt lent. Lors de la mesure du GPU 1, copie côté GPU, 2, redimensionnement, 3, retournez du côté du processeur Donc, en réalité, seuls 2 bénéficient du GPU, donc je pense que la valeur elle-même est comme ça, mais [Accélérer le traitement d'image OpenCV avec GPU (CUDA)](Traitement d'image OpenCV avec GPU (CUDA)] Pourquoi est-il plus lent que Jetson Nano par rapport au résultat de (plus rapide)? .. .. Si quelqu'un a des connaissances
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
Soudain, lancez jetson_clocks et mesurez CPU = 1.1041647672653199[msec] GPU = 0.3990261316299438[msec] 1 est devenu. /etc/nvpmodel.conf Pour autant que je puisse voir, l'horloge maximale ne change pas, mais lorsque jetson_clocks est exécuté, le gouverneur est arrêté et fixé à l'horloge maximale. Bien que je ne l'ai pas vérifié, il est possible que le fonctionnement de Governmentor ne soit pas à temps car le transfert est fréquemment commuté par le traitement du processeur et le redimensionnement est fréquemment commuté par le traitement GPU. Je le vérifierai quand j'en aurai envie.
Recommended Posts