2017-12-27 932 views
0

據我瞭解CUDA的所有版本都是向下兼容的,但是通過安裝CUDA和用TF建立一個虛擬環境的全過程後出現這種情況時,我import tensorflowTensorflow和CUDA版本

ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory 

這顯然意味着Tensorflow正在尋找CUDA 8.0,但沒有找到CUDA 8.0,因爲我擁有CUDA 9.1,但是如果它向後兼容,爲什麼要這麼做呢?對於這樣一個受歡迎的圖書館來說,在設置說明上有點模糊,所以我希望這裏有人能夠提供一些知識,這真是令人驚訝。

安裝CUDA 8.0我沒有問題,但當然這不是一個選項,我只能通過NVIDIA網站獲得最新版本。這有什麼解決辦法?

+1

它們不是二進制向後兼容的。一切都和版本它是建立針對給定的運行時API版本和共享庫必須有一個版本的安裝或與它分配爲它工作 – talonmies

+2

這裏那些庫什麼是安裝tensorflow https://www.tensorflow.org文檔/安裝/並下載CUDA的其他版本https://developer.nvidia.com/cuda-toolkit-archive –

回答

2

如果您有與CUDA庫(例如libcublas.so.8.0)鏈接的二進制文件(任何類型),您將無法滿足shared-object-dynamic-load-time的要求,只需將另一個庫libcublas.so.9.0。 CUDA具有某些前向/後向兼容性,但這不是其中之一。您必須提供代碼所鏈接的確切庫。

如果要訪問舊版CUDA工具包版本,以便使舊版庫可用,那些CUDA工具包版本通常可在CUDA Toolkit存檔頁面here上獲得。

如果你已經有了一個新的CUDA工具包加載並工作正常,你應該能夠裝載舊的工具包,並使用它,而無需更新/修改您的安裝GPU驅動程序。

要解決此,以便能實際使用一個新的圖書館,你需要重新鏈接(至少)代碼/二進制文件正在使用。