2026-07-15 –, Johnson Great Room
Awkward Array is a Python library widely used in high-energy physics for representing and manipulating nested, variable-length data. As analysis workloads increasingly rely on GPU acceleration, there is a need for solutions that deliver high performance while remaining accessible to Python developers. In this joint talk between the Awkward and the NVIDIA teams, we present recent developments in GPU execution for Awkward Array using the new native Python CUDA support for CCCL called cuda.compute. This novel Python interface for CCCL that enables users to achieve state-of-the-art GPU performance without dropping down to C++ when building new GPU algorithms.
Our approach fuses sequences of Awkward operations into a minimal set of CUDA kernels, reducing kernel launch overhead and improving memory efficiency. Lazy execution allows entire expression graphs to be optimized before kernel generation, which benefits workflows involving jagged arrays, combinatorial operations, and reductions. In addition, the design enables user-defined Python code to be incorporated into GPU execution paths with minimal boilerplate, lowering the barrier for extending Awkward with custom GPU-accelerated logic.
cuda.compute is a new component in the CUDA Python ecosystem that provides native access to optimized algorithms, such as transforms, reductions, and scans. It also provides a collection of iterators that defer execution of operations and enable fusing multiple operations. We demonstrate performance improvements using this approach over an eager GPU execution strategy for representative analysis patterns and show how it integrates into the existing Python workflows. These developments provide a practical, user-friendly path toward high-performance GPU-accelerated data analysis in Python.
We thank NVIDIA for support and collaboration in developing the CUDA kernels and providing guidance on GPU optimization strategies. Their contributions are gratefully acknowledged.
Outline
I. Background & Motivation: The Reality of "Messy" Awkward Data
Beyond Rectangular Tensors: Real-world data is rarely a simple 2D matrix. Whether it's nested JSON, variable-length genomic sequences, or particle tracks in physics, "jagged" data is everywhere.
The Hardware Bottleneck: Standard GPU libraries often require padding jagged data to fixed lengths, which wastes memory and compute cycles.
The "Memory Wall": Even when using existing GPU kernels, executing them one by one (eagerly) forces the GPU to constantly move data between fast registers and slow global memory.
II. Methods: Introducing cuda.compute and CCCL
A New Python Interface: We introduce cuda.compute, a novel component in the CUDA Python ecosystem that provides native access to CCCL primitives — transforms, reductions, and scans.
The Integration: How the Awkward Array team collaborated with NVIDIA to bridge the gap between high-level Python abstractions and low-level CUDA performance.
From "Fixed" to "Fused": Moving from a library of pre-written, static kernels to a system where users write their own kernel logic in Python, fused into an efficient CUDA kernel tailored to the task at hand.
III. Deep Dive: Kernel Fusion and Lazy Execution
The Expression Graph: How Awkward Array now captures a user's intent — e.g., "filter these events, then calculate a mean" — as a graph rather than executing each step immediately.
Dynamic Compilation: Using
cuda.computeto fuse this graph into a minimal set of CUDA kernels.Efficiency Gains: Fusing operations reduces kernel launch overhead and keeps data on-chip (in L1 cache and registers) as long as possible.
IV. Results: Performance in the Real World
Benchmarking Complexity: We demonstrate performance gains on representative analysis patterns — such as combinatorial matching and nested reductions — common in both high-energy physics (HEP) and large-scale data engineering.
Performance vs. Effort: This approach achieves C++-level performance while requiring zero C++ code from the end user.
Workflow Integration: How this fits into existing ecosystems like the broader SciPy stack.
V. Conclusion & Outlook
Impact: This collaboration makes high-performance GPU analysis accessible to any scientist working with complex data structures.
Next Steps: Current availability in the Awkward Array ecosystem, with future plans to expand the
cuda.computeprimitive set.Acknowledgements: We gratefully acknowledge NVIDIA's support in developing these kernels and optimization strategies.
Research Software Engineer, Princeton University
Ianna Osborne is an open-science advocate and research software engineer specializing in particle physics and high-performance computing. She builds scalable, open-source tools for scientific discovery, maintains the Awkward Array project, and leads international efforts that foster collaboration and sustainable research software.
Ashwin Srinath is a Senior Software Engineer at NVIDIA, where he works on making GPU programming from Python delightful.