ubuntu - 编译 CUDA 查找错误的 CUDA 版本

标签 ubuntu compilation cuda gpu nvidia

在 Ubuntu 上,我之前安装了 CUDA 6.5,并想升级到 CUDA 7.0。因此,我删除了/usr/local/cuda-6.5 的目录,并将 CUDA 7.0 安装到/usr/local/cuda-7.0 中。然后我将/usr/local/cuda 的符号链接(symbolic link)更改为指向/usr/local/cuda-7.0。在我的 bash.rc 文件中,我还相应地更新了环境变量:

export CUDA_HOME=/usr/local/cuda-7.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

如果我输入“nvcc --version”,那么我会按预期得到以下内容:
Cuda compilation tools, release 7.0, V7.0.27

但是,我现在正在编译一些使用 CUDA 的代码(准确地说是 Caffe 深度学习库),我收到以下错误消息:
error while loading shared libraries: libcudart.so.6.5: cannot open shared object file: No such file or directory

所以出于某种原因,它仍在寻找 CUDA 6.5 库,而不是 CUDA 7.0 库。为什么是这样?如何告诉编译器查找 7.0 库?我在正在编译的源代码中找不到对 libcudart.so.6.5 的任何引用,因此 CUDA 编译器本身正在寻找错误的版本。

最佳答案

显然,您没有遵循正确的卸载方法;请注意,如果您安装不同的工具包版本,它们之间不会有任何冲突,您可以同时保留它们。在安装过程中,系统会要求您将/usr/local/cuda-x.y 链接到/usr/local/cuda。查看 CUDA 7.0 GETTING STARTED ON LINUX 的第 2.6 节.

如上链接所述,正确的卸载方法是使用以下命令,具体取决于您的安装方式(即 运行 方法或 rpm 方法):

$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
Use the following command to uninstall a Driver runfile installation:
$ sudo /usr/bin/nvidia-uninstall
Use the following commands to uninstall a RPM/Deb installation:
$ sudo apt-get --purge remove <package_name> # Ubuntu
$ sudo yum remove <package_name> # Fedora/Redhat/CentOS
$ sudo zypper remove <package_name> # OpenSUSE/SLES

我希望这个对你有用;我不知道 Caffe 深度学习 库,但我假设您之前没有通过提供 cuda 6.5 编译器及其库的 PATH 来配置它。如果是这种情况,首先尝试正确卸载之前的cuda 6.5,从头开始配置库,然后进行制作。

关于ubuntu - 编译 CUDA 查找错误的 CUDA 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294255/

相关文章:

c++11 - SFINAE 模板的 CUDA 10.1 编译错误

cuda - 如何在 CUDA 中使用二进制文件创建程序?

c++ - 如何交叉编译成ARM9板子?

c - 像 gcc 这样的 C 编译器是否足够智能,可以进行位移位?

android - 当我尝试在 UBUNTU 14.04 上的 Android Studio 中使用 Gradle 进行编译时,不断出现此错误

找不到-lpthread

c++ - 最小 GCC C++ 编译器

c - 如何在 Windows 上使用 CUDA 5 和 Glib 正确编译 64 位 C 应用程序?

ubuntu - 验证在 Docker 容器中运行的 ubuntu 版本

ubuntu - 如何在 Ubuntu 上彻底删除 Exim4 邮件服务器