Skip to content

cuda_opencv

Moscowsky Anton edited this page Jan 16, 2021 · 2 revisions

Сборка пакета с поддержкой CUDA

Данный раздел не являеся полным и структурированным! Содержит некие мои записи по данной теме.

Установка CUDA и cuDNN

Я пользовался гайдом - https://medium.com/analytics-vidhya/installing-tensorflow-with-cuda-cudnn-gpu-support-on-ubuntu-20-04-f6f67745750a

В моменте где копируется .h файл cuDNN надо копировать все файлы.

Конфигурация OpenCV

Есть проблема, что разные версии OpenCV работают с разными версиями cuDNN. Для моей cuDNN (8.0.5) OpenCV 4.2.0 никак не вставала, получилось с версией 4.4.0. Никакой таблицы соотвествий версий я не нашел.

В итоге конфигурировал я такой командой. Тут надо следить за путями и версиями CUDA и cuDNN, а значение для CUDA_ARCH_BIN брать с сайта нвидия для вашей конкретной карты https://developer.nvidia.com/cuda-gpus

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D OPENCV_EXTRA_MODULES_PATH=~/Libs/opencv_contrib/modules -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=6.1 -D WITH_CUBLAS=1 -D BUILD_EXAMPLES=ON  -D CUDNN_INCLUDE_DIR=/usr/lib/cuda/include -D CUDNN_LIBRARY=/usr/lib/cuda/lib64/libcudnn_static.a -D CUDNN_VERSION=8.0.5 -DCMAKE_C_COMPILER=/usr/bin/gcc-8 ..

У меня возникала ошибка,что cuDNN хочет версию gcc не выше 8ой, для этого надо сделать симулинк

sudo ln -s /usr/bin/gcc-8 /usr/local/cuda/bin/gcc

Далее была проблема с сборкой каких то частей cuDNN, помогло это решение https://github.com/opencv/opencv/issues/18082

Clone this wiki locally