Ceci est une ancienne révision du document !
Table des matières
Compilation de OpenCV avec CUDA sur Ubuntu
Décembre 2021: Bug sur Ubuntu Mate avec le réseau –> abandon de Ubuntu !
Désinstaller le Nvidia driver
Pour commencer proprement, si besoin.
sudo apt purge nvidia-* sudo apt autoremove
Installation du driver NVIDIA, CUDA, CuDNN, OpenCV
Adapter ce tuto à la dernière version de CUDA … 11.2 … 11.3 …
Message aux générations futures: la durée d'un confinement égale la durée d'installation de ce truc, les téléchargements sont très gros, la compil interminable, mais quel plaisir à la fin de retrouver la liberté et ses amis.
Mise à jour et installation vitale après installation de Xubuntu 20.04
sudo apt update sudo apt upgrade sudo apt install synaptic terminator geany geany-plugins git python3-pip sudo dpkg --add-architecture i386 sudo apt update sudo apt upgrade
Toute la suite est extraite de towardsdatascience.com Faster YOLOv4 Performance with CUDA enabled OpenCV
Installation du driver
- Aller à Pilotes Additionnels: installer le driver 460 (version à confirmer avec cuda 11.3)
Installation de CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt update sudo apt -y install cuda sudo reboot
Finally, finish off by pasting the following in your .bashrc
# CUDA export CUDA=11.3 export PATH=/usr/local/cuda-$CUDA/bin${PATH:+:${PATH}} export CUDA_PATH=/usr/local/cuda-$CUDA export CUDA_HOME=/usr/local/cuda-$CUDA export LIBRARY_PATH=$CUDA_HOME/lib64:$LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/cuda-$CUDA/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH export NVCC=/usr/local/cuda-$CUDA/bin/nvcc export CFLAGS="-I$CUDA_HOME/include $CFLAGS"
Se reconnecter ou
source ~/.bashrc
Compilation de OpenCV avec CUDNN
Désinstaller les versions installées
Dans le système de fichier ou dans .local
sudo pip3 uninstall opencv-python python3.8 -m pip uninstall opencv-python --user
CuDNN
Télécharger CuDNN à developer.nvidia.com cudnn-archive. Les dev sont nécessaires pour une compilation.
Adaptez à la version vous avez téléchargé !
sudo dpkg -i libcudnn8_......+cuda11.3....amd64.deb sudo dpkg -i libcudnn8-dev_8.....+cuda11.3...._amd64.deb
sudo apt install python3-dev python3-pip python3-testresources sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev libfaac-dev libmp3lame-dev libvorbis-dev libopencore-amrnb-dev libopencore-amrwb-dev libgtk-3-dev libtbb-dev libatlas-base-dev gfortran libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo pip3 install numpy mkdir opencvbuild && cd opencvbuild wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.2.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.2.zip unzip opencv.zip unzip opencv_contrib.zip mv opencv-4.5.2 opencv mv opencv_contrib-4.5.2 opencv_contrib cd opencv mkdir build && cd build
Dans la commande qui suit, il faut spécifier CUDA_ARCH_BIN. Le trouver sur en.wikipedia.org CUDA ou à developer.nvidia.com/cuda-gpus
Pour 1060 GTX –> 6.1
Pour GTX 850m –> 5.0
cmake \ -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_C_COMPILER=/usr/bin/gcc \ -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=ON -D WITH_TBB=ON -D WITH_CUDA=ON -D WITH_CUDNN=ON \ -D OPENCV_DNN_CUDA=ON -D CUDA_ARCH_BIN=6.1 -D BUILD_opencv_cudacodec=OFF \ -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 \ -D WITH_V4L=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D WITH_GSTREAMER=ON \ -D WITH_FFMPEG=ON -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_PC_FILE_NAME=opencv4.pc -D OPENCV_ENABLE_NONFREE=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) -D BUILD_EXAMPLES=ON ..
Vérifier dans la sortie terminal que CUDA et CuDNN sont bien ON. Si oui, continuer, sinon inutile de continuer, remonter dans le terminal pour chercher les FAILED. C'est souvent les lib-dev qui manquent !
make -j8 sudo make install # Vérification finale: pkg-config --libs --cflags opencv4
Désinstallation d'une version de CUDA
Supprimer les dossiers cuda.your_version du dossier /usr/local/