译者: belonHan
torch.utils.bottleneck
是 调试瓶颈bottleneck
时首先用到的工具.它总结了python分析工具与PyTorch自动梯度分析工具在脚本运行中情况.
在命令行运行如下命令
python -m torch.utils.bottleneck /path/to/source/script.py [args]
其中 [args]
是script.py
脚本的参数(任意个数).运行python -m torch.utils.bottleneck -h
命令获取更多帮助说明.
警告
请确保脚本在分析时能够在有限时间内退出.
警告
当运行CUDA代码时,由于CUDA内核的异步特性, cProfile的输出 和cpu模式的autograd分析工具可能无法显示正确的计时: 报告的CPU时间 是用于启动内核的时间,不包括在GPU上执行的时间。 在常规cpu模式分析器下,同步操作是非常昂贵的。在这种无法准确计时的情况下,可以使用cuda模式的autograd分析工具。
注意
选择查看哪个分析工具的输出结果(CPU模式还是CUDA模式) ,首先应确定脚本是不是CPU密集型CPU-bound
(“CPU总时间远大于CUDA总时间”)。如果是cpu密集型,选择查看cpu模式的结果。相反,如果大部分时间都运行在GPU上,再查看CUDA分析结果中相应的CUDA操作。
当然