CUDA driver version is insufficient for CUDA runtime version 就是CUDA的驱动程序版本跟CUDA的运行时版本不匹配!这是任何一个初学Deep Learning的菜鸟都可能会遇到的问题。
通常我们在使用Anaconda这类IDE的时候都会直接conda install tensorflow-gpu(安装tensorflow的gpu版本,直接安装好cudnn),但这种安装方式通常不会去分析你当前的gpu版本(至少我感觉是这样,否则也不会遇到这样的问题),结果自动安装的cudatoolkit 和cudnn的版本很有可能和你当前的nvidia gpu版本不匹配,然后程序就报了错误(忘记截图了):CUDA driver version is insufficient for CUDA runtime version。
查看cudatoolkit 和cudnn的版本 conda list
我当前的cudatoolkit版本为10.1.168, cudnn版本为7.6.0,gpu版本为410.78(多种方式查看),这种情况下,通常有两种解决方式,
1.把cuda和tensorflow-gpu降级成下属版本即可;
2.升级nvidia driver 至和 cudatoolkit匹配的版本
具体nvidia driver匹配哪个版本 cudatoolkit 可以在nvidia官网查到https://www.nvidia.com/Download/Find.aspx?lang=en-us,这里我更倾向于第2种方式,升级1个比降两个更容易嘛,所以去官网查看对应显卡的当前版本号,我的gpu driver version为418.88,下载下来后chmod +x执行,但这个时候通常你会遇到另外一个问题,“An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel”,这个问题主要原因是你安装的驱动和当前驱动会产生“冲突”,可以具体查看install log信息,一种比较靠谱的解决方式是删除当前驱动后重新安装,具体过程如下:
1.删除当前驱动程序: sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
2.停止当前的GUI界面(其实可以不用),停止 lightdm: sudo service lightdm stop
3.现在你可以继续安装驱动程序,在你的情况下,你将不得不运行以下操作:sudo ./NVIDIA-Linux-x86_64-418.88.run。
注意:你需要确保选择/同意创建符号链接的选项。
安装完成后,重新启动你的计算机: sudo reboot
一路安装下来后,如果提示你驱动程序安装成功(查看对应版本号)就基本可以解决cuda驱动和cuda运行时版本不一致的问题了。