作者:Arm 技术产品总监 David Haikney
对于开发者和编码智能体而言,需要借助专业工具确保工作负载能够针对目标环境实现高度优化。Arm Performix 是一款性能分析工具套件,可帮助开发者在 Arm 平台上运行的工作负载中实现最佳每瓦性能。
自今年四月发布以来,Arm Performix 每两周都会发布一个新版本,持续增加新功能,帮助开发者更轻松地启动、理解并推进性能分析工作。这些更新为希望将 AI 智能体与 Performix 连接起来,并将分析数据纳入可重复执行的性能工程工作流的开发者奠定了更坚实的基础。

此次更新包括:
通过与编码智能体集成,实现动态洞察(Dynamic Insights)
系统利用(System Utilization)分析
指令级代码反汇编
更完善的性能运行结果管理与更便捷的对比
系统调用跟踪
核心代码仓库开源
本文将详细介绍这些功能,并说明它们如何协同帮助开发者分析、理解并优化运行在 Arm 平台上的应用性能。
支持迭代式性能调查
现实世界中的性能调查很少按照预设路径一步到位地完成。在定位性能问题的过程中,开发者通常需要验证多个假设、比较不同实验结果,并反复优化应用,最终找到能够达到预期效果的解决方案。
Arm Performix 的产品路线图正是围绕这种迭代式工作模式构建的。我们的目标是减少收集和解读性能数据所需的人工投入,并帮助开发者更快速地从系统层面的性能现象定位到相关工作负载、源代码,甚至具体指令。
动态洞察
性能工程不仅需要详尽的数据分析,还依赖经验丰富的专家来判断下一步应该关注和优化哪些内容。动态洞察(Dynamic Insights)将 Arm Performix 提供的深度分析数据与大语言模型(LLM)的推理能力结合,实现自动热点识别、代码优化建议以及优先级排序后的性能优化推荐。该工作流支持多种模型和编码助手,包括Claude、Codex、Gemini 以及 GitHub Copilot。
Arm Performix 内置了一个模型上下文协议(MCP)服务器,可让开发者使用自己偏好的 AI 智能体直接访问 Performix 数据,包括分析样本、源代码、指令反汇编信息以及目标平台能力等内容。在设计过程中,我们会根据智能体解读所需的详尽程度,权衡 Token(词元)的使用量。
系统利用分析指南
许多性能调查工作的起点,都是先了解系统的整体运行情况。开发者需要掌握 CPU、内存、磁盘和网络等资源的使用状态,包括可用资源情况、是否已经达到饱和,以及资源利用如何随时间变化。
系统利用分析指南将这些关键指标整合到统一视图中,帮助开发者在深入优化代码之前,先识别潜在瓶颈所在,避免将时间花费在并非问题根源的代码上。

高效管理运行
我们为运行(Runs)视图新增了文件夹管理功能,开发者可以将相关实验归类到同一位置进行管理。
这一功能在测试多个优化方案、不同构建配置、编译器设置或工作负载变体时尤为实用。
通过按照调查项目管理运行,开发者能够更方便地在不同结果之间切换,为每项实验保留完整上下文,并清晰比较单项改动对性能产生的影响。
更简洁的性能对比
性能分析工具通常会采集大量数据,但当所有指标同时呈现时,反而可能掩盖最值得关注的性能差异。因此,我们对 Arm Performix 的对比分析功能进行了优化,简化了默认展示界面,使开发者能够更快速地发现不同运行结果之间最显著的差异。
当然,底层数据依然完整保留,供进一步分析使用。不过在初始视图中,系统会优先展示最有可能解释性能变化的关键指标,帮助开发者更快聚焦问题根源。
代码反汇编
我们扩展了代码热点(Code Hotspots)以及相关分析指南的能力,支持在指令级别展示采样归因结果。除了查看源代码外,开发者还可以进一步了解哪些具体指令被执行。这一能力对于进行面向微架构的性能优化,或分析编译器生成的 Arm 架构系统汇编代码的开发者来说尤为重要。
借助系统利用分析,开发者可以沿着以下路径逐层深入分析:从“CPU 很忙”到“这些源代码行导致了相关活动”,再到“这些指令占据了主要执行时间”。
系统调用跟踪分析指南
在传统性能分析过程中,开发者往往需要同时使用多种工具,处理不同依赖项、命令行参数以及各式各样的输出格式。Arm Performix 旨在将这些原本分散的信息源整合到统一且一致的性能调查工作流中。
Linux 的 strace 工具就是一个典型例子。当应用将大量时间消耗在内核态(kernel space)时,开发者需要了解应用调用了哪些系统调用、系统调用发生的频率,以及每类系统调用耗费了多长时间。
全新的系统调用跟踪分析指南可与其他 Arm Performix 数据同步采集。借助该功能,开发者无需孤立地分析系统调用行为,而是可以将其放在 CPU 利用率、代码热点以及其他性能分析结果的上下文中进行综合研究,从而更高效地定位问题根源。
开源
开源有助于推动开发者社区之间的协作、透明度建设以及知识共享。通过公开我们的工作成果,我们希望帮助更多开发者了解我们的设计思路,并将其中有价值的方法和技术应用到自己的工具和工作流中。目前,我们已经率先发布了以下核心项目:Arm Performix[1]、Arm System Characterization Tool(ASCT)[2]、Arm SoC Telemetry Library(ASTL)[3]。这只是我们持续努力的第一步。未来,我们将发布更多代码仓库、完善反馈与贡献指南、持续维护这些代码仓库。
[1] https://github.com/arm/performix
[2] https://github.com/arm/asct
[3] https://github.com/arm/astl
Arm Performix 的下一步发展方向
过去几个月推出的这些功能,为更加互联的 AI 辅助性能分析奠定了基础。如今,Arm Performix 已经能够将系统数据、性能分析结果以及模型辅助分析整合到统一工作流中,我们也将持续扩展它的功能。
在未来几个季度里,我们计划支持更多平台;扩展与更多大语言模型(LLM)的集成;为机器学习工作负载提供更深入的性能分析;以及在平台支持开启的情况下,引入功耗遥测(Power Telemetry)能力。开发者的反馈仍将是我们制定产品优先级和持续优化功能的重要依据。
欢迎点击阅读原文,免费下载并体验最新版本 Arm Performix,在自己的工作负载上进行测试,并向 Performix 工程团队分享您的反馈意见!
全部0条评论
快来发表一下你的评论吧 !