我在编译修改后的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/
但是没有成功。还是同样的错误。我该怎么办?
也许更清洁:
sudo update-alternatives --display cuda
sudo update-alternatives --config cuda
更改您的 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
(有正确的安装位置)
多个不同的 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
修改~/.bash_profile来更改CUDA的路径是正确的方法。但是当您更改文件时,您需要
重新启动 bash。
根本source ~/.bash_profile
行不通。因为
source
只会将文件中的内容追加到已经存在的路径上,而不是覆盖它。
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