我是初学者并在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 - 免 - 加强线程LIBNAME = boost_thread-MT
但是,当我这样做时:
.....@ubuntu:~/pycuda-2011.2.2$ make -j 4
我收到此错误:
/ usr / bin / ld:找不到-lcuda
/ usr / bin / ld:在搜索时跳过不兼容的/usr/local/cuda/lib/libcurand.so for -lcurand
为什么会出现这个错误?
感谢。
答案 0 :(得分:1)
您需要设置LDFLAGS
环境变量,以便 pycuda 设置可以找到libcuda.so
,这在ubuntu系统上位于非标准位置({{1 }})。
pycuda 2012.1 的安装完全基于distutils,不涉及/usr/lib/nvidia-current
。您可以使用相应的选项Makefile
运行./configure.py
来安装 pycuda 。
答案 1 :(得分:0)
如果您使用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
应该可以正常工作。