An automatic OpenCL compute kernel generator for basic linear algebra operations

Philippe Tillet, Karl Rupp, S. Selberherr · IEEE International Conference on High Performance Computing, Data, and Analytics · 2012

An automatic OpenCL compute kernel generator framework for linear algebra operations is presented. It allows for specifying matrix and vector operations in high-level C++ code, while the low-level details of OpenCL compute kernel generation and handling are dealt with in the background. Our approach releases users from considerable additional effort required for learning the details of programming graphics processing units (GPUs), and we demonstrate that higher performance than for a fixed, predefined set of OpenCL compute kernels is obtained due to the minimization of launch overhead. The generator is made available in the Vienna Computing Library (ViennaCL) and is demonstrated here with the stabilized bi-conjugate gradient algorithm, for which performance gains up to 40 percent are observed.

Read the paper · More papers on PaperTik