Outils pour utilisateurs

Outils du site


compilation_de_oepncv_avec_cuda_sur_ubuntu

Ceci est une ancienne révision du document !


Installation de CUDA et Compilation de OpenCV avec CUDA

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/

compilation_de_oepncv_avec_cuda_sur_ubuntu.1639473362.txt.gz · Dernière modification : 2021/12/14 09:16 de serge