Skip to main navigation Skip to search Skip to main content

Bringing Automatic Differentiation to CUDA with Compiler-Based Source Transformations

Research output: Contribution to journalConference articlepeer-review

Abstract

GPUs have become increasingly popular for their ability to perform parallel operations efficiently, driving interest in General-Purpose GPU Programming. Scientific computing, in particular, stands to benefit greatly from these capabilities. However, parallel programming systems such as CUDA introduce challenges for code transformation tools due to their reliance on low-level hardware management primitives. These challenges make implementing automatic differentiation (AD) for parallel systems particularly complex. CUDA is being widely adopted as an accelerator technology in many scientific algorithms from machine learning to physics simulations. Enabling AD for such codes builds a new valuable capability necessary for advancing scientific computing. Clad is an LLVM/Clang plugin for automatic differentiation that performs source-to-source transformation by traversing the compiler's internal high-level data structures, and generates a function capable of computing derivatives of a given function at compile time. In this paper, we explore how we recently extended Clad to support GPU kernels and functions, as well as kernel launches and CUDA host functions. We will discuss the underlying techniques and real-world applications in scientific computing. Finally, we will examine current limitations and potential future directions for GPU-accelerated differentiation.

Original languageEnglish (US)
Article number024
JournalProceedings of Science
Volume491
DOIs
StatePublished - Feb 3 2026
Event5th MODE Workshop on Differentiable Programming for Experiment Design, MODE 2025 - Kolymbari, Crete, Greece
Duration: Jun 8 2025Jun 13 2025

All Science Journal Classification (ASJC) codes

  • General

Fingerprint

Dive into the research topics of 'Bringing Automatic Differentiation to CUDA with Compiler-Based Source Transformations'. Together they form a unique fingerprint.

Cite this