经典的深度学习引擎,如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
改成对应版本即可。