x86和ARM汇编内核的自动吞吐量和关键路径分析
摘要:在乱序架构上,有用的循环内核运行时模型需要分析指令和它们之间依赖的核心性能行为。指令吞吐量预测为内核运行时设置了一个下界,而关键路径则定义了一个上界。这些预测是分析性能模型(即白盒子)如Roofline和Execution-Cache-Memory (ECM)模型的重要组成部分。它们可以更好地理解硬件架构和循环代码之间与性能相关的交互。开源架构代码分析器(OSACA)是一种用于预测顺序循环执行时间的静态分析工具。它之前只支持x86(Intel和AMD)架构和简单的乐观全吞吐量执行。我们已经大幅扩展了OSACA,支持ARM指令和关键路径预测,包括检测循环传递的依赖关系,使其成为一种多功能的跨架构建模工具。我们展示了基于可用文档和半自动基准测试的机器模型,预测在Intel Cascade Lake、AMD Zen和Marvell ThunderX2微架构上的代码运行时,并与实际测量进行了比较。
作者:Jan Laukemann, Julian Hammer, Georg Hager, Gerhard Wellein
论文ID:1910.00214
分类:Performance
分类简称:cs.PF
提交时间:2020-06-25