输入nvidia-smi显示
NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
但是torch.cuda.is_available()还能用,这就有些别扭了
出现这个问题一般是由于kernel mod 的 Nvidia driver 的版本没有更新
(不是人为因素)
解决办法:
一,重启机器(如果有足够权限的话,直接重启就能解决,下文跳过)
二,如果权限不够,不能重启的话,那就用命令reload kernel mod
(1). 查看依赖(看看就行)
lsmod | grep -i nvidia
一般出现下面这些显示
(2). 删除一些模块
sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
没有消息就是好消息
(3).移除nvidia模块(一般会报错)
sudo rmmod nvidia
lsmod | grep nvidia
这里的15就说明有进程使用nvidia了,那么不怕被打的话,可以kill该进程
查看有什么进程占用了
sudo lsof -n -w /dev/nvidia*
kill该进程
sudo kill 1709
然后发现nvidia的占用由15变成0,那就是好消息
接下来
sudo rmmod nvidia
没有报错就算成功
(4).最后一步
sudo nvidia-smi
就会出现
即为成功