DocumentCode :
2505063
Title :
Towards a source level compiler: source level modulo scheduling
Author :
Ben-Asher, Yosi ; Meisler, Danny
Author_Institution :
Dept. of Comput. Sci., Haifa Univ.
fYear :
0
fDate :
0-0 0
Lastpage :
308
Abstract :
Modulo scheduling is a major optimization of high performance compilers wherein the body of a loop is replaced by an overlapping of instructions from different iterations. Hence the compiler can schedule more instructions in parallel than in the original option. Modulo scheduling, being a scheduling optimization, is a typical backend optimization relying on detailed description of the underlying CPU and its instructions to produce a good scheduling. This work considers the problem of applying modulo scheduling at source level as a loop transformation, using only general information of the underlying CPU architecture. By doing so it is possible: a) create a more retargetable compiler as modulo scheduling is now applied in source level, b) study possible interactions between modulo scheduling and common loop transformations, c) obtain a source level optimizer whose output is readable to the programmer, yet its final output can be efficiently compiled by a relatively "simple" compiler. Experimental results show that source level modulo scheduling can improve performance also when low level modulo scheduling is applied by the final compiler, indicating that high level modulo scheduling and low level modulo scheduling can co-exist to improve performance. An algorithm for source level modulo scheduling modifying the abstract syntax tree of a program is presented. This algorithm has been implemented in an automatic parallelizer (Tiny). Preliminary experiments yield runtime and power improvements also for the ARM CPU for embedded systems
Keywords :
processor scheduling; program compilers; program control structures; CPU architecture; abstract syntax tree; automatic parallelizer; embedded system; loop transformation; scheduling optimization; source level compiler; source level modulo scheduling; source level optimizer; Algorithm design and analysis; Embedded system; Optimizing compilers; Performance analysis; Pipeline processing; Processor scheduling; Program processors; Programming profession; Runtime; Scheduling algorithm;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Parallel Processing Workshops, 2006. ICPP 2006 Workshops. 2006 International Conference on
Conference_Location :
Columbus, OH
ISSN :
1530-2016
Print_ISBN :
0-7695-2637-3
Type :
conf
DOI :
10.1109/ICPPW.2006.74
Filename :
1690714
Link To Document :
بازگشت