一、tensorboard的简介
https://www.tensorflow.org/guide/profiler
tensorboard是tensorflow集成的一个可视化工具,用于展示模型运行过程中的一些特征,包括运行时间、中间数据的图形化展示等等(详细看官方解释)。本文主要介绍tensorflow profiler的使用方法。
二、安装
1. 保证已经成功安装了以下内容
- TensorFlow >= 2.2.0
- TensorBoard >= 2.2.0
- tensorboard-plugin-profile >= 2.2.0
2. 保证已经安装CUPTI 10.1,并已配置到LD_LIBRARY_PATH下(坑几乎都在这)
1. NVIDIA GPU drivers and CUDA Toolkit:
- CUDA 10.1 requires 418.x and higher. ==> 保证已经正确安装了cuda 10.1 (扩展阅读有cuda10.1的安装说明)
#======================以下是我cuda踩过的坑==============================
- 完整的卸载cuda
sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*"
- 重新安装cuda
cuda会提示要安装的内容,driver指的是nvidia driver的版本。如果不想重装driver,去掉该选项;如果要重装driver(默认当前已安装其他版本的driver),参考下一条。
- 完整的卸载nvidia driver,并重新执行cudaX.sh文件
该过程中可能抛出以下错误: you appear to be running an X server, 参考该链接解决
To remove NVIDIA Drivers:
To clean up the uninstall:$ sudo apt-get --purge remove "*nvidia*"
$ sudo apt-get autoremove
- 将CUPTI 10.1 添加到路径上
2. Ensure that CUPTI 10.1 exists on the path.
$ /sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH) | grep libcupti
If you don't see
libcupti.so.10.1
on the path, prepend its installation directory to the $LD_LIBRARY_PATH environmental variable:$ export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
- 验证CUPTI 10.1添加到路径,这里有个大坑注意一下
Run the ldconfig command above again to verify that the CUPTI 10.1 library is found.
/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH) | grep libcupti
坑一:If this doesn't work, try:(官网让安装这个包,千万不要装,具体原因如下--)
$ sudo apt-get install libcupti-dev
CUPTI有两个安装来源:ubuntu和cuda。
ubuntu默认安装的cupti和ubuntu的版本有关,例如ubuntu 16.04默认安装cuda 7.X对应的cupti,ubuntu 20.04默认安装cuda 10.1对应的cupti,如果此时系统安装的cuda版本和ubuntu默认安装的版本不对应就会出现问题。
cuda本身集成了cupti(extras/CUPTI文件夹),如果我们再通过apt-get安装cupti,系统同时存在两个cupti且可能出现上述版本不一致的问题。综合考虑上述因素,不通过apt-get安装cupti。
坑二:确认已经将cupti添加到环境变量,但执行程序过程中依旧找不到cputi.so.0 文件
https://github.com/tensorflow/tensorflow/issues/8830#issuecomment-738520233
具体解法已经写到上边啦,再copy一下(凡尔赛一下,哈哈哈)
sudo cp /usr/local/cuda-10.1/extras/CUPTI/lib64/libcupti.so /usr/local/lib/libcupti.so && sudo ldconfig sudo cp /usr/local/cuda-10.1/extras/CUPTI/lib64/libcupti.so.10.1 /usr/local/lib/libcupti.so.10.1 && sudo ldconfig
三、使用
执行下边命令
(base) wujing@ubuntu:~/anaconda3/envs/tf-gpu-2.2/bin$ python3 tensorboard --logdir=~/Projects/gpu-partition/context_log/ --bind_all
TensorBoard 2.2.2 at http://ubuntu:6006/ (Press CTRL+C to quit)
1. 定位到tensorboard所在的目录 (~/anaconda3/envs/tf-gpu-2.2/bin)
本人使用conda创建了虚拟环境,并在虚拟环境下安装了tensorflow及tensorboard。
2. 执行tensorboard命令,指定profile文件所在的目录(python3 tensorboard --logdir=~/Projects/gpu-partition/context_log/ )
如果想远程访问profile的结果,需要额外添加--blind_all
3. 通过浏览器访问profile的结果
在浏览器地址栏输入 http://ubuntu:6006/#profile,就可以看到啦
4. 祝贺你,如果有问题可以在评论区留言
四、扩展阅读