如何更改CUDA版本
How to change CUDA version
我在编译修改后的caffe版本时遇到了这个错误。
OpenCV static library was compiled with CUDA 7.5 support. Please, use the same version or rebuild OpenCV with CUDA 8.0
我有一些旧代码可能与 CUDA8.0 不兼容,所以我想为这个错误更改我的 cuda 版本。
我修改了我的 ~/.bash_profile 这样
# export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-8.0/lib64/
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-7.5/targets/x86_64-linux/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/targets/x86_64-linux/lib/
但是没有用。仍然是同样的错误。我应该怎么办?谢谢
更改您的 CUDA 软件 link 以指向您所需的 CUDA 版本。例如:
ll /usr/local/cuda
lrwxrwxrwx 1 root root 19 Sep 06 2017 /usr/local/cuda -> /usr/local/cuda-8.0/
用
重新link
更新:
如果 symlink 已经存在,请使用其他命令:
[jalal@goku ~]$ ls /usr/local/cuda
lrwxrwxrwx. 1 root root 20 Sep 14 08:03 /usr/local/cuda -> /usr/local/cuda-10.2
[jalal@goku ~]$ sudo ln -sfT /usr/local/cuda/cuda-11.1/ /usr/local/cuda
[jalal@goku ~]$ ls /usr/local/cuda
lrwxrwxrwx. 1 root root 26 Sep 14 13:25 /usr/local/cuda -> /usr/local/cuda/cuda-11.1/
ln -s /usr/local/cuda-7.5 /usr/local/cuda
(安装位置正确)
我终于解决了问题
修改~/.bash_profile将路径改为CUDA才是正确的做法。但是当您更改文件时,您需要重新启动bash。
简单地source ~/.bash_profile
是行不通的。因为source
只会将文件中的内容附加到已经存在的路径上,而不会覆盖它。
可能有点晚了,但我认为它可能对遇到这个问题的任何人都有帮助。我写了一个简单的 bash 脚本,用于在当前 bash 会话 中切换到不同版本的 CUDA :https://github.com/phohenecker/switch-cuda
也许更清洁:
sudo update-alternatives --display cuda
sudo update-alternatives --config cuda
此解决方案解释了如何安装多个不同的 cuda 版本,即 10.2、11.3 和 11.6,并在它们之间切换。它是 @w.t 的扩展,并利用了 update-alternatives
.
Afaik,在 cuda 11.x 之后 Ubuntu 20.04 cuda 安装上的安装将自动添加到 update-alternatives
维护中。
假设您安装了 cuda 10.2、cuda 11.3 和 cuda 11.6(遵循 nvidia 官方安装指南:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)。他们都将居住在:
/usr/local/cuda-10.2/...
/usr/local/cuda-11.3/...
/usr/local/cuda-11.6/...
您的 update-alternatives
将有两个条目:
$ sudo update-alternatives --query cuda
...
/usr/local/cuda-11-3 - priority 113
/usr/local/cuda-11-6 - priority 116
解决方案 1:如果您想使用 update-alternatives
,请确保您的 cuda symbolic link 指向 /etc/alternatives/cuda
.
# Change the symbolic link target.
$ sudo ln -sfT /etc/alternatives/cuda /usr/local/cuda
# Check the path.
$ ll /usr/local/cuda
lrwxrwrwrwx 1 root root /usr/local/cuda -> /etc/alternatives/cuda/
现在,剩下的就是确保 /etc/alternatives/cuda
指向您要使用的版本,例如11.3.
您可以通过以下方式进行更新:
$ sudo update-alternatives --config cuda
并按照说明更改版本。
检查路径:
$ ll /etc/alternatives/cuda
lrwrwrwrwx root root /etc/alternatives -> /usr/local/cuda-11.3
快完成了。
并始终确保在 ~/.bashrc
中加载正确的库 PATHs
。
方案二:
直接将您的 /usr/local/cuda
符号 link 设置为正确的版本。
$ ln -sfT /usr/local/cuda-11.3 /usr/local/cuda
重新启动您的机器并仔细检查所有设置是否正确:
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May3 19:15:14_PDT_2021
Cuda compilation tools, release 11.3 V11.3.109
Build cuda 11.3.r11.3/compiler.29920130_0
我在编译修改后的caffe版本时遇到了这个错误。
OpenCV static library was compiled with CUDA 7.5 support. Please, use the same version or rebuild OpenCV with CUDA 8.0
我有一些旧代码可能与 CUDA8.0 不兼容,所以我想为这个错误更改我的 cuda 版本。
我修改了我的 ~/.bash_profile 这样
# export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-8.0/lib64/
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export PYTHONPATH=$PYTHONPATH:/usr/local/cuda-7.5/targets/x86_64-linux/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/targets/x86_64-linux/lib/
但是没有用。仍然是同样的错误。我应该怎么办?谢谢
更改您的 CUDA 软件 link 以指向您所需的 CUDA 版本。例如:
ll /usr/local/cuda lrwxrwxrwx 1 root root 19 Sep 06 2017 /usr/local/cuda -> /usr/local/cuda-8.0/
用
重新link更新: 如果 symlink 已经存在,请使用其他命令:
[jalal@goku ~]$ ls /usr/local/cuda
lrwxrwxrwx. 1 root root 20 Sep 14 08:03 /usr/local/cuda -> /usr/local/cuda-10.2
[jalal@goku ~]$ sudo ln -sfT /usr/local/cuda/cuda-11.1/ /usr/local/cuda
[jalal@goku ~]$ ls /usr/local/cuda
lrwxrwxrwx. 1 root root 26 Sep 14 13:25 /usr/local/cuda -> /usr/local/cuda/cuda-11.1/
ln -s /usr/local/cuda-7.5 /usr/local/cuda
(安装位置正确)
我终于解决了问题
修改~/.bash_profile将路径改为CUDA才是正确的做法。但是当您更改文件时,您需要重新启动bash。
简单地source ~/.bash_profile
是行不通的。因为source
只会将文件中的内容附加到已经存在的路径上,而不会覆盖它。
可能有点晚了,但我认为它可能对遇到这个问题的任何人都有帮助。我写了一个简单的 bash 脚本,用于在当前 bash 会话 中切换到不同版本的 CUDA :https://github.com/phohenecker/switch-cuda
也许更清洁:
sudo update-alternatives --display cuda
sudo update-alternatives --config cuda
此解决方案解释了如何安装多个不同的 cuda 版本,即 10.2、11.3 和 11.6,并在它们之间切换。它是 @w.t 的扩展,并利用了 update-alternatives
.
Afaik,在 cuda 11.x 之后 Ubuntu 20.04 cuda 安装上的安装将自动添加到 update-alternatives
维护中。
假设您安装了 cuda 10.2、cuda 11.3 和 cuda 11.6(遵循 nvidia 官方安装指南:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)。他们都将居住在:
/usr/local/cuda-10.2/...
/usr/local/cuda-11.3/...
/usr/local/cuda-11.6/...
您的 update-alternatives
将有两个条目:
$ sudo update-alternatives --query cuda
...
/usr/local/cuda-11-3 - priority 113
/usr/local/cuda-11-6 - priority 116
解决方案 1:如果您想使用 update-alternatives
,请确保您的 cuda symbolic link 指向 /etc/alternatives/cuda
.
# Change the symbolic link target.
$ sudo ln -sfT /etc/alternatives/cuda /usr/local/cuda
# Check the path.
$ ll /usr/local/cuda
lrwxrwrwrwx 1 root root /usr/local/cuda -> /etc/alternatives/cuda/
现在,剩下的就是确保 /etc/alternatives/cuda
指向您要使用的版本,例如11.3.
您可以通过以下方式进行更新:
$ sudo update-alternatives --config cuda
并按照说明更改版本。
检查路径:
$ ll /etc/alternatives/cuda
lrwrwrwrwx root root /etc/alternatives -> /usr/local/cuda-11.3
快完成了。
并始终确保在 ~/.bashrc
中加载正确的库 PATHs
。
方案二:
直接将您的 /usr/local/cuda
符号 link 设置为正确的版本。
$ ln -sfT /usr/local/cuda-11.3 /usr/local/cuda
重新启动您的机器并仔细检查所有设置是否正确:
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May3 19:15:14_PDT_2021
Cuda compilation tools, release 11.3 V11.3.109
Build cuda 11.3.r11.3/compiler.29920130_0