如何更改CUDA版本

问题描述 投票:0回答:6

我在编译修改后的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/

但是没有成功。还是同样的错误。我该怎么办?

opencv cuda caffe
6个回答
38
投票

也许更清洁:

sudo update-alternatives --display cuda

sudo update-alternatives --config cuda

30
投票

更改您的 CUDA 软链接以指向您所需的 CUDA 版本。例如:

ll /usr/local/cuda lrwxrwxrwx 1 root root 19 Sep 06 2017 /usr/local/cuda -> /usr/local/cuda-8.0/

只需将其重新链接到

更新: 如果符号链接已经存在,请使用另一个命令:

[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

(有正确的安装位置)


15
投票

也许有点晚了,但我认为这对遇到这个问题的人仍然有帮助。我编写了一个简单的 bash 脚本,用于在当前 bash 会话中切换到不同版本的 CUDA https://github.com/phhenecker/switch-cuda


12
投票
此解决方案解释了如何安装

多个不同的 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 
符号链接 指向 /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
快完成了。

并始终确保在您的PATHs

中加载正确的库
~/.bashrc

解决方案2: 直接将您的 /usr/local/cuda

 符号链接设置为正确的版本。

$ 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
    

2
投票
我终于解决了这个问题。

修改~/.bash_profile来更改CUDA的路径是正确的方法。但是当您更改文件时,您需要

重新启动 bash

根本

source ~/.bash_profile

行不通。因为 
source
 只会将文件中的内容追加到已经存在的路径上,而不是覆盖它。


0
投票
使用康达。您可以使用 conda 环境管理特定版本的 cuda 和 cudnn。例如

conda create -n tf2.10 python=3.8 conda activate tf2.10 conda install cudatoolkit=11.2 cudnn=8.1 -c conda-forge
并使用 nvcc --version 验证安装。

nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Wed_Aug_14_10:26:51_Pacific_Daylight_Time_2024 Cuda compilation tools, release 12.6, V12.6.68 Build cuda_12.6.r12.6/compiler.34714021_0
    
© www.soinside.com 2019 - 2024. All rights reserved.