【问题标题】:pycuda installation error on ubuntu: /usr/bin/ld: cannot find -lcudaubuntu 上的 pycuda 安装错误:/usr/bin/ld: 找不到 -lcuda
【发布时间】:2012-05-20 03:50:15
【问题描述】:
我是初学者并在 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: 搜索时跳过不兼容的 /usr/local/cuda/lib/libcurand.so
对于 -lcurand
为什么会出现这个错误?
谢谢。
【问题讨论】:
标签:
ubuntu
installation
pycuda
【解决方案1】:
如果你为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
$ 制作
$ sudo make install
那么,
$ optirun python test/test_driver.py
或
$ optirun python some_program_which_imports_pycuda.py
应该可以正常工作。
【解决方案2】:
您需要设置LDFLAGS 环境变量,以便pycuda 安装程序可以找到libcuda.so,它在ubuntu 系统上位于非标准位置(/usr/lib/nvidia-current)。
pycuda 2012.1 的安装完全基于 distutils,不涉及 Makefile。您可以通过运行./configure.py 来安装pycuda,并使用适当的选项,然后是LDFLAGS=/usr/lib/nvidia-current python setup.py install。