Nitro is a programmer-directed code variant tuning framework, jointly developed by the University of Utah and NVIDIA Research. It utilizes machine learning-based classification to automatically find the best implementation (variant) of a computation for a given input. Nitro provides C++ and Python interfaces for programmers to specify variants, input dataset features, and constraints.
You can download an pre-alpha version of Nitro from here. Alternatively, feel free to clone from the repository directly. For installation instructions and getting started, check out the Quick Start Guide.
Nitro: A Framework for Adaptive Code Variant Tuning
S. Muralidharan, M. Shantharam, M. Hall, M. Garland, B. Catanzaro
28th IEEE International Parallel & Distributed Processing Symposium (IPDPS '14).
Architecture-Adaptive Code Variant Tuning
S. Muralidharan, A. Roy, M. Garland, M. Hall, P. Rai
21st ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16).