tensorflow的CUDA driver version is insufficient for CUDA runtime version 問題解決方案。
CUDA driver version is insufficient for CUDA runtime version 翻譯過來就是CUDA的驅動程式版本跟CUDA的執行時版本不匹配!
1.CUDA driver version(驅動版本):就是NVIDIA GPU的驅動程式版本;
檢視命令:nvidia-smi
我們看到我的GPU的驅動程式版本是:384.81
2.CUDA runtime version(執行時版本):是在python中安裝的cudatoolkit和cudnn程式包的版本
檢視命令:pip list
python安裝的cudatoolkit和cudnn程式包版本是:9.2
3.nvidia 驅動和cuda runtime 版本對應關係
執行時版本 驅動版本
c. 注意:cuda版本必須和顯示卡驅動版本匹配,下表是參考的[官方文件](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)。 CUDA 9.1 387.xx
CUDA 9.0 384.xx
CUDA 8.0 375.xx (GA2)
CUDA 8.0 367.4x
CUDA 7.5 352.xx
CUDA 7.0 346.xx
CUDA 6.5 340.xx
CUDA 6.0 331.xx
CUDA 5.5 319.xx
CUDA 5.0 304.xx
CUDA 4.2 295.41
CUDA 4.1 285.05.33
CUDA 4.0 270.41.19
CUDA 3.2 260.19.26
CUDA 3.1 256.40
CUDA 3.0 195.36.15
4.解決方案
從驅動和執行時的版本對應關係來看,版本為384.81的驅動程式 對應的 執行時版本是9.0,也就是說我們在python中安裝cudatoolkit和cudnn程式包版本9.2是過高了。
因為系統中依賴GPU驅動的程式比較多,一般出現這種情況,我們都是更改cudatoolkit和cudnn程式包的版本。
於是,先解除安裝python中安裝cudatoolkit和cudnn程式包:pip uninstall cudnn ; pip uninstall cudatoolkit
然後安裝對應版本的cudatoolkit和cudnn程式包:pip install cudatoolkit=9.0;pip install cudnn
5.為什麼會出現這種情況呢:
一般出現這種情況是因為在python中安裝tensorflow的gpu版本時,pip會檢查tensorflow依賴的其他的包,如果依賴的包沒有安裝,則會先安裝最新版本的依賴包。這時候tensorflow的gpu版本依賴cudatoolkit和cudnn程式包,pip就會安裝最新版本的cudatoolkit和cudnn程式包,最終導致gpu驅動版本和cuda執行時版本不匹配。