我曾经使用 Cuda 5.5,pycuda 运行良好,但后来我需要升级到 CUDA 6.0。
现在,当我尝试运行示例 PyCuda 程序时,我得到了以下信息:
ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory
我找到了该文件的路径,我是否应该以某种方式链接该库?如果是这样,怎么做?以及在哪里做?
答案1
发生这种情况是因为 LD_LIBRARY_PATH 变量中不存在 lib 的路径。
要将此路径添加到 LD_LIBRARY_PATH 变量,请~/.bashrc
使用以下方式打开文件
gedit ~/.bashrc
并添加以下行。<path_to_your_lib>
用文件路径替换。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>
答案2
解决方案:您需要将 CUDA 库的路径添加到$LD_LIBRARY_PATH
环境变量中。
解释:
执行 CUDA 程序时,需要动态链接到 CUDA 运行时库。默认情况下,这些库位于目录中/usr/local/cuda/lib
。在搜索这些库时,操作系统会在$LD_LIBRARY_PATH
环境变量中指定的目录中查找。如果此处未指定 CUDA 库目录,则程序将失败并出现上述错误。
有两种解决方案(假设您使用 bash shell,这是默认的 CS 部门 shell):
运行以下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
此更改不是持久的,每次登录时都需要重新运行。
编辑
.profile
文件(位于~/.profile
)。找到设置变量的行$LD_LIBRARY_PATH
,它应该类似于以下内容:LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
修改该行以添加 CUDA 库的路径:
LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib:/usr/local/cuda/lib"
编辑文件后,您需要注销并重新登录或运行以下命令:
source ~/.profile
此解决方案具有持久性,并且只需执行一次。