当前位置: X-MOL 学术Electronics › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Space-Time Loop Tiling for Dynamic Programming Codes
Electronics ( IF 2.6 ) Pub Date : 2021-09-12 , DOI: 10.3390/electronics10182233
Wlodzimierz Bielecki , Marek Palkowski

We present a new space-time loop tiling approach and demonstrate its application for the generation of parallel tiled code of enhanced locality for three dynamic programming algorithms. The technique envisages that, for each loop nest statement, sub-spaces are first generated so that the intersection of them results in space tiles. Space tiles can be enumerated in lexicographical order or in parallel by using the wave-front technique. Then, within each space tile, time slices are formed, which are enumerated in lexicographical order. Target tiles are represented with multiple time slices within each space tile. We explain the basic idea of space-time loop tiling and then illustrate it by means of an example. Then, we present a formal algorithm and prove its correctness. The algorithm is implemented in the publicly available TRACO compiler. Experimental results demonstrate that parallel codes generated by means of the presented approach outperform closely related manually generated ones or those generated by using affine transformations. The main advantage of code generated by means of the presented approach is its enhanced locality due to splitting each larger space tile into multiple smaller tiles represented with time slices.

中文翻译:

动态编程代码的时空循环平铺

我们提出了一种新的时空循环平铺方法,并演示了其在为三种动态编程算法生成增强局部性的并行平铺代码中的应用。该技术设想,对于每个循环嵌套语句,首先生成子空间,以便它们的交集产生空间块。可以使用波前技术按字典顺序或并行枚举空间块。然后,在每个空间瓦片内,形成时间片,按字典顺序枚举。目标图块由每个空间图块内的多个时间片表示。我们解释了时空循环平铺的基本思想,然后通过一个例子来说明它。然后,我们提出一个形式化算法并证明其正确性。该算法在公开可用的 TRACO 编译器中实现。实验结果表明,通过所提出的方法生成的并行代码优于密切相关的手动生成的代码或通过使用仿射变换生成的代码。通过所提出的方法生成的代码的主要优点是其增强的局部性,因为将每个较大的空间瓦片拆分为多个用时间片表示的较小的瓦片。
更新日期:2021-09-12
down
wechat
bug