Could not load dynamic library ‘cublas64_10.dll‘; dlerror: cublas64_10.dll not found或者缺少DLL問題

Foxerity發表於2020-11-28

專案場景:

       tensorflow對GPU的支援,尤其是對英偉達GPU的支援,不只是下個tensorflow-gpu就完事了,還需要一系列顯示卡相關的軟體的版本匹配,比如最常見的就是那個cuda的版本匹配問題。當然匹配後也不可避免的有很多奇怪的問題,接下來我要講的就是其中一個
Could not load dynamic library ‘cublas64_10.dll’; dlerror: cublas64_10.dll not found
Could not load dynamic library ‘cufft64_10.dll’; dlerror: cufft64_10.dll not found
Could not load dynamic library ‘curand64_10.dll’; dlerror: curand64_10.dll not found
Could not load dynamic library ‘cusolver64_10.dll’; dlerror: cusolver64_10.dll not found
Could not load dynamic library ‘cusparse64_10.dll’; dlerror: cusparse64_10.dll not found
問題。


       (不過如果有同學提示的是沒有cuDNN的dll檔案,那就看一下附錄!,這邊的報錯是針對版本配好的)

問題描述:

       很多同學根據網上的提示都配好了CUDA的環境,但發現執行還是會有一大堆奇怪的提示,但是訓練似乎沒受影響很多同學可能就沒多想,畢竟一大堆專業名詞,沒報錯就等於沒錯好了。

但我們仔細看就發現問題了:
Skipping registering GPU devices…,
翻譯一下,跳過GPU,好傢伙,人家壓根就沒用你的GPU,沒報錯也就是因為你還有個CPU,所以全然不知,就算訓練速度慢了,也沒個概念,感覺估計就這個速度算快了吧。
在這裡插入圖片描述

       但我們不可能搞個那麼值錢的GPU為了深度學習,結果還不用,那也太浪費了,接下來就是分析一下怎麼除錯吧。


原因分析:

我們可以看到上面的一些提示
在這裡插入圖片描述
那種什麼successfully的肯定是沒問題,但那些could not load的肯定是有問題了,可是我們明明對了版本為什麼還是會說打不開呢?

Could not load dynamic library 'cublas64_10.dll'; dlerror: cublas64_10.dll not found
Could not load dynamic library 'cufft64_10.dll'; dlerror: cufft64_10.dll not found
Could not load dynamic library 'curand64_10.dll'; dlerror: curand64_10.dll not found
Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not found
Could not load dynamic library 'cusparse64_10.dll'; dlerror: cusparse64_10.dll not found

解決方案:

其實解決辦法很簡單,去到我們的CUDA按照路徑,一般都是

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin

我們會在裡面找到這些所謂的could not load的檔案,說明我們都是有的

在這裡插入圖片描述
但為什麼打不開呢?看仔細點,人家字尾是10,我們的字尾都是100
所以我們嘗試一下,把字尾名改成10看看
在這裡插入圖片描述
再放回去那個資料夾
再重新啟動我們的程式
在這裡插入圖片描述
       而且我們可以看到那個Skipping registering GPU devices…也沒了,那就是說明他啟動成功了,但最直觀的證明在哪呢?你的訓練速度現在應該是幾何倍數的提升了,像之前我的示例簡單的一個手寫數字識別,原來啟動失敗訓練10輪的時間的5分20秒,啟動獨顯後訓練時間是53秒。這就是你那塊那麼值錢的顯示卡的厲害之處。

附錄:

有些同學可能是連CUDA都沒更新好,那用這個辦法肯定是不行的,我這邊就簡單附上一個tensorflow-gpu版本和CUDA版本的對應圖
在這裡插入圖片描述
以及對應的cuDNN的版本:
在這裡插入圖片描述

相關文章