Flexible Performant GEMM Kernels on GPUs
Not on the map. Why?
Abstract (arXiv)
General Matrix Multiplication or GEMM kernels take centre place in high performance computing and machine learning. Recent NVIDIA GPUs include GEMM accelerators, such as NVIDIA's Tensor Cores. Their exploitation is hampered by the two-language problem: it requires either low-level programming which implies low programmer productivity or using libraries that only offer a limited set of components. Because rephrasing algorithms in terms of established components often introduces overhead, the libraries' lack of flexibility limits the freedom to explore new algorithms. Researchers using GEMMs can hence not enjoy programming productivity, high performance, and research flexibility at once. In this paper we solve this problem. We present three sets of abstractions and interfaces to program GEMMs within the scientific Julia programming language. The interfaces and abstractions are co-designed for researchers' needs and Julia's features to achieve sufficient separation of concerns and flexibility to easily extend basic GEMMs in many different ways without paying a performance price. Comparing our GEMMs to state-of-the-art libraries cuBLAS and CUTLASS, we demonstrate that our performance is in the same ballpark of the libraries, and in some cases even exceeds it, without having to write a single line of code in CUDA C++ or assembly, and without facing flexibility limitations.
Key facts. Cited by 4 papers in the map (data through 14 Oct 2026). First posted on arXiv 25 Sep 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 0; 2025: 2; 2026: 1.
4 papers.
- 2025QiMeng-TensorOp: Automatically Generating High-Performance Tensor Operators with Hardware Primitivescited by 5
- 2025KernelBand: Steering LLM-based Kernel Optimization via Hardware-Aware Multi-Armed Banditscited by 2
- 2026HTAM: Hierarchical Transition-Attended Memory for Operator Optimizationcited by 2
- 2023AMULET: Adaptive Matrix-Multiplication-Like Taskscited by 0
- 2026HTAM: Hierarchical Transition-Attended Memory for Operator Optimization28 May 2026
- 2025KernelBand: Steering LLM-based Kernel Optimization via Hardware-Aware Multi-Armed Bandits24 Nov 2025
- 2025QiMeng-TensorOp: Automatically Generating High-Performance Tensor Operators with Hardware Primitives8 May 2025
- 2023AMULET: Adaptive Matrix-Multiplication-Like Tasks12 May 2023