Skip to Main Content
Talk Intermediate MIT License (software) First Talk

One Language, All GPU: How Julia Targets different GPU backends from a Single Kernel.

Proposal status is Approved
Session Description

GPU programming is usually synonymous with CUDA and with that comes vendor lock in, a steep learning curve, and code that only runs on NVIDIA hardware. In this talk, I'll share my experience as one of the maintainers of JuliaGPU, working on AcceleratedKernels.jl and GPUArrays.jl as part of Google Summer of Code, and show how Julia lets you write a single GPU kernel that runs unchanged on NVIDIA, AMD, Intel, and Apple GPUs.

We'll start from the ground up: what a GPU kernel actually is, why "write once, run on any GPU" matters for researchers and developers who don't want to be tied to one hardware vendor, and how KernelAbstractions.jl makes this possible through Julia's compiler infrastructure (GPUCompiler.jl, LLVM based codegen for multiple backends).

I'll walk through code snippets, a simple kernel, running it across backends, and then go deeper into how higher level operations are implemented across the JuliaGPU stack, the performance challenges involved (closing the gap with hand tuned libraries like PyTorch's kernels).

Target Audience:

  • Developers curious about GPU programming.

  • Julia users wanting to use their GPUs without learning CUDA/HIP/etc.

  • Researchers in scientific computing, ML, or data science.

  • Open source contributors interested in compiler/runtime internals.

  • Anyone curious how a single high level language can target wildly different hardware.

FOSS Alignment:

JuliaGPU is a fully open source, community maintained ecosystem. This talk shares not just the technology but the experience of contributing to and maintaining a major open source project, encouraging attendees to get involved in GPU computing without needing access to expensive proprietary toolchains or vendor specific knowledge.

Key Takeaways
  • Rather than writing vendor specific kernel implementations, Julia kernel written with KernelAbstractions.jl can run on NVIDIA, AMD, Intel, and Apple GPUs without rewriting code.

  • Understand the layered structure of the JuliaGPU stack (GPUCompiler.jl → KernelAbstractions.jl → GPUArrays.jl/AcceleratedKernels.jl) and how each layer abstracts away vendor specific details.

  • Exposure to writing and running a GPU kernel, including how high level operations get compiled down to hardware specific code.

  • Insight into the performance engineering challenges of cross vendor GPU code where it lags hand tuned vendor libraries and what techniques (e.g. better memory access patterns, intrinsics, vectorised loads etc) help close the gap.

  • A look at what it's actually like to contribute to major open source GPU ecosystem, as motivation for attendees to get involved themselves.

References

Session Categories

Technology architecture
Introducing a FOSS project or a new version of a popular project
Talk License: MIT License (software)

Which track are you applying for?

Compilers, Programming Languages and Systems

Speakers

Shreyas Hegde Member | JuliaGPU

I'm currently a Research Intern at the Indian Institute of Technology, Kanpur, working under Prof. Amey Karkare on dynamic offloading and parallelism across heterogeneous compute (CPU/GPU/QPU). I'm also a Google Summer of Code 2026 contributor with The Julia Programming Language, working within the JuliaGPU organization on AcceleratedKernels.jl and GPUArrays.jl, building vendor agnostic GPU kernels and closing performance gaps with hand tuned vendor libraries. I also hold a maintainer role at JuliaGPU.

I'm pursuing a Bachelor of Engineering in Computer and Information Science Engineering at Dayananda Sagar College of Engineering, Bangalore, with interests in Parallel Computing, GPGPU, Compiler Construction (LLVM/MLIR), C++, Julia, and High Performance Computing. I have prior open source contributions to projects including Emscripten and GCC Rust.

Shreyas Hegde
https://www.linkedin.com/in/shreyas-omkar/