3

ОК, у меня довольно специфический вопрос по Optimus/CUDA/drivers:

  • Я использую Ubuntu 12.04 на Acer Aspire 5750G. Этот ноутбук оснащен графическим процессором GT540M с поддержкой CUDA, но в нем также есть Optimus, поэтому для его использования мне нужно использовать шмеля

  • Следуя этим инструкциям, я установил более свежие драйверы NVIDIA из ppa:ubuntu-x-swat/x-updates , затем установил шмеля

  • Теперь я могу нормально запускать вещи на GPU (optirun glxspheres работает как положено)

  • Тем не менее, я пытаюсь что-то скомпилировать (OpenCV-2.4.2) с поддержкой времени выполнения CUDA, и я сталкиваюсь с ошибкой компилятора, которая, по-видимому, связана с отсутствием установленных драйверов для разработчиков NVIDIA CUDA

Я хочу знать, возможно ли использовать шмеля в сочетании с драйверами разработчика NVIDIA. Безопасно ли использовать инсталлятор, скачанный со страницы разработчика NVIDIA, или это будет полностью испортить шмеля? Есть ли лучший способ установить драйверы разработчика? Я искал современный PPA, но не смог найти.

1 ответ1

4

Итак, получается, что мне не нужно использовать драйверы разработчика для компиляции OpenCV!

Я каким-то образом испортил свои программные источники, так что я больше не обновлялся из ppa:ubuntu-x-swat/x-updates . Когда я исправил это, я смог обновить драйверы NVIDIA до 304.43 с 295.49 . Я думаю, что это могло быть решающим фактором для компиляции OpenCV, хотя мне также пришлось изменить один make-файл, чтобы он работал.

Если кто-то заинтересован в том же, я в основном следовал инструкциям здесь. Перефразировать:

  • sudo apt-get install следующие зависимости модуля, если у вас их еще нет:

    libopencv-dev build-essential checkinstall cmake pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libv4l-dev

  • Загрузите последнюю версию OpenCV отсюда, а затем:

    tar -xvf OpenCV-<version#>.tar.bz2
    cd OpenCV-<version#>/
    mkdir build
    cd build
    
  • Запустите cmake для настройки файла сборки. Вам нужно будет передать cmake набор параметров, чтобы указать, как вы хотите, чтобы OpenCV был собран. Точные параметры будут зависеть от вашей системы - вы можете получить представление о том, какие параметры доступны, посмотрев на ../CMakeLists.txt . Точная команда, которую я использовал, была:

    cmake -D WITH_QT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=ON BUILD_TESTS=ON  ENABLE_SSE3=ON ENABLE_SSE4.1=ON ENABLE_SSE4.2=ON WITH_CUDA=ON ..
    

    У меня были особые проблемы с его компиляцией с поддержкой времени выполнения CUDA (WITH_CUDA=ON), отсюда и был первоначальный вопрос о драйверах.

  • cmake создаст файл с именем CMakeCache.txt . Я обнаружил, что мне пришлось изменить этот файл, как описано здесь, чтобы избежать ошибки при связывании libcuda.so .

    Найдите строку, которая начинается:

    CUDA_CUDA_LIBRARY:FILEPATH=
    

    И добавьте путь к libcuda.so , в моем случае:

    CUDA_CUDA_LIBRARY:FILEPATH=/usr/lib/nvidia-current/libcuda.so
    
  • Теперь вы сможете запустить make для компиляции (это займет некоторое время ...), затем sudo make install для установки

Я надеюсь, что кто-то найдет это полезным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .