广告

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

2022-07-13 12:48:32 MIT 阅读:
美国麻省理工学院计算机科学与人工智能实验室(CSAIL)研究人员创建了一种名为“Exo”的新编程语言,用于在硬件加速器上编写高性能代码。Exo可以帮助初级性能工程师将简单程序转换为复杂程序,以在加速器芯片上运行,从而将程序运算的速度提高几个数量级。目前,谷歌、苹果和英伟达的加速器设施均通过加速目标程序的“关键子程序”、内核或高性能计算(HPC)子进程来为科学计算和机器学习应用提供动力。而Exo语言有望为这些工作提供更优化的性能。

在编程加速器时(应用程序将某些任务卸载到系统硬件,特别是为了加速该任务),您必须构建一个全新的软件支持。硬件加速器可以以比CPU快几个数量级的速度运行某些任务,但它们不能开箱即用。软件需要有效地使用加速器的指令,使其与整个应用系统兼容,这意味着维护新芯片的工作量非常大。B4Oednc

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

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

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

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

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

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

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

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

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

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

原文链接:A programming language for hardware accelerators;Demi Xia编译B4Oednc

责编:Demi
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 将锂金属电池寿命提高750%,竟然只需要“水”? 随着新能源汽车、移动设备等领域的快速发展,高性能电池的需求日益旺盛,锂金属作为新一代阳极材料,因具有高能量密度、轻量化等优点,备受关注。然而,锂金属电池所存在的寿命短、易起火或爆炸等问题,限制了其广泛的商业应用···
  • 按下ON还是按住OFF,将这种开关电路升级到交流电 2024年10月14日,Nick Cornford发布了一个名为“按下去再按上来,这种开关有哪些门道?”的设计实例(DI)。对于直流电压来说,这是一个非常有趣的DI,但对于交流电压呢?
  • 协同创新,助汽车行业迈向电气化、自动化和互联化的未来 汽车行业正处在电动化和智能化的转型过程中,而半导体企业站在这一变革的最前沿。这一转型带来了重大发展机遇,也带来了诸多挑战,需要颠覆性的技术以及更短的开发周期。加强半导体制造商、一级供应商和汽车制造商之间的合作,对于应对这些复杂情况及推动行业迈向电气化、自动化和互联化的未来至关重要···
  • 将单电源单端输入改成伪A/B类差分输出放大器 该放大器采用Barrie Gilbert的微混频器拓扑结构可将单端输入转换为单电源A/B类电流输出···
  • 加强低功耗FPGA的领先地位 在快速发展的技术领域,从以云端为中心到以网络边缘为中心的创新转变正在重塑数据的处理和利用方式···
  • 打造下一代家用机器人:精心构建智能化、集成化和电源优 ​​​​​​​今天的家用机器人不仅仅是工具,它们已经成为人们的生活伙伴,为日常生活增添了便利性和互动性。设计这些结构紧凑、功能强大的机器需要克服连接性、电源和外形尺寸等方面的严峻挑战,每一次突破都使我们更接近全面集成的智能家居体验···
  • 用LM337改造,让PWM DAC获得1.5 A输出能力 DAC是一种低功耗设备,其功率和电流输出能力仅限于毫瓦和毫安范围。当然,从根本上讲,它们没有理由不与合适的功率输出级配合使用,这确实也是常见的实际做法。不过,为了好玩,这个设计实例采用了不同的供电方式···
  • 意法半导体:让可持续世界从概念变为现实 最近,意法半导体人力资源和企业社会责任总裁Rajita D’Souza分享了意法半导体的可持续发展战略和近期工作重点···
  • 如何制作双变频的航空波段接收机? 随着互联网的发展,中波和短波频段的接收机已成为过去式,更不用说长波了。不过也许在无线电领域中最有趣的活动之一就是收听服务发射机,对于我这个与航空相关的人来说,主要指的是飞机的发射机和空中交通管制塔···
  • 用4200A和矩阵开关搭建自动智能的可靠性评估平台 在现代ULSI电路中沟道热载流子(CHC)诱导的退化是一个重要的与可靠性相关的问题···
  • 新一代MCU向着边缘AI和实时控制发展 在工业和汽车领域,电机驱动和数字电源转换是典型的实时控制系统,要求处理器具有高实时性和强大的数学计算与处理能力。这些应用需要优质的ADC和PWM功能,并通过联动机制,形成高效、有机的实时控制系统。
  • 英特尔Ultra处理器,用普通内存也能超频到10000 MT/s+? 目前内存超频的世界记录是12666MT/s,而想要达成这样的频率不光需要降低CPU频率,还需要辅助液氮等特殊的冷却方案,对内存进行降温。但已有主板可以在没有特殊冷却方案的情况下,超频到10000 MT/s以上···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了