Predicting Compiler Optimization Performance for High-Performance Computing Applications
dc.contributor.advisor | Dr. Yan Solihin, Committee Chair | en_US |
dc.contributor.advisor | Dr. Gregory T. Byrd, Committee Member | en_US |
dc.contributor.advisor | Dr. Rada Y. Chirkova, Committee Member | en_US |
dc.contributor.author | Venkatagiri, Radha | en_US |
dc.date.accessioned | 2010-04-02T18:07:07Z | |
dc.date.available | 2010-04-02T18:07:07Z | |
dc.date.issued | 2005-08-30 | en_US |
dc.degree.discipline | Computer Engineering | en_US |
dc.degree.level | thesis | en_US |
dc.degree.name | MS | en_US |
dc.description.abstract | High performance computing application developers often spend a large amount of time in tuning their applications. Despite the advances in compilers and compiler optimization techniques, tuning efforts are still largely manual and require many trials and errors. One of the reasons for this is that many compiler optimizations do not always provide performance gain in all cases. Complicating the problem further is the fact that many compiler optimizations help performance in some cases, but hurt performance in other cases in the same application. To make it worse, it may help performance when it runs with a specific input set, but hurt the performance of the same application when it runs with a different input set. The central idea that this work deals with is whether machine learning techniques can be used to automate compiler optimization selection. Artificial Neural Networks (ANN), and Decision Trees (DT) are modelled, trained and used to predict whether Loop Unrolling optimizations should be applied or not for loops of serial programs. Simple loop characteristics such as iteration count, nesting level, and body size, are collected and used as input to the ANN or DT. A very simple microbenchmark is used to train the ANN, and this is used to predict the benefit of loop unrolling across differnt NAS (Serial Version) benchmarks. We find that an ANN trained using the microbenchmark accurately predicts whether loop unrolling is beneficial in 62\% of the cases. BT predicts correctly if loop unrolling is benefial in 82\% of the cases. Furthermore we find that benchmarks such as FT which perform poorly when tested with ANN trained with the microbenchmark yield accurate results in 69\% of the cases when tested using an ANN trained with loops from other NAS benchmarks. Decision trees used to classify loops (as being benefitted from loop unrolling or not) from the NAS benchmarks were found to have an accuracy of 79.54\%. A DT built using the microbenchmark correctly classified NAS loops 53\% of the time. Although the results show promise, we believe that to accurately automate compiler optimization selection, more complex loops may need to be modeled in the microbenchmark and many other factors may need to be taken into account in characterizing each loop nest. | en_US |
dc.identifier.other | etd-08292005-213058 | en_US |
dc.identifier.uri | http://www.lib.ncsu.edu/resolver/1840.16/1752 | |
dc.rights | I hereby certify that, if appropriate, I have obtained and attached hereto a written permission statement from the owner(s) of each third party copyrighted matter to be included in my thesis, dissertation, or project report, allowing distribution as specified below. I certify that the version I submitted is the same as that approved by my advisory committee. I hereby grant to NC State University or its agents the non-exclusive license to archive and make accessible, under the conditions specified below, my thesis, dissertation, or project report in whole or in part in all forms of media, now or hereafter known. I retain all other ownership rights to the copyright of the thesis, dissertation or project report. I also retain the right to use in future works (such as articles or books) all or part of this thesis, dissertation, or project report. | en_US |
dc.subject | Machine Learning | en_US |
dc.subject | Neural Networks | en_US |
dc.subject | High-Performance Computing Applications | en_US |
dc.subject | Performance tuning | en_US |
dc.subject | Compiler Optimization | en_US |
dc.title | Predicting Compiler Optimization Performance for High-Performance Computing Applications | en_US |
Files
Original bundle
1 - 1 of 1