目录

torch.utils.bottleneck

torch.utils.bottleneck 是一个工具,可以用作 调试程序中的瓶颈。它总结了脚本的运行情况 Python 分析器和 PyTorch 的 autograd 分析器。

在命令行上运行它

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 分析器可能会 Not show correct timings(未显示正确的计时):报告的 CPU 时间报告时间量 用于启动内核,但不包括内核的时间 在 GPU 上执行所花费的时间,除非该操作执行 synchronize。 在常规 CPU 模式分析器。 在这些计时不正确的情况下, CUDA 模式 autograd 分析器 可能会有所帮助。

注意

决定将哪个 autograd 分析器输出到哪个 (CPU only 模式或 CUDA 模式) 查看,您应该首先检查您的脚本是否受 CPU 限制 (“CPU 总时间远大于 CUDA 总时间”)。 如果它是 CPU 密集型的,请查看 CPU 模式 autograd 的结果 Profiler 会有所帮助。另一方面,如果您的脚本花费了大部分时间 时间执行,那么启动 在 CUDA 模式的输出中寻找负责任的 CUDA 运算符 autograd 分析器。

当然,现实要复杂得多,您的脚本可能并非如此 在这两个极端之一,具体取决于您是模型的一部分 评价。如果分析器输出没有帮助,您可以尝试查看 的结果 with . 但是,请注意 NVTX 开销非常高,并且 通常会给出一个严重扭曲的时间表。同样,有助于进一步分析 Intel 平台上的性能nvprofIntel® VTune™ Profiler

警告

如果要分析 CUDA 代码,则运行 (cProfile) 将包括 CUDA 启动时间(CUDA 缓冲区分配成本) 在其时间报道中。如果导致瓶颈,这应该无关紧要 在代码中,比 CUDA 启动时间慢得多。bottleneck

对于分析器的更复杂的用法(例如在多 GPU 的情况下), 请参阅 https://docs.python.org/3/library/profile.html 了解更多信息。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源