当前位置: X-MOL 学术ACM Trans. Embed. Comput. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Symbolic Loop Compilation for Tightly Coupled Processor Arrays
ACM Transactions on Embedded Computing Systems ( IF 2.8 ) Pub Date : 2021-07-29 , DOI: 10.1145/3466897
Michael Witterauf 1 , Dominik Walter 1 , Frank Hannig 1 , Jürgen Teich 1
Affiliation  

Tightly Coupled Processor Arrays (TCPAs), a class of massively parallel loop accelerators, allow applications to offload computationally expensive loops for improved performance and energy efficiency. To achieve these two goals, executing a loop on a TCPA requires an efficient generation of specific programs as well as other configuration data for each distinct combination of loop bounds and number of available processing elements (PEs). Since both these parameters are generally unknown at compile time—the number of available PEs due to dynamic resource management, and the loop bounds, because they depend on the problem size—both the programs and configuration data must be generated at runtime. However, pure just-in-time compilation is impractical, because mapping a loop program onto a TCPA entails solving multiple NP-complete problems. As a solution, this article proposes a unique mixed static/dynamic approach called symbolic loop compilation. It is shown that at compile time, the NP-complete problems (modulo scheduling, register allocation, and routing) can still be solved to optimality in a symbolic way resulting in a so-called symbolic configuration , a space-efficient intermediate representation parameterized in the loop bounds and number of PEs. This phase is called symbolic mapping . At runtime, for each requested accelerated execution of a loop program with given loop bounds and known number of available PEs, a concrete configuration , including PE programs and configuration data for all other components, is generated from the symbolic configuration according to these parameter values. This phase is called instantiation . We describe both phases in detail and show that instantiation runs in polynomial time with its most complex step, program instantiation, not directly depending on the number of PEs and thus scaling to arbitrary sizes of TCPAs. To validate the efficiency of this mixed static/dynamic compilation approach, we apply symbolic loop compilation to a set of real-world loop programs from several domains, measuring both compilation time and space requirements. Our experiments confirm that a symbolic configuration is a space-efficient representation suited for systems with little memory—in many cases, a symbolic configuration is smaller than even a single concrete configuration instantiated from it—and that the times for the runtime phase of program instantiation and configuration loading are negligible and moreover independent of the size of the available processor array. To give an example, instantiating a configuration for a matrix-matrix multiplication benchmark takes equally long for 4× 4 and 32× 32 PEs.

中文翻译:

紧耦合处理器阵列的符号循环编译

紧耦合处理器阵列 (TCPA) 是一类大规模并行循环加速器,允许应用程序卸载计算成本高昂的循环,以提高性能和能源效率。为了实现这两个目标,在 TCPA 上执行循环需要针对循环边界和可用处理元素 (PE) 数量的每个不同组合有效地生成特定程序以及其他配置数据。由于这两个参数在编译时通常是未知的——由于动态资源管理,可用 PE 的数量,以及循环边界,因为它们取决于问题的大小——程序和配置数据都必须在运行时生成。然而,纯粹的即时编译是不切实际的,因为将循环程序映射到 TCPA 需要解决多个 NP 完全问题。作为解决方案,本文提出了一种独特的混合静态/动态方法,称为符号循环编译。结果表明,在编译时,NP 完全问题(模调度、寄存器分配和路由)仍然可以以符号方式解决到最优,从而产生所谓的符号配置,在循环边界和 PE 数量中参数化的节省空间的中间表示。这个阶段称为符号映射. 在运行时,对于具有给定循环边界和已知可用 PE 数量的循环程序的每个请求加速执行,具体配置,包括 PE 程序和所有其他组件的配置数据,是根据这些参数值从符号配置生成的。这个阶段称为实例化. 我们详细描述了这两个阶段,并表明实例化在多项式时间内运行,其最复杂的步骤是程序实例化,而不直接取决于 PE 的数量,因此可以扩展到任意大小的 TCPA。为了验证这种混合静态/动态编译方法的效率,我们将符号循环编译应用于来自多个域的一组真实循环程序,测量编译时间和空间要求。我们的实验证实,符号配置是一种节省空间的表示,适用于内存很少的系统——在许多情况下,符号配置甚至比从它实例化的单个具体配置还要小——并且程序实例化和配置加载的运行时阶段的时间可以忽略不计,而且与可用处理器阵列的大小无关。举个例子,为 4×4 和 32×32 PE 实例化一个矩阵-矩阵乘法基准的配置需要同样长的时间。
更新日期:2021-07-29
down
wechat
bug