Я устанавливаю pycuda2011.2.2 в Ubuntu 11.10, но не могу его завершить. Когда я делаю pycuda-2011.2.2 $ make -j 4
, я получаю эту ошибку:
/usr/bin/ld: cannot find -lboost_python-mt ,
/usr/bin/ld: cannot find -lcuda
Я также получил 1 точное совпадение задачи в поиске и решении Google:
$ sudo ln -s /usr/lib/libboost_python-mt-py26 /usr/lib/libboost_python-mt
Но booooom, моя проблема не исчезает.
Меня удивляет, почему в поиске Google нет релевантных результатов, как будто только у меня есть эта проблема. Что случилось ? Любая помощь приветствуется.
Спасибо,
Илия говорит о исправлении -lcuda
. Вы также можете добавить местоположение вашего каталога cuda lib в LD_LIBRARY_PATH
.
Что касается проблемы libboost-python
, повторите команду ./configure
из общих инструкций pycuda и замените --boost-python-libname=boost_python-mt
на --boost-python-libname=boost_python-mt-py26
.
Похоже, вам не хватает двух библиотек, которые нужно установить в первую очередь.
Это предусмотрено в libboost-python
и ``. Или, как сказано в в этих инструкциях , для установки этого и некоторых других предварительных условий (которые вы можете иметь или не иметь, основываясь на своих сообщениях об ошибках), выполните:
sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y
( Я бы не советовал следовать всем инструкциям на этой странице до письма от начала до конца, так как они написаны не с Ubuntu 11.10 и вам не нужны, и, вероятно, не Если вы хотите настроить вашу систему на использование более старого компилятора, чем он официально предоставлен.)
Если вы уже загрузили CUDA с веб-сайта Nvidia и установили его, то вы просто необходимо указать где:
./configure.py --cuda-root=/where/ever/you/installed/cuda
(подробности см. на странице общих инструкций pycuda .)
Перед этим вы можете захотеть либо начните заново, либо запустите make distclean
(или make clean
, если make distclean
не распознан).
Если вы еще не загрузили и не установили CUDA, вы можете сделать это на веб-сайте Nvidia. В частности, на этой странице найдите 32-битную или 64-битную версию инструментария CUDA для Ubuntu 11.04 (это ближайшая к вашей системе система, которая доступна и, вероятно, будет работать). Если вы не уверены, установлена ли у вас 32-битная или 64-битная версия Ubuntu, запустите uname -m
. Если написано x86_64
, у вас есть 64-битная версия; в противном случае у вас есть 32-битная версия. Также возьмите драйверы разработки и SDK.
Быстрые ссылки (32-разрядные): Инструментарий Драйверы SDK
Быстрые ссылки (64-разрядные): Инструментарий Драйверы SDK
Решение эльзирака работало лучше для меня. В целом, рабочий процесс установки, который работал для меня в Ubuntu 12.04, выглядит следующим образом:
Убедитесь, что система по умолчанию использует python 2.7.x:
python --version
(должно быть Python 2.7.x)
Устранить старые драйверы Nvidia и установить необходимые условия для CUDA 5.5:
sudo apt-get remove --purge nvidia*
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
Установить CUDA 5.5:
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1204/x86_64/cuda-repo-ubuntu1204_5.5-0_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1204_5.5-0_amd64.deb
sudo apt-get update
sudo apt-get install cuda
Обновить переменные среды CUDA 5.5:
sudo echo "/usr/local/cuda-5.0/lib64" > /etc/ld.so.conf.d/cuda-5-5.conf
Используйте текстовый редактор, чтобы добавить :/usr/local/cuda-5.5/bin
в конец строки PATH в /etc/environment
Скачать pycuda:
wget https://pypi.python.org/packages/source/p/pycuda/pycuda-2013.1.1.tar.gz
Распаковать:
tar xvzf pycuda-2013.1.1.tar.gz
[ 1119] Установка:
cd pycuda-2013.1.1
rm siteconf.py
./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-mt-py27 --boost-thread-libname=boost_thread-mt --no-use-shipped-boost
sudo make install
Проверка установки Pycuda:
cd test
python test_driver.py
Я тоже столкнулся с этой проблемой, но на Ubuntu 12.04. У меня было решение, похожее на ответ Макса Беккета, но вместо замены --boost-python-libname=boost_python-mt
на --boost-python-libname=boost_python-mt-py26
оно было --boost-python-libname=boost_python-mt-py27
(обратите внимание, что «26» изменилось на «27» в зависимости от имеющейся у вас версии наддува)
Проверьте, какое усиление у вас есть:
ls /usr/lib/libboost_python*
Это было изменено в вызове на ./configure
при совершении последнего вызова:
./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-mt-py27 --boost-thread-libname=boost_thread-mt --no-use-shipped-boost
Если вы уже запустили ./configure
, вы нужно будет удалить ./siteconf.py
проблема решена. Я нашел ответ в этой теме: http://forums.nvidia.com/index.php?showtopic=224718&st=0#entry1413660