CUDA driver version is insufficient for CUDA runtime version

测试GPU是否能用于训练网络,测试代码见官网:

https://databricks.com/tensorflow/using-a-gpu

运行报错:CUDA driver version is insufficient for CUDA runtime version

翻译过来就是CUDA的驱动版本和CUDA的运行时版本不匹配。

1、CUDA的驱动版本查看命令

nvidia-smi

CUDA driver version is insufficient for CUDA runtime version_第1张图片
CUDA驱动版本查看

可以看到我电脑装的CUDA驱动版本是396.37

2、CUDA运行时版本查看命令

coda list(如果你是用anaconda安装的python环境就用coda list,否则用pip list就可以查看所有安装包)

CUDA运行时版本查看

可以看到我电脑装的CUDA运行时版本是10.0

3、CUDA驱动和CUDA运行时版本对应关系

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

CUDA driver version is insufficient for CUDA runtime version_第2张图片
CUDA驱动与运行时版本对应关系

可以看到运行时的本机的驱动版本396.37只能匹配运行时的9.2版本,但anaconda(我在安装keras时用的命令是:conda install keras-gpu,默认安装了conda的运行时最新版本10.0)默认安装了10.0,运行时版本过高了,不支持。

4、解决办法

版本不匹配,要不就是改驱动版本,要不就是改运行时版本,但驱动安装太麻烦啦,所以还是改运行时版本比较方便呢。

所以根据版本对应表,我们应该安装运行时9.2版本。

A、首先卸载python中安装cudatoolkit和cudnn程序包

conda uninstall cudnn 或 (pip uninstall cudnn)

conda uninstall cudatoolkit 或( pip uninstall cudatoolkit)

B、然后再安装对应版本的cudatoolkit和cudnn程序包

conda install cudatoolkit=9.2 或(pip install cudatoolkit=9.2)

conda install cudnn 或(pip install cudnn)

C、再安装tensorflow和karas

再卸载CUDA运行时程序包的时候,发现keras-gpu也被卸载了,只剩下base版本了,所以安装完对应版本的CDUA之后,再安装一次keras-gpu,由于本机已经安装了cuda了,所以这次不会再安装最新版本了。

执行命令:conda install keras-gpu

CUDA driver version is insufficient for CUDA runtime version_第3张图片
卸载CUDA时keras-gpu也被卸载了

运行测试程序,结果中有如下输出,则代表正常

测试GPU是否正常被使用

5、出现这种情况的原因

python中安装tensorflow的gpu版本时,pip会检查tensorflow依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包,最终导致gpu驱动版本和cuda运行时版本不匹配。

你可能感兴趣的:(CUDA driver version is insufficient for CUDA runtime version)