Omnitrace 使用教程
项目介绍
Omnitrace 是一个用于并行应用程序的综合性分析工具,它支持 C、C++、Fortran、HIP、OpenCL 和 Python 等语言编写的应用程序,无论是在 CPU 还是 CPU+GPU 上运行。它能够通过二进制代码注入、调用栈采样、用户定义区域和 Python 解释器钩子等方式收集应用程序的性能信息。此外,Omnitrace 还支持在 Web 浏览器中进行交互式可视化,以及显示具有均值、最小值、最大值和标准差统计信息的高级摘要配置文件。除了运行时,Omnitrace 还支持收集系统级指标(如 CPU 频率、GPU 温度和 GPU 利用率)、进程级指标(如内存使用情况、页面错误和上下文切换)和线程级指标(如内存使用情况、CPU 时间和大量硬件计数器)。
项目快速启动
安装
- 访问 Omnitrace 发布页面:Omnitrace Releases
- 选择适合您的操作系统的安装程序。
- 运行安装程序。
wget https://github.com/ROCm/omnitrace/releases/latest/download/omnitrace-install.sh
bash omnitrace-install.sh
配置
- 生成 Omnitrace 配置文件:
omnitrace-avail -G omnitrace.cfg
-
修改配置文件以满足您的需求。
-
设置配置文件路径:
export OMNITRACE_CONFIG_FILE=/path/to/omnitrace.cfg
应用案例和最佳实践
调用栈采样
使用 omnitrace-sample
执行调用栈采样:
omnitrace-sample --help
omnitrace-sample <omnitrace-options> -- <exe> <exe-options>
二进制代码注入
使用 omnitrace-instrument
注入现有二进制文件:
omnitrace-instrument --help
omnitrace-instrument <omnitrace-options> -- <exe-or-library> <exe-options>
二进制重写
将新二进制文件与注入的代码一起生成:
omnitrace-instrument -o app.inst -- /path/to/app
Python 性能分析
使用 omnitrace-python
分析 Python 脚本:
omnitrace-python --help
omnitrace-python <omnitrace-options> -- <python-script> <script-args>
典型生态项目
- ROCm:Omnitrace 与 ROCm 深度集成,为 ROCm 应用程序提供性能分析和跟踪功能。
- Perfetto:Omnitrace 支持使用 Perfetto 进行系统级跟踪和性能分析。
- Timemory:Omnitrace 与 Timemory 集成,提供详细的内存性能分析。
以上是 Omnitrace 的基本使用教程,更多详细信息请参考 Omnitrace 官方文档。