SoftwareApplication
identifier: 10.5281/zenodo.1220113
name: Kernel Tuner
description: 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.
description: * 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 10+ 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.
code repository: https://github.com/KernelTuner/kernel_tuner
author: https://orcid.org/0000-0001-9607-1142
author: https://orcid.org/0000-0002-8024-0412
author: https://orcid.org/0000-0001-9589-2694
author: 0000-0001-8286-677X
author: https://orcid.org/0000-0002-0948-1176
author: https://orcid.org/0000-0001-8792-6305
author: https://orcid.org/0000-0001-8724-8372
author: 0000-0002-6033-960X
author: 0000-0003-3659-929X
author: https://orcid.org/0000-0003-0511-4763
author: https://orcid.org/0000-0003-3278-0518
author: https://orcid.org/0000-0001-9005-8940
author: https://orcid.org/0000-0002-7550-1796
author: https://orcid.org/0000-0003-2295-8263
author: https://orcid.org/0000-0002-7508-3272
keywords: GPU
keywords: Optimized data handling
keywords: High performance computing
keywords: Big data
keywords: Multi-scale & multi model simulations
keywords: Real time data analysis
programming language: Cuda
programming language: Python
license:
  creative work: creativeWork
    name: Apache-2.0
reference publication: j.future.2018.08.004
reference publication: pmbs54543.2021.00017
reference publication: tevc.2022.3210654
reference publication: pmbs56514.2022.00010

https://orcid.org/0000-0001-9607-1142
type: Person
given name: Bram
family name: Veenboer
name: Bram Veenboer
affiliation: Organization
  name: Astron

https://orcid.org/0000-0002-8024-0412
type: Person
given name: Inti
family name: Pelupessy
name: Inti Pelupessy
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0001-9589-2694
type: Person
given name: Nicolas
family name: Renaud
name: Nicolas Renaud
affiliation: Organization
  name: Netherlands eScience Center

0000-0001-8286-677X
type: Person
given name: Felipe
family name: Zapata
name: Felipe Zapata
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0002-0948-1176
type: Person
given name: Jisk
family name: Attema
name: Jisk Attema
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0001-8792-6305
type: Person
given name: Stijn
family name: Heldens
name: Stijn Heldens
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0001-8724-8372
type: Person
given name: Leon
family name: Oostrum
name: Leon Oostrum
affiliation: Organization
  name: Netherlands eScience Center

0000-0002-6033-960X
type: Person
given name: Patrick
family name: Bos
name: Patrick Bos
affiliation: Organization
  name: Netherlands eScience Center

0000-0003-3659-929X
type: Person
given name: Richard
family name: Schoonhoven
name: Richard Schoonhoven
affiliation: Organization
  name: CWI

https://orcid.org/0000-0003-0511-4763
type: Person
given name: Willem Jan
family name: Palenstijn
name: Willem Jan Palenstijn
affiliation: Organization
  name: Leiden University

https://orcid.org/0000-0003-3278-0518
type: Person
given name: Alessio
family name: Sclocco
name: Alessio Sclocco
role name: Research Software Engineer
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0001-9005-8940
type: Person
given name: Bouwe
family name: Andela
name: Bouwe Andela

https://orcid.org/0000-0002-7550-1796
type: Person
given name: Johannes
family name: Hidding
name: Johannes Hidding
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0003-2295-8263
type: Person
given name: Floris-Jan
family name: Willemsen
name: Floris-Jan Willemsen
affiliation: Organization
  name: Netherlands eScience Center

https://orcid.org/0000-0002-7508-3272
type: Person
given name: Ben
family name: van Werkhoven
name: Ben van Werkhoven
role name: Lead developer
affiliation: Organization
  name: Leiden University

j.future.2018.08.004
type: ScholarlyArticle
name: Kernel Tuner: A search-optimizing GPU code auto-tuner
pagination: 347-358
url: https://doi.org/10.1016%2Fj.future.2018.08.004

pmbs54543.2021.00017
type: ScholarlyArticle
name: Bayesian Optimization for auto-tuning GPU kernels
pagination: 106-117
url: https://doi.org/10.1109%2Fpmbs54543.2021.00017

tevc.2022.3210654
type: ScholarlyArticle
name: Benchmarking Optimization Algorithms for Auto-Tuning GPU Kernels
pagination: 550-564
url: https://doi.org/10.1109%2Ftevc.2022.3210654

pmbs56514.2022.00010
type: ScholarlyArticle
name: Going green: optimizing GPUs for energy efficiency through model-steered auto-tuning
pagination: 48-59
url: https://doi.org/10.1109%2Fpmbs56514.2022.00010