Skip to main content
Ctrl K

WISDOM

Workload-Informed Selection for Device-agnostic Matrix-matrix multiplication

The WISDOM project focuses on improving the performance portability of GPU software by making architecture- and workload-specific tuning more automatic and reusable.

ccglib is a portable library for low-precision, complex-valued matrix multiplication on GPUs, supporting both NVIDIA and AMD devices. It was originally developed at the Netherlands eScience Center (NLeSC) and ASTRON as part of the RECRUIT project (2021–2025). However, while ccglib performs well across several architectures, it currently hardcodes a single set of tuning parameters. Applying it to different matrix sizes or GPU architectures requires editing the source code, limiting its practical use in real-world workflows.

We address this by integrating Kernel Launcher, a C++ library that compiles GPU kernels at runtime and selects tuning parameters matched to the target architecture and problem dimensions. Kernel Launcher was developed for MicroHH during ESiWACE2 at NLeSC.

Kernel Launcher relies on wisdom files, which store optimal parameters for multiple architectures and predefined problem sizes. At runtime, it scans these files and selects the configuration that best fits the current workload. The result is a library that delivers tuned performance across architectures and problem sizes without requiring source-code modifications or recompilation.

By integrating Kernel Launcher into ccglib, the WISDOM project enables automatic tuning across diverse GPU architectures and problem sizes. In doing so, it:

  • improves the performance portability of ccglib;
  • broadens the applicability of Kernel Launcher; and
  • deepens practical expertise in GPU performance tuning at NLeSC.

Participating organisations

Netherlands eScience Center

Team

Stijn Heldens
Stijn Heldens
LO
Research Software Engineer
Netherlands eScience Center
0000-0001-8724-8372

Related projects

RECRUIT

Reducing Energy Consumption in Radio-astronomical and Ultrasound Imaging Tools

Updated 17 months ago
Finished

ESiWACE2

For future exascale climate and weather predictions

Updated 46 months ago
Finished

Related software

ccglib

CC

The Complex Common GEMM Library (ccglib) provides mixed-precision matrix-matrix multiplication kernels for complex data.

Updated 12 months ago
5

cudawrappers

CU

The cudawrappers library is a C++ wrapper for the Nvidia C libraries such as the CUDA driver, NVRTC, and cuFFT.

Updated 10 months ago
13

Kernel Launcher

KE

Dynamically compile GPU kernels and launch them easily and safely using C++ magic. Tight integration with Kernel Tuner results in blazing fast CUDA code that is maintainable and performance portable.

Updated 32 months ago
1 2

Kernel Tuner

KE

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.

Updated 36 months ago
159 15