With PQDT Open, you can read the full text of open access dissertations and theses free of charge.
About PQDT Open
Search
Current trends in high performance computing have produced two distinct families of chips. The first one is called complex core, which consists of a few, very architecturally sophisticated cores. The other chip family consists of many simple cores, which lack the advanced features of the complex ones. The two ideological camps have their examples in the current market. The Intel Core Duo family and start-up efforts, like the Tilera 64 chip, are the vanguards for each camp. Currently, complex cores have an advantage over the simple ones due to the fact that most of the system software and applications are written for sequential machines. Moreover, several compiler techniques are stagnant due to its sequential focus point. The rise of complex and simple cores are disturbing the compiler research field and brought back problems which have been ignored for more than three decades.
The major performance objectives for optimizing compilers have been, and still are, loops. Among the most known and researched loop scheduling techniques is software pipelining. Due to the rise of simple cores, many of the hardware features, which supported more advanced software pipelining techniques, have been sacrificed in the battle for more cores. Due to the comeback of the simple cores, we have to rely on the original software pipelining techniques, which were developed over two decades ago.
The software pipelining framework described in this thesis does not rely on any special hardware support. It was implemented in PathScale’s EKOPath compiler for the SiCortex Multiprocessor architecture. The experimental results show a maximum speedup of 15%. The framework will be part of a production quality compiler and it will be open-sourced to the community.
The main contributions of this thesis are: (1) an implementation of a fast life-time sensitive modulo scheduler with limited backtracking, (2) a modulo variable expansion technique to compensate for a missing rotating register file, (3) a register allocator for modulo variable expanded kernels, (4) a new code generator that compensates for missing hardware support, (5) creation of an experimental testbed to analyse the performance of the software pipelining framework.
Advisor: | Gao, Guang R. |
Commitee: | |
School: | University of Delaware |
Department: | Department of Electrical and Computer Engineering |
School Location: | United States -- Delaware |
Source: | MAI 48/01M, Masters Abstracts International |
Source Type: | DISSERTATION |
Subjects: | Electrical engineering, Computer science |
Keywords: | Code generation, Modulo scheduling, Open64, Register allocation, Software pipelining |
Publication Number: | 1469538 |
ISBN: | 978-1-109-38696-7 |