-
KLARAPTOR: A Tool for Dynamically Finding Optimal Kernel Launch Parameters Targeting CUDA Programs
Authors:
Alexander Brandt,
Davood Mohajerani,
Marc Moreno Maza,
Jeeva Paudel,
Linxiao Wang
Abstract:
In this paper we present KLARAPTOR (Kernel LAunch parameters RAtional Program estimaTOR), a new tool built on top of the LLVM Pass Framework and NVIDIA CUPTI API to dynamically determine the optimal values of kernel launch parameters of a CUDA program P. To be precise, we describe a novel technique to statically build (at the compile time of P) a so-called rational program R. Using a performance p…
▽ More
In this paper we present KLARAPTOR (Kernel LAunch parameters RAtional Program estimaTOR), a new tool built on top of the LLVM Pass Framework and NVIDIA CUPTI API to dynamically determine the optimal values of kernel launch parameters of a CUDA program P. To be precise, we describe a novel technique to statically build (at the compile time of P) a so-called rational program R. Using a performance prediction model, and knowing particular data and hardware parameters of P at runtime, the program R can automatically and dynamically determine the values of launch parameters of P that will yield optimal performance. Our technique can be applied to parallel programs in general, as well as to generic performance prediction models which account for program and hardware parameters. We are particularly interested in programs targeting manycore accelerators. We have implemented and successfully tested our technique in the context of GPU kernels written in CUDA using the MWP-CWP performance prediction model.
△ Less
Submitted 4 November, 2019;
originally announced November 2019.
-
A Technique for Finding Optimal Program Launch Parameters Targeting Manycore Accelerators
Authors:
Alexander Brandt,
Davood Mohajerani,
Marc Moreno Maza,
Jeeva Paudel,
Lin-Xiao Wang
Abstract:
In this paper, we present a new technique to dynamically determine the values of program parameters in order to optimize the performance of a multithreaded program P. To be precise, we describe a novel technique to statically build another program, say, R, that can dynamically determine the optimal values of program parameters to yield the best program performance for P given values for its data a…
▽ More
In this paper, we present a new technique to dynamically determine the values of program parameters in order to optimize the performance of a multithreaded program P. To be precise, we describe a novel technique to statically build another program, say, R, that can dynamically determine the optimal values of program parameters to yield the best program performance for P given values for its data and hardware parameters. While this technique can be applied to parallel programs in general, we are particularly interested in programs targeting manycore accelerators. Our technique has successfully been employed for GPU kernels using the MWP-CWP performance model for CUDA.
△ Less
Submitted 31 May, 2019;
originally announced June 2019.
-
Comprehensive Optimization of Parametric Kernels for Graphics Processing Units
Authors:
Xiaohui Chen,
Marc Moreno-Maza,
Jeeva Paudel,
Ning Xie
Abstract:
This work deals with the optimization of computer programs targeting Graphics Processing Units (GPUs). The goal is to lift, from programmers to optimizing compilers, the heavy burden of determining program details that are dependent on the hardware characteristics. The expected benefit is to improve robustness, portability and efficiency of the generated computer programs. We address these require…
▽ More
This work deals with the optimization of computer programs targeting Graphics Processing Units (GPUs). The goal is to lift, from programmers to optimizing compilers, the heavy burden of determining program details that are dependent on the hardware characteristics. The expected benefit is to improve robustness, portability and efficiency of the generated computer programs. We address these requirements by: (1) treating machine and program parameters as unknown symbols during code generation, and (2) generating optimized programs in the form of a case discussion, based on the possible values of the machine and program parameters. By taking advantage of recent advances in the area of computer algebra, preliminary experimentation yield promising results.
△ Less
Submitted 12 January, 2018;
originally announced January 2018.