测试GPU是否能用于训练网络,测试代码见官网:
https://databricks.com/tensorflow/using-a-gpu
运行报错:CUDA driver version is insufficient for CUDA runtime version
翻译过来就是CUDA的驱动版本和CUDA的运行时版本不匹配。
1、CUDA的驱动版本查看命令
nvidia-smi
可以看到我电脑装的CUDA驱动版本是396.37
2、CUDA运行时版本查看命令
coda list(如果你是用anaconda安装的python环境就用coda list,否则用pip list就可以查看所有安装包)
可以看到我电脑装的CUDA运行时版本是10.0
3、CUDA驱动和CUDA运行时版本对应关系
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
可以看到运行时的本机的驱动版本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
运行测试程序,结果中有如下输出,则代表正常
5、出现这种情况的原因
python中安装tensorflow的gpu版本时,pip会检查tensorflow依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包,最终导致gpu驱动版本和cuda运行时版本不匹配。