Nitro: A Framework for Adaptive Code Variant Tuning
Autotuning systems intelligently navigate a search space of possible implementations of a computation to find the implementation(s) that best meets a specific optimization criteria, usually performance. This paper describes Nitro, a programmer-directed auto tuning framework that facilitates tuning o...
Saved in:
| Published in | Proceedings - IEEE International Parallel and Distributed Processing Symposium pp. 501 - 512 |
|---|---|
| Main Authors | , , , , |
| Format | Conference Proceeding |
| Language | English |
| Published |
IEEE
01.05.2014
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 1479937991 9781479937998 |
| ISSN | 1530-2075 |
| DOI | 10.1109/IPDPS.2014.59 |
Cover
| Summary: | Autotuning systems intelligently navigate a search space of possible implementations of a computation to find the implementation(s) that best meets a specific optimization criteria, usually performance. This paper describes Nitro, a programmer-directed auto tuning framework that facilitates tuning of code variants, or alternative implementations of the same computation. Nitro provides a library interface that permits programmers to express code variants along with meta-information that aids the system in selecting among the set of variants at run time. Machine learning is employed to build a model through training on this meta-information, so that when a new input is presented, Nitro can consult the model to select the appropriate variant. In experiments with five real-world irregular GPU benchmarks from sparse numerical methods, graph computations and sorting, Nitro-tuned variants achieve over 93% of the performance of variants selected through exhaustive search. Further, we describe optimizations and heuristics in Nitro that substantially reduce training time and other overheads. |
|---|---|
| ISBN: | 1479937991 9781479937998 |
| ISSN: | 1530-2075 |
| DOI: | 10.1109/IPDPS.2014.59 |