Performance Analysis Tools
Performance Analysis Tools
目录
Performance Analysis Tools
在 Linux 性能观测中,Tracing 侧重于捕捉事件的因果顺序与详细流程,而 Profiling 侧重于统计资源的宏观消耗热点。二者相辅相成。
以下工具为工作中接触和使用过的。参考阅读中提供了更多工具和资源,供进一步探索。
内核与系统级工具
- perf: CPU 硬件计数器采样,
perf record -e <tracepoint>亦可做事件追踪。 - jemalloc: 内存分配器,支持堆内存剖析与泄漏检测。
- Intel VTune: 全平台 CPU/GPU 性能剖析器。
- Valgrind: 内存调试、内存泄漏检测和性能分析工具。
- AddressSanitizer: Google 开发的快速内存错误检测器。
Python 性能分析
- memray: Bloomberg 出品的 Python 内存剖析器,支持火焰图与时间线追踪。
PyTorch 性能分析
- PyTorch profiler: PyTorch 官方性能剖析器,可视化计算与数据加载。
Kineto: PyTorch profiler 的底层性能分析库
- PyTorch memory profiler: PyTorch GPU 显存分析工具,辅助 OOM 调试。
HPC 性能分析
- HPCToolkit: HPC 性能分析工具,支持多语言和多平台。
- Caliper: HPC 性能分析库,支持事件追踪与性能计数器。
MPI 事件追踪器
GPU 性能分析(ROCm / NVIDIA)
AMD ROCm 生态
- ROCm tools: ROCm 官方性能分析工具集合介绍。
- Omnitrace / rocprofiler-systems: ROCm 全栈追踪器,支持 CPU/GPU 事件捕捉与分析。
- Omniperf / rocprofiler-compute: GPU 计算内核微架构剖析工具。
- rocprofv3: 新一代低层性能分析接口,用于 GPU 计算应用的硬件级分析与追踪。
rocprof-compute-viewer: ROCm 计算性能分析结果可视化工具。
AQLprofile: Architected Queuing Language Profiling Library - roc-optiq:ROCm Profiler 工具的可视化工具。
- Deprecated: rocprofiler v1/v2: 旧版性能分析工具库。
- Deprecated: roctracer / roctx: 旧版运行时追踪器
- Omniprobe: 源代码层面精准定位性能瓶颈
- IntelliKit: 内核开发智能工具
- IntelliPerf: 基于 LLM 驱动的自主 GPU 性能工程师
NVIDIA 生态
- NVIDIA tools: NVIDIA 官方性能分析工具集合介绍。
- Nsight Systems: 系统级性能分析工具,支持 CPU/GPU 事件捕捉与时间线分析。
- Nsight Compute: GPU 内核级性能分析工具,支持 CUDA 内核性能剖析与优化。
- Compute Sanitizer: CUDA 内核错误检测工具,支持内存错误、数据竞争等问题的分析与调试。
- Nsight Copilot: 基于 AI 的性能分析助手。
- CUPTI: CUDA 性能工具接口,提供对 CUDA 应用程序的性能分析和事件追踪功能。
- NVTX: NVIDIA 运行时追踪库,支持在 CUDA 应用程序中插入自定义事件和范围,以便进行性能分析和调试。
国产 GPU 生态
| 厂商 | 工具 | 文档链接 |
|---|---|---|
| 海光 DCU | hipprof | DCU-DTK 文档 |
| 燧原科技 | TopsProf | 燧原支持中心 |
| 寒武纪 | CNPerf | 寒武纪文档 |
| 华为昇腾 | msprof / msprof-analyze | 昇腾社区 |
| 昆仑芯 | XProfiler | vLLM-Kunlun Plugin、xpu_profiler |
| 摩尔线程 | Moore Perf System | 摩尔线程 MUSA 工具 |
| 沐曦 | mcTracer/mcProfiler | 沐曦文档 |
天数智芯-ixprof、瀚博半导体-VAProfiler、灵汐科技-LynPA、壁仞-suProfiler
芯动科技、登临科技、景嘉微、芯原股份、红山微电子、格兰菲、砺算科技、深流微、芯瞳半导体、象帝先
参考阅读
- Linux Tracing Tools
- Profiling (computer programming) - Wikipedia
- awesome-profiling
- Tracing Topics on GitHub
- Profiler Topics on GitHub
- 相关学术会议: MLSYS、ASPLOS、HPCA、MICRO、ISCA、RTNS