經典的深度學習引擎,如tensorflow和pytorch,其自身版本與CUDA版本有着嚴格的對應關係,一點點的不符都會使得程序無法運行。
例如,我目前的默認CUDA==10.2
,現在需要跑tensorflow-gpu==1.13.1
的代碼(要求CUDA==10.0
),就會報出這樣的錯誤:
ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
由於復現實驗時,原始代碼的tensorflow/pytorch版本往往五花八門,只靠一個版本的CUDA來一招鮮喫遍天是不現實的,必然要安裝多版本CUDA。
然而,指定CUDA版本也很繁瑣,常規方法是開多個conda虛擬環境, 爲每個環境指定一個CUDA版本,但不免繁瑣。
其實,一個簡單的方法就能夠臨時切換使用的CUDA版本,就是在執行代碼前指定環境變量LD_LIBRARY_PATH
爲你想使用的特定版本的CUDA的路徑。
例如,爲run.py
指定使用CUDA=10.0
:
LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64 python run.py
其他版本,把cuda-10.0
改成對應版本即可。