人工智能如何让机器运行得更快?

The Hook Model – Trigger -> Action -> Reward -> Investment – Made with Canon 5d Mark III and loved analog lens, Leica APO Macro Elmarit-R 2.8 / 100mm (Year: 1993)
“Modern computer processors are opaque, horrendously complicated, and difficult to understand."Image: Unsplash/Markus Spiske
本内容由人工智能自动翻译。

该机器学习系统有望帮助开发人员在多种应用中提升计算效率。

麻省理工学院的研究人员发明了一种机器学习工具,可预测计算机芯片执行各类应用代码的速度。

为使代码尽可能快地运行,开发人员和编译器(将编程语言转换为机器可读代码的程序)通常会使用性能模型,通过对给定芯片架构进行模拟来运行代码。

编译器利用这些信息自动优化代码,开发人员则借助这些信息解决运行代码的微处理器上的性能瓶颈。但机器代码的性能模型由相对较少的专家手工编写,且未经过充分验证。因此,模拟得出的性能测量结果往往与实际结果存在偏差。

在一系列会议论文中,研究人员描述了一种新型机器学习流程,该流程可实现这一过程的自动化,使其更加便捷、快速且准确。在论文中(该论文于六月在国际机器学习大会上发表),研究人员提出了Ithemal,这是一种神经网络模型,它以“基本块”(计算指令的基础代码片段)形式的标注数据进行训练,从而自动预测给定芯片执行此前未见过的基本块需要多长时间。结果表明,Ithemal的准确性远高于传统的手工调优模型。

随后,在十一月举行的IEEE国际工作负载表征研讨会上,研究人员提出了一套基准测试套件,其中包含来自机器学习、编译器、密码学和图形学等多个领域的基本块,可用于验证性能模型。他们将超过30万个经过性能剖析的基本块汇总为一个名为BHive的开源数据集。在评估过程中,Ithemal预测英特尔芯片运行代码速度的表现,甚至优于英特尔自身构建的性能模型。

最终,开发人员和编译器可借助该工具,为数量不断增长、类型多样且属于“黑箱”设计的芯片生成运行更快、效率更高的代码。“现代计算机处理器结构不透明、极其复杂,且难以理解。要为这些处理器编写能够尽可能快速执行的计算机代码,也极具挑战性。”合著者、电气工程与计算机科学系(EECS)助理教授、计算机科学与人工智能实验室(CSAIL)研究人员迈克尔·卡宾(Michael Carbin)表示,“该工具是朝着全面建模这些芯片性能、以提升效率迈出的重要一步。”

最近,在论文中(该论文于十二月在NeurIPS大会上发表),研究团队提出了一种自动生成编译器优化的新技术。具体而言,他们自动生成了一种名为Vemal的算法,可将特定代码转换为向量,用于并行计算。Vemal的表现优于LLVM编译器中使用的手工编写的向量化算法。LLVM是业界广泛使用的一款常用编译器。

从数据中学习

手工设计性能模型可能是“一门黑色艺术”,卡宾表示。英特尔提供了超过3000页的详尽文档,描述其芯片架构。但目前只有少数专家能够构建模拟这些架构上代码执行过程的性能模型。

“英特尔的文档既不无误,也不完整,而且由于属于专有信息,英特尔会省略某些内容,”门迪斯表示,“然而,当你使用数据时,就无需了解文档内容。如果存在隐藏信息,你可以直接从数据中学习到。”

为此,研究人员在无人工干预的情况下,统计了给定微处理器完成基本块指令所需的平均周期数——基本上就是开机、执行和关机的整个过程。这一自动化流程使得对数十万乃至数百万个基本块进行快速性能剖析成为可能。

特定领域架构

在训练阶段,Ithemal模型会分析数百万个经过自动性能剖析的基本块,以精确学习不同芯片架构将如何执行计算。重要的是,Ithemal以原始文本作为输入,无需人工为输入数据添加特征。在测试阶段,可将此前未见过的基本块及给定芯片输入Ithemal,它将生成一个数值,表示该芯片执行该代码的速度。

研究人员发现,与传统的手工设计模型相比,Ithemal将准确性误差率降低了50%——此处的误差指预测速度与实际速度之间的差值。此外,在其后续论文中,他们表明,在跨多个不同领域的各类基本块上,Ithemal的误差率为10%,而英特尔的性能预测模型误差率为20%。

门迪斯表示,该工具现在使人们更容易快速了解任何新芯片架构的性能速度。例如,谷歌新推出的专用于神经网络的张量处理单元(TPU)等特定领域架构目前正在构建之中,但尚未被广泛理解。“如果你想针对某种新架构训练模型,只需从该架构收集更多数据,通过我们的性能剖析器运行这些数据,利用这些信息训练Ithemal,你就得到了一个可预测性能的模型,”门迪斯说。

接下来,研究人员正在研究使模型具备可解释性的方法。机器学习大多是黑箱,因此并不清楚某个特定模型为何做出这样的预测。“我们的模型显示,处理器执行一个基本块需要10个周期。现在,我们正努力弄清原因,”卡宾表示,“这种精细程度的粒度,对于这类工具而言将极具价值。”

他们还希望利用Ithemal进一步提升Vemal的性能,并实现更好的自动化性能优化。

授权与转载
世界经济论坛发布的文章,可依据《知识共享署名-非商业性使用-禁止演绎4.0国际公共许可协议》以及我方《使用条款》进行转载。 本文所表达的观点仅代表作者个人立场,并不代表世界经济论坛的观点。