TensorBoard GPU性能分析器调用错误版本libcupti,如何指定使用libcupti.so.11.6?
解决TensorBoard Profiler指定使用libcupti.so.11.6的问题
我之前也碰到过这种CUDA/CUPTI版本不匹配的坑,结合你的环境配置(CUDA11.6、TF2.8、tensorboard-plugin-profile2.5.0),给你两个实用的解决办法:
方法一:通过环境变量临时指定CUPTI路径
TensorBoard Profiler会优先从LD_LIBRARY_PATH里查找动态库,我们可以把11.6版本的CUPTI路径加到环境变量里:
- 首先确认你的CUPTI安装路径,CUDA11.6默认路径是:
/usr/local/cuda-11.6/extras/CUPTI/lib64/ - 在启动TensorBoard前,执行以下命令导出环境变量(临时生效,每次启动终端都要跑一次):
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/extras/CUPTI/lib64:$LD_LIBRARY_PATH - 如果是在Jupyter Notebook里运行,可以在代码开头加入这段Python代码设置环境变量:
如果想永久生效,可以把export命令加到你的import os cupti_path = "/usr/local/cuda-11.6/extras/CUPTI/lib64/" os.environ['LD_LIBRARY_PATH'] = cupti_path + os.environ.get('LD_LIBRARY_PATH', '')~/.bashrc或~/.zshrc文件末尾,保存后执行source ~/.bashrc生效。
方法二:创建软链接让系统“误认为”存在11.2版本
这个方法是给系统创建一个指向11.6版本的软链接,让TensorFlow能找到它要的libcupti.so.11.2:
- 先找到你的
libcupti.so.11.6的绝对路径:/usr/local/cuda-11.6/extras/CUPTI/lib64/libcupti.so.11.6 - 创建软链接到系统库路径或者CUDA默认的CUPTI路径:
- 链接到CUDA默认CUPTI目录:
sudo ln -s /usr/local/cuda-11.6/extras/CUPTI/lib64/libcupti.so.11.6 /usr/local/cuda/extras/CUPTI/lib64/libcupti.so.11.2 - 如果上述路径不行,尝试链接到系统全局库目录:
sudo ln -s /usr/local/cuda-11.6/extras/CUPTI/lib64/libcupti.so.11.6 /usr/lib/x86_64-linux-gnu/libcupti.so.11.2
- 链接到CUDA默认CUPTI目录:
- 执行完软链接后,重启TensorBoard就可以正常加载11.6版本的CUPTI了。
额外注意
TensorFlow 2.8官方是支持CUDA 11.6的,所以不用担心版本兼容性问题。如果还是有问题,可以尝试升级tensorboard-plugin-profile到和TensorFlow版本匹配的版本(比如2.8.x),不过先试试上面两个方法基本就能解决。
内容的提问来源于stack exchange,提问作者DPM
相关产品推荐
相关产品推荐

