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 |