Ianna Osborne
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.
Session
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.