您的位置:首页 >寻医问药 >

麻省理工学院开发机器学习工具以使代码运行更快

时间:2021-09-06 11:52:08 来源:

麻省理工学院的研究人员建立了一个新的基准测试工具,可以准确预测给定代码在计算机芯片上执行所花费的时间,这可以帮助程序员调整代码以提高性能。

该工具可以预测代码在芯片上运行的速度:机器学习系统应使开发人员能够提高一系列应用程序的计算效率。

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

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

编译器使用该信息来自动优化代码,而开发人员使用该信息来解决将运行该代码的微处理器的性能瓶颈。但是,机器代码的性能模型是由相对较少的专家小组手写的,并且没有得到正确的验证。结果,模拟的性能测量通常会偏离实际结果。

在一系列会议论文中,研究人员描述了一种新颖的机器学习管道,该管道可自动执行此过程,从而使其变得更轻松,更快,更准确。在6月举行的国际机器学习大会上发表的一篇论文(PDF)中,研究人员介绍了Ithemal,这是一种神经网络模型,它以“基本块”(计算指令的基本摘要)的形式训练标记数据,以自动预测给定芯片执行以前看不见的基本块需要多长时间。结果表明,Ithemal的性能要比传统的手动调整模型精确得多。

然后,在11月举行的IEEE国际工作负载特性研讨会上,研究人员展示了(PDF)来自各个领域的基本模块的基准套件,包括可用于验证性能模型的机器学习,编译器,密码学和图形。他们将超过300,000个概要分析的数据块汇集到一个名为BHive的开源数据集中。在评估过程中,Ithemal预测了Intel芯片运行代码的速度要比Intel自身构建的性能模型还要好。

最终,开发人员和编译器可以使用该工具来生成代码,这些代码可以在越来越多的perse和“黑匣子”芯片设计上运行得更快,更高效。“现代计算机处理器是不透明的,极其复杂的并且难以理解。编写对这些处理器执行得尽可能快的计算机代码也面临着巨大的挑战。人工智能实验室(CSAIL)。“该工具是朝着对这些芯片的性能进行完全建模以提高效率的重要一步。”

最近,在12月NeurIPS会议上提交的论文(PDF)中,该团队提出了一种自动生成编译器优化的新技术。具体来说,它们会自动生成一个名为Vemal的算法,该算法将某些代码转换为向量,可用于并行计算。Vemal优于LLVM编译器中使用的手工矢量化算法,LLVM编译器是业界常用的编译器。

从数据中学习

卡宾说,手工设计性能模型可能是“一门妖术”。英特尔提供了超过3000页的详尽文档,描述了其芯片的体系结构。但是,目前只有一小部分专家将建立性能模型,以模拟这些体系结构上的代码执行。

Mendis说:“英特尔的文档既没有错误也不完整,并且英特尔将省略某些事情,因为它是专有的。”“但是,当您使用数据时,您无需了解文档。如果有隐藏的东西,您可以直接从数据中学习。”

为此,研究人员记录了给定微处理器用于计算基本块指令的平均周期数-基本上是启动,执行和关闭的顺序-无需人工干预。使过程自动化可以快速分析成千上万个块。

特定领域的架构

在培训中,Ithemal模型分析了数百万个自动剖析的基本块,以准确了解不同的芯片体系结构将如何执行计算。重要的是,Ithemal将原始文本作为输入,不需要手动向输入数据添加功能。在测试中,Ithemal可以被馈送给以前看不见的基本块和给定的芯片,并且将生成一个数字,指示芯片将以多快的速度执行该代码。

研究人员发现,Ithemal可将准确度的错误率(即预测速度与实际速度之间的差异)降低了50%(与传统的手工模型相比)。此外,在他们的下一篇论文中,他们表明Ithemal的错误率是10%,而Intel性能预测模型在多个不同领域的各种基本模块上的错误率是20%。

Mendis说,该工具现在使人们可以更轻松地快速了解任何新芯片架构的性能速度。例如,目前正在构建特定领域的架构,例如专门用于神经网络的Google新型Tensor处理单元,但并未得到广泛的理解。Mendis说:“如果要在某种新架构上训练模型,只需从该架构收集更多数据,通过我们的探查器运行它,使用该信息来训练Ithemal,现在您就有了一个预测性能的模型,” Mendis说。

接下来,研究人员正在研究使模型可解释的方法。机器学习在很大程度上是一个黑匣子,因此尚不清楚为什么特定模型会做出预测。“我们的模型说一个处理器要执行一个基本块需要10个周期。现在,我们正在尝试找出原因。” Carbin说。“对于这些类型的工具而言,这是一个很好的粒度级别,这将是惊人的。”

他们还希望使用Ithemal进一步增强Vemal的性能,并自动实现更好的性能。

参考:

“不理想:Charith Mendis,Alex Renda,Saman Amarasinghe和Michael Carbin撰写的“准确,便携式和快速的基本块吞吐量估算”。

“ Bive:验证x86-64基本块性能模型的基准套件和MeasurementFramework”,作者:Yishen Chen,Ajay Brahmakshatriya,Charith Mendis,Alex Renda,Eric Atkinson,OndřejSýkora,Saman Amarasinghe和Michael Carbin。

Charith Mendis,Cambridge Yang,Yewen Pu,Saman Amarasinghe和Michael Carbin撰写的“具有模仿学习功能的编译器自动矢量化”。


郑重声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
猜你喜欢