中文

DiffTune: 利用可学习的可微代理优化 CPU 模拟器参数

机器学习 2020-12-08 v2 硬件体系结构 编程语言

摘要

CPU 模拟器是用于建模 CPU 执行行为的有用工具。然而,由于设置其细粒度参数(例如单条指令的延迟)的成本和复杂性,它们存在不准确的问题。这种复杂性源于设计能够精确测量如此细粒度参数值的基准测试和测量框架所需的专业知识。在某些情况下,这些参数不一定具有物理实现,因此本质上是近似的,甚至是不可测量的。在本文中,我们提出了 DiffTune,一个从粗粒度端到端测量中学习 x86 基本块 CPU 模拟器参数的系统。给定一个模拟器,DiffTune 首先通过用一个可微代理(即逼近原函数的另一个函数)替换原模拟器来学习其参数;通过使代理可微,DiffTune 能够应用基于梯度的优化技术,即使原函数是不可微的(如 CPU 模拟器的情况)。利用这个可微代理,DiffTune 随后应用基于梯度的优化来生成模拟器参数的值,以最小化模拟器在端到端真实性能测量数据集上的误差。最后,将学习到的参数插回原始模拟器中。DiffTune 能够自动学习 llvm-mca(一个基于 LLVM 指令调度模型的基本块 CPU 模拟器)的 Intel x86 模拟模型中的整套微架构特定参数。DiffTune 学习到的参数使 llvm-mca 的平均误差不仅匹配,而且低于其原始的专家提供的参数值。

关键词

引用

@article{arxiv.2010.04017,
  title  = {DiffTune: Optimizing CPU Simulator Parameters with Learned Differentiable Surrogates},
  author = {Alex Renda and Yishen Chen and Charith Mendis and Michael Carbin},
  journal= {arXiv preprint arXiv:2010.04017},
  year   = {2020}
}