Kernel Tuner

Kernel Tuner greatly simplifies the development of highly-optimized and auto-tuned CUDA, OpenCL, and C code, supporting many advanced use-cases and optimization strategies that speed up the auto-tuning process.

839 commits | Last update: November 18, 2020

Cite this software

Choose a version:
[[ releases.length > 0 ? releases[selectedIndex].doi : conceptDOI ]]
Copy to clipboard
Choose a reference manager file format:
Download file

What Kernel Tuner can do for you

  • Allows developers to easily unit test and auto-tune GPU code
  • Generic auto-tuning of user-defined parameters for CUDA, OpenCL, and C kernels
  • Supports more than 20 different search optimization methods to speedup tuning
  • Successfully used in 5 different eScience projects, across various disciplines

Kernel Tuner simplifies the development of efficient GPU programs, or kernels. It does so by making kernels written in C/C++, OpenCL, or CUDA accessible from Python, while taking care of the required synchronization between data kept in host memory and data kept in device memory.

This has a number of advantages. First, it simplifies auto-tuning of the kernel parameters. In fact, Kernel Tuner comes standard with a variety of strategies for efficiently searching the parameter space, leading to greatly improved performance of tuned kernels. Second, it allows for unit testing of GPU code from within Python.

Kernel Tuner does not add any additional dependencies to the kernel code, and does not require extensive code changes. Furthermore, it is noteworthy that kernels tuned by Kernel Tuner do not require any changes after tuning to make them production ready--tuned kernels can be used as-is from any host programming language.

Read more
  • GPU
  • High performance computing
  • Multi-scale & multi model simulations
  • Real time data analysis
  • Optimized data handling
  • Big data
Programming Language
  • Python
  • CUDA
  • OpenCL
  • Apache-2.0
Source code

Participating organizations


  • Ben van Werkhoven
    Netherlands eScience Center
  • Alessio Sclocco
    Netherlands eScience Center
  • Patrick Bos
    Netherlands eScience Center
  • Inti Pelupessy
    Netherlands eScience Center
  • Felipe Zapata
    Netherlands eScience Center
  • Johannes Hidding
    Netherlands eScience Center
  • Hanno Spreeuw
    Netherlands eScience Center
  • Nicolas Renaud
    Netherlands eScience Center
  • Willem Jan Palenstijn
Show all contributors
Contact person
Ben van Werkhoven
Netherlands eScience Center

Information for page maintainers

OAI-PMH metadata:
citation metadata: