Exocompilation for productive programming of hardware accelerators

Exocompilation for productive programming of hardware accelerators
复制标题

DOI:
10.1145/3519939.3523446
复制
发表时间:
2022-06
期刊:
Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Yuka Ikarashi;G. Bernstein;Alex Reinking;Hasan Genç;Jonathan Ragan-Kelley
Yuka Ikarashi;G. Bernstein;Alex Reinking;Hasan Genç;Jonathan Ragan-Kelley
中科院分区:
其他
文献类型:
--
作者:
Yuka Ikarashi;G. Bernstein;Alex Reinking;Hasan Genç;Jonathan Ragan-Kelley

文献摘要

相似文献

高性能内核库对于在许多应用中利用加速器和专业说明至关重要。由于编译器很难扩展以支持多样化和快速发展的硬件目标,并且自动优化通常不足以保证最先进的性能,因此这些库通常仍在低级C和组装中手动地编码和优化。为了更好地支持针对专业硬件的高性能库的开发,我们根据外交的原理提出了一种新的编程语言,即EXO:外部化目标代码生成支持和对用户级代码的优化政策。 EXO允许在用户库中定义自定义的硬件说明,专业记忆和加速器配置状态。它建立在用户计划的想法上,以外部化硬件映射和优化决策。时间表被定义为语言中可复合的重写,我们开发了一组效果分析,通过这些转换来保证程序等效性和记忆安全性。我们表明,EXO可以为嵌入式神经加速器和具有AVX-512扩展的嵌入式神经加速器和X86快速开发,每个代码均具有AVX-512扩展。
High-performance kernel libraries are critical to exploiting accelerators and specialized instructions in many applications. Because compilers are difficult to extend to support diverse and rapidly-evolving hardware targets, and automatic optimization is often insufficient to guarantee state-of-the-art performance, these libraries are commonly still coded and optimized by hand, at great expense, in low-level C and assembly. To better support development of high-performance libraries for specialized hardware, we propose a new programming language, Exo, based on the principle of exocompilation: externalizing target-specific code generation support and optimization policies to user-level code. Exo allows custom hardware instructions, specialized memories, and accelerator configuration state to be defined in user libraries. It builds on the idea of user scheduling to externalize hardware mapping and optimization decisions. Schedules are defined as composable rewrites within the language, and we develop a set of effect analyses which guarantee program equivalence and memory safety through these transformations. We show that Exo enables rapid development of state-of-the-art matrix-matrix multiply and convolutional neural network kernels, for both an embedded neural accelerator and x86 with AVX-512 extensions, in a few dozen lines of code each.