您现在的位置是:首页 >人工智能 > 2022-07-12 17:19:54 来源:

一种新的硬件加速器编程语言

导读 摩尔定律需要一个拥抱。在小型硅计算机芯片上填充晶体管的日子已经屈指可数,它们的救生筏——硬件加速器——是有代价的。在对加速器进行编

摩尔定律需要一个拥抱。在小型硅计算机芯片上填充晶体管的日子已经屈指可数,它们的救生筏——硬件加速器——是有代价的。在对加速器进行编程时——应用程序将某些任务卸载到系统硬件上,特别是为了加速该任务——你必须构建一个全新的软件支持。硬件加速器可以比CPU快几个数量级地运行某些任务,但它们不能开箱即用。软件需要有效地使用加速器的指令,使其与整个应用系统兼容。这转化为大量的工程工作,然后必须为您使用任何编程语言编译代码的新芯片进行维护。

现在,麻省理工学院计算机科学与人工智能实验室(CSAIL)的科学家创建了一种名为“Exo”的新编程语言,用于在硬件加速器上编写高性能代码。Exo帮助低级性能工程师将指定他们想要计算的非常简单的程序转换为非常复杂的程序,这些程序与规范执行相同的操作,但通过使用这些特殊的加速器芯片要快得多。例如,工程师可以使用Exo将简单的矩阵乘法转换为更复杂的程序,通过使用这些特殊的加速器,该程序的运行速度提高了几个数量级。

与其他编程语言和编译器不同,Exo是围绕一个称为“Exocompilation”的概念构建的。“传统上,许多研究都集中在自动化特定硬件的优化过程上,”博士YukaIkarashi说。电气工程和计算机科学专业的学生,​​CSAIL附属机构,他是有关Exo的新论文的主要作者。“这对大多数程序员来说都很好,但对于性能工程师来说,编译器会经常出现问题,因为它有帮助。因为编译器的优化是自动的,所以当它做错事并给你45%的时候,没有好的方法可以修复它效率而不是90%。”

借助Exocompilation,性能工程师重新回到了驾驶座上。选择应用哪些优化、何时以及以何种顺序从编译器外部化的责任返回给性能工程师。这样,他们一方面不必浪费时间与编译器抗争,另一方面也不必手动完成所有工作。同时,Exo负责确保所有这些优化都是正确的。因此,性能工程师可以花时间提高性能,而不是调试复杂的优化代码。

康奈尔大学计算机科学系助理教授AdrianSampson说:“Exo语言是一种对其目标硬件进行参数化的编译器;同一个编译器可以适应许多不同的硬件加速器。”“Exo无需编写一堆杂乱的C++代码来编译新的加速器,而是为您提供了一种抽象、统一的方式来写下您想要定位的硬件的‘形状’。然后您可以重用现有的Exo编译器来适应新的描述,而不是从头开始编写全新的东西。这样的工作的潜在影响是巨大的:如果硬件创新者可以不再担心为每个新硬件创意开发新编译器的成本,他们就可以尝试并发布更多创意.

当今制造的最高性能计算机芯片,例如Google的TPU、Apple的神经引擎或NVIDIA的TensorCores,通过加速称为“关键子程序”、内核或高性能计算(HPC)的东西来为科学计算和机器学习应用程序提供动力。)子程序。

除了笨拙的行话,这些程序是必不可少的。例如,称为基本线性代数子程序(BLAS)的东西是一个“库”或此类子程序的集合,专门用于线性代数计算,并支持许多机器学习任务,如神经网络、天气预报、云计算和药物发现.(BLAS非常重要,以至于它在2021年为JackDongarra赢得了图灵奖。)然而,这些需要数百名工程师设计的新芯片只能在这些HPC软件库允许的范围内发挥作用。

但是,目前这种性能优化仍然是手动完成的,以确保这些芯片上的每个最后一个计算周期都被使用。HPC子程序经常以超过90%的峰值理论效率运行,硬件工程师不遗余力地为这些理论峰值增加5%或10%的速度。因此,如果软件没有进行积极的优化,那么所有的辛勤工作都会被浪费掉——这正是Exo帮助避免的。

Exocompilation的另一个关键部分是性能工程师可以描述他们想要优化的新芯片,而无需修改编译器。传统上,硬件接口的定义由编译器开发人员维护,但对于大多数这些新的加速器芯片,硬件接口是专有的。公司必须维护自己的整个传统编译器的副本(分叉),经过修改以支持他们的特定芯片。除了性能工程师之外,这还需要雇用编译器开发人员团队。

“在Exo中,我们将特定于硬件的后端的定义从exocompiler外部化。这使我们能够更好地将Exo(一个开源项目)和特定于硬件的代码(通常是专有的)分开。我们已经展示了“我们可以使用Exo快速编写与英特尔手动优化的数学内核库一样高性能的代码。我们正在积极与多家公司的工程师和研究人员合作,”加州大学伯克利分校的博士后GilbertBernstein说。

Exo的未来需要探索一种更高效的调度元语言,并扩展其语义以支持并行编程模型,从而将其应用于更多的加速器,包括GPU。

Ikarashi和Bernstein与AlexReinking和HasanGenc共同撰写了这篇论文,他们都是博士。加州大学伯克利分校的学生和麻省理工学院助理教授乔纳森·拉根-凯利。