【问题描述】:最近在 A100 上面跑一些别人的 repo 的时候,经常碰到报错 “/home/<username>/anaconda3/envs/<env_name>/lib/python3.7/site-packages/nvidia/cublas/lib/libcublas.so.11: undefined symbol: cublasLtGetStatusString (<或者其他>), version libcublasLt.so.11
”。
开始的时候看了各种教程都让我去重新 install 某个pytorch版本,可是真的好麻烦啊… 然后在这里发现了下面的奇妙方法:
【解决方法】
- 通过命令
$ ldd /home/<username>/anaconda3/envs/<env_name>/lib/python3.7/site-packages/nvidia/cublas/lib/libcublas.so.11
查看当前libcublasLt.so.11
的所在位置,然后发现它link到了诸如/usr/local/cuda/lib64/libcublasLt.so.11
这样的位置。 - 通过命令
$ export LD_LIBRARY_PATH=/home/<username>/anaconda3/envs/<env_name>/lib/python3.7(或<your_python_version>)/site-packages/nvidia/cublas/lib/:$LD_LIBRARY_PATH
将当前 conda env 的 lib path 加过去。 - 以上做法只是临时设置
LD_LIBRARY_PATH
,下次开机时需要重新设置。为了把这个值持续写到LD_LIBRARY_PATH
里,我们可以$ vim ~/.bashrc
,在该文件的未尾加入步骤2中的命令。修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。
以上完美 fix 了我遇到的问题,强推!冲!(记得替换 <username>
和 <env_name>
,并确认 <python_version>
~