返回资源列表

Hugging Face · Aritra Roy Gosthipaty · Sayak Paul · Sergio Paniego · Rémi Ouazan Reboul · Pedro Cuenca

Profiling in PyTorch (Part 1): A Beginner's Guide to torch.profiler

学会用 torch.profiler 采集并解读 PyTorch 程序的性能剖析结果,能读 profiler 表格区分 CPU 与 GPU 耗时,判断优化方向。

打开官方课程
难度
入门
形式
实践教程
语言
en
规模
1 个课节
内容费用
免费
动手
需要动手环境

使用限制

阅读文章本身无需账号,也不需要 GPU;运行示例脚本需自备 PyTorch 环境,原文建议在带 GPU 的机器上运行,或通过需要 Hugging Face 账号的 Spaces Dev Mode / Jobs 获取 GPU,均属可选实践。

练习与作业
GPU:原文建议在带 GPU 的机器上运行示例脚本,仅用于复现 trace 与 GPU 车道分析
补充内容
Hugging Face 账号:仅在用 Spaces Dev Mode 或 Jobs 获取 GPU 时需要如需在 Hugging Face 上使用付费算力运行脚本
内容提示
付费内容:全文免费阅读,但运行文中示例脚本需自备 PyTorch 环境;原文建议在带 GPU 的机器上运行,或通过 Hugging Face Spaces Dev Mode / Jobs 获取 GPU,可能产生算力费用。内容时效:原文注明文中的 trace 由 PyTorch 2.13 生成,使用其他版本时部分 trace 细节(如 CompiledFxGraph)可能不同或缺失。

学完你能

  • 用 torch.profiler.profile 上下文管理器采集 CPU 与 CUDA 活动
  • 用 record_function 给自定义函数打标签,便于在 trace 中定位
  • 导出并阅读 profiler 表格,区分 Self 与 total 时间、看懂 # of Calls 列
  • 读懂 profiler trace 中 CPU 车道、GPU 车道及两者之间的空隙
  • 解释一次 Python 调用到 CUDA kernel 的完整事件链
  • 识别 overhead-bound 这类典型瓶颈,并说明加大矩阵规模对耗时构成的影响

适合你吗

适合

适合有基础 PyTorch 使用经验、想弄清训练或推理为什么慢、希望学会读 profiler 表格与 trace 的开发者。原文说明除基础 PyTorch 外没有前置要求,并以“打开 trace、追问为什么”的问题驱动方式讲解。

暂不适合

不适合完全没有 PyTorch 使用经验的读者;只想学模型算法本身、不关心性能分析的人收获有限。

需要先会

原文写明“No prerequisites apart from basic PyTorch”,即除基础 PyTorch 外没有前置要求;原文把这个系列定位为轻松读物。

课程特点

内容侧重
按内容目录判断
练习与项目
用文章提供的 01_matmul_add.py 脚本,先在 64 尺寸下采集结果并读表格最后两行的 Self CPU/CUDA 总时间,再按原文换成 4096 尺寸对比。节选中 torch.compile 与 Trace reading cheatsheet 等内容只出现标题,未提供正文,需以原文后续内容为准。
学习时长
1 个课节原站未给出统一学习时长;实际用时取决于已有基础。
内容费用
免费节选可直接读到正文、示例代码与图表,未出现付费墙或登录拦截;站点会员与定价入口属于平台导航,不影响本资源。

内容覆盖

  • The matrix multiplication and addition operation
  • 64x64 traces:Why does the ProfilerStep#2 take so long? / Why is there an offset of ~2.5 ms between the CPU and GPU lanes?
  • The chain of events
  • Why does matmul have an extra CUDA runtime call?
  • Why is cudaDeviceSynchronize so big (~1.78 ms)?
  • 4096x4096 traces:Why does the same kernel take more time compared to others?(节选仅列标题)
  • Let's see some torch.compile at work(节选仅列标题)
  • Did we fuse the matmul and add kernels into one?(节选仅列标题)
  • torch.compile's runtime architecture(节选仅列标题)
  • Do the CUDA launches go down by half?(节选仅列标题)
  • CPU overhead went up, not down(节选仅列标题)
  • Trace reading cheatsheet:Profiler table / CPU lane / GPU lane / Dispatch chain / torch.compile(节选仅列标题)
  • Conclusion(节选仅列标题)

来源与使用须知

原始资源
Hugging Face
收录时间
本站首次收录 2026-10-20
指南参考

版权与转载

  • 课程材料未标明许可:仅供个人学习,转载、修改或商用前请先联系原作者。
  • 本站只提供原始链接和学习指南,不转载、不镜像课程材料;引用时请注明原作者与出处。