当前位置: 代码迷 >> CUDA >> CUDA函数库调用有关问题解决
  详细解决方案

CUDA函数库调用有关问题解决

热度:1116   发布时间:2016-04-29 10:45:10.0
CUDA函数库调用问题解决

问题:

装好CUDA5.5, samples也安装成功,编译也成功了,但是在运行程序的时候出问题了。

譬如进入NVIDIA_CUDA-5.5_Samples/7_CUDALibraries/ 目录中,执行 ./conjugateGradientPrecond 

结果报错了,居然报错了:

./conjugateGradientPrecond: error while loading shared libraries: libcublas.so.5.5: cannot open shared object file: No such file or directory

解决:

首先找到libcublas.so.5.5  这个文件在哪里,在我的系统Ubuntu12.04,文件在  /usr/local/cuda-5.5/lib64/ 目录下。

然后 sudo vim /etc/ld.so.conf.d/cuda_lib.conf

在文档里添加目录 /usr/local/cuda-5.5/lib64/   

写完后,然后 sudo ldconfig.  

记住一定要用sudo,除非你在root下。

解释:

程序在编译的时候需要library,在执行的时候更需要library.   LD_LIBRARY_PATH是编译时bash shell可以设定的环境变数,

但是程序在运行时,不一定会读取到这个变数,所以就要设定/etc/ld.so.conf.

但是通常我们会把费系统预设安装的函数库放在/etc/ld.so.conf里面,也就是说,今天cuda5.5的library的真实路径是

  /usr/local/cuda-5.5/libXX

这个路径放在ld.conf可以读取到的地方。一般系统管理员的习惯会在ld.so.conf.d这个目录下再新增一个档案。档案名称就是XXX.conf

然后把library的path加入到这个档案里面,然后再ldconfig,系统就会重新设定。