cuda的卸载方法网上都有很多,这些方法大同小异,几乎都是错的,我在卸载cuda时基本试了个遍,各种踩坑。
能查到的方法一般都是从官方文档搬过来的,然而这种使用apt-get --purge remove
命令的方法并不能将cuda完全卸掉。
卸载的实现方法
那么如何正确、完全的卸载cuda呢?
其实cuda安装时就已经准备好了卸载的接口,卸载程序在/usr/local/cuda-xx.x/bin下,需要注意的是cuda10.0及之前的版本卸载程序名为uninstall_cuda_xx.x.pl,而cuda10.1及之后的版本卸载程序名为cuda-uninstaller。
找到之后运行卸载程序即可,这里的xx.x表示自己的cuda版本。
在命令行中卸载
注意把下边的xx.x替换为自己的cuda版本。
cuda10.0及以下的卸载:
cd /usr/local/cuda-xx.x/bin/
sudo ./uninstall_cuda_xx.x.pl
sudo rm -rf /usr/local/cuda-xx.x
cuda10.1及以上的卸载:
cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x
最后边加了一句sudo rm -rf /usr/local/cuda-xx.x,这是因为一般情况下cuda都配置了cudnn,在运行卸载程序时只会卸载cuda而不会一并删除cudnn的文件。因为cudnn文件还在的缘故,自己的cuda-xx.x文件夹仍然在,需要手动删除。
所以如果自己要卸载的cuda没有配置cudnn,那么cuda-xx.x文件夹在卸载完成后会被自动删除,也就没必要再运行最后一句了。
卸载前请把环境删除 vim ~/.bashrc sudo vi ~/.bashrc
查看cuda的安装位置
whereis cuda
查看已安装的CUDA的版本
cat /usr/local/cuda/version.txt
查看已安装的CUDNN的版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
当找不到的时候卸载多次失败
先查询
sudo dpkg -l | grep cuda
使用命令卸载cuda及cudnn包
sudo dpkg -P 包名
途可能会出现依赖包的问题卸载失败按顺序卸载就行 在查询在卸载
卸载驱动
仅卸载nvidia-cuda-toolkit
sudo apt-get remove nvidia-cuda-toolkit
卸载nvidia-cuda-toolkit及其依赖项
sudo apt-get remove --auto-remove nvidia-cuda-toolkit
清除配置/数据
sudo apt-get purge nvidia-cuda-toolkit
要么 sudo apt-get purge --auto-remove nvidia-cuda-toolkit
此外,删除/opt/cuda
和~/NVIDIA_GPU_Computing_SDK
文件夹(如果存在)。并删除文件的export PATH=$PATH:/opt/cuda/bin
和export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cuda/lib:/opt/cuda/lib64
行~/.bash_profile
查看安装的nvidia模块命令
rpm -qa|grep -i nvid|sort
删除相关模块
yum remove kmod-nvidia-*
完全卸载nvidia驱动
yum remove "*nvidia*"
完全卸载CUDA TOOLKIT
yum remove "*cublas*" "cuda*"
在卸除驱动后一定记得重启
sudo reboot
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/jwrl/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/home/jwrl/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/jwrl/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/home/jwrl/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
export PATH="/home/jwrl/anaconda3/bin:$PATH"
alias python3=python3.6
#cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
我的配置文件是这样的