我是初学者并在ubuntu 11.10上安装pycuda2011.2.2,但无法完成它 . Cuda是4.0 .
我已经安装了库:
$ sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y
像这样调用configure.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
但是,当我这样做时:
.....@ubuntu:~/pycuda-2011.2.2$ make -j 4
我收到此错误:
/ usr / bin / ld:找不到-lcuda / usr / bin / ld:在搜索-lcurand时跳过不兼容的/usr/local/cuda/lib/libcurand.so
为什么这个错误?
谢谢 .
2 回答
您需要设置
LDFLAGS
环境变量,以便pycuda设置可以找到libcuda.so
,它在ubuntu系统上位于非标准位置(/usr/lib/nvidia-current
) .pycuda 2012.1的安装完全基于distutils,不涉及
Makefile
. 您可以通过运行./configure.py
并使用相应的选项LDFLAGS=/usr/lib/nvidia-current python setup.py install
来安装pycuda .如果您使用nvidia卡的一些较新的驱动程序,如nvidia-313(这就是我使用的),那么文件libcuda.so(昵称为lcuda,我不知道为什么)可能不在cuda安装目录中(默认情况下,它是/ usr / lib / cuda) . 相反,您可能必须自己找到它 . 做:
$ find /usr/lib/*/libcuda.so
对我来说,结果是
/usr/lib/nvidia-313-updates/libcuda.so
所以,在安装pycuda时,我这样做:
$ python configure.py --cuda-root = / usr / lib / nvidia-313-updates
$ make
$ sudo make install
然后,
$ optirun python test / test_driver.py
要么
$ optirun python some_program_which_imports_pycuda.py
应该工作正常 .