多cuda版本并存
修改cuda软链接切换版本
在Linux中,/usr/local/
目录通常用于存放手动安装的软件。对于CUDA来说,它可能包括cuda
这个软链接(快捷方式)来指向具体的CUDA安装目录。如果你想修改这个软链接指向的文件,你可以使用ln
命令来重新创建这个软链接。
首先,你需要知道新的CUDA安装目录的路径。假设新的CUDA安装目录是/usr/local/cuda-11.2
(这只是一个例子,实际的路径可能会不同)。
然后,你可以使用以下命令来删除旧的软链接并创建一个新的软链接:
sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda
这里,rm
命令用于删除旧的软链接,ln -s
命令用于创建一个新的软链接。-s
选项告诉ln
命令创建一个符号链接(也就是软链接)。
请注意,使用sudo
是因为/usr/local/
目录通常需要管理员权限才能修改。
另外,修改CUDA软链接后,你可能还需要更新你的环境变量,以确保系统可以找到正确的CUDA路径。这通常涉及到编辑~/.bashrc
、~/.bash_profile
或/etc/profile
文件,并在其中添加或更新以下行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后,你需要运行source ~/.bashrc
(或你编辑的相应文件)来使更改生效。
Linux环境变量配置方法一:export PATH
使用export
命令直接修改PATH
的值。
例如,配置MySQL进入环境变量的方法:
export PATH=/home/uusama/mysql/bin:$PATH
# 或者把PATH放在前面
export PATH=$PATH:/home/uusama/mysql/bin
注意事项:
- 生效时间:立即生效
- 生效期限:当前终端有效,窗口关闭后无效
- 生效范围:仅对当前用户有效
- 配置的环境变量中不要忘了加上原来的配置,即
$PATH
部分,避免覆盖原来配置【具体表现为,把原来的PATH看作一个目录,与新增加的环境变量用冒号 : 隔开;原来的PATH看作一个目录($PATH),与新增加的环境变量用冒号 : 隔开;原来的PATH看作一个目录,与新增加的环境变量用冒号:隔开;原来的PATH可以放在前面,也可以放在后面】
Linux环境变量配置方法二:vim ~/.bashrc
通过修改用户目录下的~/.bashrc
文件进行配置:
vim ~/.bashrc
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin
注意事项:
- 生效时间:使用相同的用户打开新的终端时生效,或者手动
source ~/.bashrc
生效 - 生效期限:永久有效
- 生效范围:仅对当前用户有效
- 如果有后续的环境变量加载文件覆盖了
PATH
定义,则可能不生效
安装cudnn
windows
CUDA需要配合cudnn才能正常工作,将cudnn的四个文件(夹),复制到CUDA的安装路径即可,即CUDA文件夹。
往系统环境变量中的 path 添加如下路径(根据自己的路径进行修改)
C:\Program Files\NVIDIA\CUDA\bin
C:\Program Files\NVIDIA\CUDA\include
C:\Program Files\NVIDIA\CUDA\lib
C:\Program Files\NVIDIA\CUDA\libnvvp
检验:
配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe
和 bandwidthTest.exe
:
首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite
,然后分别执行.\bandwidthTest.exe
和.\deviceQuery.exe
,应该得到下图.
cd C:\Program Files\NVIDIA\CUDA\extras\demo_suite
.\bandwidthTest.exe
.\deviceQuery.exe
linux
sudo apt-get install zlib1g
打开下载链接,选择相应的版本并下载。选择方法可参考链接,,建议直接选择cuDNN Library for Linux (x86_64)
进入cudnn压缩包所在的文件夹,解压文件
tar -xvf [$文件名]
将文件拷贝到相应cuda目录下
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
查看cudnn版本
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
出现如下的信息,则为配置成功
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */
cuda卸载
linux
详见链接与链接
如果需要换不同的版本,建议多版本并存,这里先不涉及,如果要彻底卸载,根据以下操作
权限不够前面加sudo,我这里用root进行安装
方案一
- 准备删除cuda
apt-get remove cuda
- 自动卸载
apt autoremove
- 删除其它的cuda
`apt autoremove cuda* - 删除下载安装包(也可以不删除)
rm /usr/local/my_cuda/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb
- 查找包相关
dpkg -l |grep cuda
- 手动删除相关的包。否则再安装别的版本会失败
dpkg -P cuda-repo-ubuntu2204-12-1-local cuda-toolkit-12-1-config-common cuda-toolkit-12-config-common cuda-toolkit-config-common cuda-visual-tools-12-1
名字使用第5步中的
方案二
进入下面这个目录:
cd /usr/local/cuda-10.0/bin
在这个目录中,可以找到卸载程序,名为:uninstall_cuda_10.0.pl
这里需要注意,如果版本大于10.0,则卸载程序的名字为:cuda-uninstaller
执行卸载命令:
# version <= 10.0
sudo ./uninstall_cuda_10.0.pl # 10.0可替换为自己的版本号
# version > 10.0
sudo ./cuda-uninstaller
如果完成卸载后,当前目录(/usr/local/cuda-10.0)没有被删除,则证明还存在当时安装cuDNN时留下的文件
删除cuDNN(若没有安装Cudnn,可忽略此步骤):
sudo rm -rf /usr/local/cuda-10.0 # 10.0可替换为自己的版本号
综上,就彻底删掉了Cuda相关的文件
windows
- 进入控制面板,将如下所示打勾的NVIDIA GeForce Experience,NVIDIA PhysX 系统软件,NVIDIA 图形驱动程序的保留,其他的NVIDIA标识全部双击卸载。
- 然后打开杀毒软件进行垃圾清理,将注册表删除即可;或者WIN+R 输入regedit,点击确定进入注册表编辑器,然后打开
HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
文件夹删掉NVIDIA的注册表。