Cuda 6.0/PyCuda。‘导入错误’

Cuda 6.0/PyCuda。‘导入错误’

我曾经使用 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):

  1. 运行以下命令:

     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
    

    此更改不是持久的,每次登录时都需要重新运行。

  2. 编辑.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
    

此解决方案具有持久性,并且只需执行一次。

来源

相关内容