Code generation for single-dimension software pipelining of multi-dimensional loops

被引:0
|
作者
Rong, HB [1 ]
Douillet, A [1 ]
Govindarajan, R [1 ]
Gao, GR [1 ]
机构
[1] Univ Delaware, Dept Elect & Comp Engn, Newark, DE 19716 USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Traditionally, software pipelining is applied either to the innermost loop of a given loop nest or from the innermost loop to the outer loops. In a companion paper we proposed a scheduling method, called Single-dimension Software Pipelining (SSP), to software pipeline a multi-dimensional loop nest at an arbitrary loop level. In this paper we describe our solution to SSP code generation. In contrast to traditional software pipelining, SSP handles two distinct repetitive patterns, and thus requires new code generation algorithms. Further these two distinct repetitive patterns complicate register assignment and require two levels of register renaming. As rotating registers support renaming at only one level, our solution is based on a combination of dynamic register renaming (using rotating registers) and static register renaming (using code replication). Finally, code size increase, an even more important issue for SSP than for traditional software-pipelining, is also addressed Optimizations are proposed to reduce code size without significant performance degradation. We first present a code generation scheme and subsequently implement it for the IA-64 architecture, making effective use of rotating registers and predicated execution. We present some initial experimental results, which demonstrate not only the feasibility and correctness of our code generation scheme, but also its code quality.
引用
收藏
页码:175 / 186
页数:12
相关论文
共 50 条
  • [1] Single-dimension software pipelining for multi-dimensional loops
    Rong, HB
    Tang, ZZ
    Govindarajan, R
    Douillet, A
    Gao, GR
    [J]. CGO 2004: INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2004, : 163 - 174
  • [2] Single-dimension multidimensional software pipelining for loops
    Rong, Hongbo
    Tang, Zhizhong
    Govindarajan, R.
    Douillet, Alban
    Gao, Guang R.
    [J]. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2007, 4 (01)
  • [3] Multi-dimensional kernel generation for loop nest Software Pipelining
    Douillet, Alban
    Rong, Hongbo
    Gao, Guang R.
    [J]. EURO-PAR 2006 PARALLEL PROCESSING, 2006, 4128 : 311 - 322
  • [4] A study of software pipelining for multi-dimensional problems
    Bailey, R
    Defoe, D
    Halverson, R
    Simpson, R
    Passos, N
    [J]. PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS, 2000, : 426 - 431
  • [5] Register allocation for software pipelined multi-dimensional loops
    Rong, H
    Douillet, A
    Gao, GR
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (06) : 154 - 167
  • [6] Minimal Unroll Factor for Code Generation of Software Pipelining
    Bachir, Mounira
    Touati, Sid-Ahmed-Ali
    Brault, Frederic
    Gregg, David
    Cohen, Albert
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2013, 41 (01) : 1 - 58
  • [7] Minimal Unroll Factor for Code Generation of Software Pipelining
    Mounira Bachir
    Sid-Ahmed-Ali Touati
    Frederic Brault
    David Gregg
    Albert Cohen
    [J]. International Journal of Parallel Programming, 2013, 41 : 1 - 58
  • [8] Automatic Code Generation for Iterative Multi-dimensional Stencil Computations
    Saied, Mariem
    Gustedt, Jens
    Muller, Gilles
    [J]. PROCEEDINGS OF 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING (HIPC), 2016, : 280 - 289
  • [9] Analysis of Multi-Dimensional Code Couplings
    Beck, Fabian
    [J]. 2013 29TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM), 2013, : 560 - 565
  • [10] Improved spill code generation for software pipelined loops
    Zalamea, J
    Llosa, J
    Ayguadé, E
    Valero, M
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (05) : 134 - 144