回答AI如何让机器为你跑得更快

综合动态2021-08-25 10:03:55
最佳答案机器学习系统应该使开发者能够提高一系列应用的计算效率。麻省理工学院的研究人员发明了一种机器学习工具,可以预测计算机芯片在各种应用中

机器学习系统应该使开发者能够提高一系列应用的计算效率。

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

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

为你解答AI如何使机器运行更快

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

在一系列会议论文中,研究人员描述了一种新型的机器学习管道,它可以自动执行这一过程,从而使其更容易、更快、更准确。在6月份国际机器学习会议上发表的一篇论文中,研究人员引入了一种神经网络模型Ithemal,该模型以“基本块”(计算指令的基本片段)的形式训练标记数据,以自动预测其持续时间。使用给定的芯片来执行以前不可见的基本块。结果表明,与传统的人工调整模型相比,Ithemal的性能更加准确。

然后,在11月举行的IEEE国际工作负载表征研讨会上,研究人员展示了一个来自许多领域的基准测试套件,包括机器学习、编译器、密码学和可用于验证性能模型的图形。他们收集了超过300,000个概要数据块到一个名为BHive的开源数据集中。在评估过程中,Ithemal预测英特尔芯片运行代码的速度要优于英特尔自己构建的性能模型。

为你解答AI如何使机器运行更快

最后,开发人员和编译器可以使用这个工具在越来越多样化的“黑盒”芯片设计上生成更快、更高效的代码。现代计算机处理器不透明,极其复杂,难以理解。编写计算机代码以尽可能快地执行这些处理器也面临着巨大的挑战。合著者迈克尔卡宾说,他是电气工程和计算机科学系(EECS)的助理教授,也是计算机科学和工程的研究员。人工智能实验室。“该工具是朝着完全模拟这些芯片的性能以提高效率迈出的重要一步。”

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

从数据中学习

Cabin表示,手工设计性能模型可能是“一个魔术”。英特尔提供了超过3000页的详细文档,描述了其芯片的架构。然而,目前只有少数专家会构建性能模型来模拟代码在这些架构上的执行。

门迪斯说:“英特尔的文档既不错误也不完整,英特尔会省略一些东西,因为它是专有的。”“但是,当你使用数据时,你不需要知道文档。如果有隐藏的东西,可以直接从数据中学习。”

为此,研究人员记录了给定微处理器在没有人工干预的情况下计算基本块指令的平均周期数——基本上是启动、执行和关闭的顺序。自动化该过程可以快速分析数十万或数百万个块。

特定于领域的体系结构

在训练中,Ithemal模型分析了数百万个自动解析的基本块,以准确理解不同芯片架构将如何执行计算。重要的是,Ithemal将原始文本作为输入,不需要手动向输入数据添加函数。在测试中,可以将Ithemal馈送到之前不可见的基本块和给定的芯片,并将生成一个数字来指示芯片执行代码的速度。

研究人员发现,与传统的手动模型相比,Ithemal的准确性(即预测速度和实际速度之间的差异)降低了50%。此外,在他们的下一篇论文中,他们展示了Ithemal的错误率为10%,而英特尔性能预测模型在不同领域的各种基本块上的错误率为20%。

为你解答AI如何使机器运行更快

Mendis说,该工具现在使人们更容易快速了解任何新芯片架构的性能速度。例如,特定领域的架构,如谷歌的神经网络

新型Tensor处理单元,目前正在构建中,但尚未得到广泛理解。Mendis说:“如果要在某个新架构上训练模型,只需从该架构收集更多数据,通过我们的探查器运行它,使用该信息来训练Ithemal,现在您就有了一个预测性能的模型,” Mendis说。

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

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

免责声明:本文由用户上传,如有侵权请联系删除!