Research

Paper

TESTING March 19, 2026

High-Performance Portable GPU Primitives for Arbitrary Types and Operators in Julia

Authors

Emmanuel Pilliat

Abstract

Portable GPU frameworks such as Kokkos and RAJA reduce the burden of cross-architecture development but typically incur measurable overhead on fundamental parallel primitives relative to vendor-optimized libraries. We present KernelForge.jl, a Julia library that implements scan, mapreduce, and matrix-vector primitives through a two-layer portable architecture: KernelIntrinsics.jl provides backend-agnostic abstractions for warp-level shuffles, memory fences, and vectorized memory access, while KernelForge.jl builds high-performance algorithms exclusively on top of these interfaces. Evaluated on an NVIDIA A40 and an AMD MI300X, KernelForge.jl matches or exceeds CUB kernel execution time on scan and mapreduce on the A40, and matches cuBLAS throughput on matrix-vector operations across most tested configurations-demonstrating, as a proof of concept, that portable JIT-compiled abstractions can achieve vendor-level throughput without sacrificing generality.

Metadata

arXiv ID: 2603.18695
Provider: ARXIV
Primary Category: cs.DC
Published: 2026-03-19
Fetched: 2026-03-20 06:02

Related papers

Raw Data (Debug)
{
  "raw_xml": "<entry>\n    <id>http://arxiv.org/abs/2603.18695v1</id>\n    <title>High-Performance Portable GPU Primitives for Arbitrary Types and Operators in Julia</title>\n    <updated>2026-03-19T09:53:32Z</updated>\n    <link href='https://arxiv.org/abs/2603.18695v1' rel='alternate' type='text/html'/>\n    <link href='https://arxiv.org/pdf/2603.18695v1' rel='related' title='pdf' type='application/pdf'/>\n    <summary>Portable GPU frameworks such as Kokkos and RAJA reduce the burden of cross-architecture development but typically incur measurable overhead on fundamental parallel primitives relative to vendor-optimized libraries. We present KernelForge.jl, a Julia library that implements scan, mapreduce, and matrix-vector primitives through a two-layer portable architecture: KernelIntrinsics.jl provides backend-agnostic abstractions for warp-level shuffles, memory fences, and vectorized memory access, while KernelForge.jl builds high-performance algorithms exclusively on top of these interfaces. Evaluated on an NVIDIA A40 and an AMD MI300X, KernelForge.jl matches or exceeds CUB kernel execution time on scan and mapreduce on the A40, and matches cuBLAS throughput on matrix-vector operations across most tested configurations-demonstrating, as a proof of concept, that portable JIT-compiled abstractions can achieve vendor-level throughput without sacrificing generality.</summary>\n    <category scheme='http://arxiv.org/schemas/atom' term='cs.DC'/>\n    <category scheme='http://arxiv.org/schemas/atom' term='cs.PF'/>\n    <published>2026-03-19T09:53:32Z</published>\n    <arxiv:primary_category term='cs.DC'/>\n    <author>\n      <name>Emmanuel Pilliat</name>\n      <arxiv:affiliation>ENSAI</arxiv:affiliation>\n    </author>\n  </entry>"
}