Accelerated Computing research group
ASTRA KernelKit: GPU-accelerated projectors for computed tomography using CuPy

April 2, 2024 — As a result from a collaboration with Centrum Wiskunde & Informatica (CWI), the paper about the ASTRA KernelKit has been published in the Applied Mathematics for Modern Challenges journal.


New computed tomography (CT) algorithms are commonly developed in high-level programming languages, such as Python or MATLAB, while low-level languages are used to support their computation-intensive operations. In the past decade, graphics processing units (GPUs) have become the de-facto standard for large parallel computations in areas such as computational imaging, image processing, and machine learning. Our fast-and-flexible CT reconstruction software, ASTRA Toolbox, therefore already implemented tomographic projectors, i.e., the core computational operations modeling the X-ray physics, using NVIDIA CUDA (Compute Unified Device Architecture), a low-level platform for computation on GPUs. However, the Python-C++ language barrier prevents high-level Python users from modifying these low-level projectors, and, as a consequence, research into new tomographic algorithms is more complex and time-consuming than necessary. With the ASTRA KernelKit, we lifted tomographic projectors to Python and leveraged CuPy, a numerical software like NumPy and SciPy that exposes CUDA to Python, to obtain a fine-grained control over their efficiency and implementation. In this article, we introduced our software and illustrated its importance for high-performance and data-driven applications using examples from deep learning, real-time X-ray CT, and kernel tuning.


Adriaan Graas, Willem Jan Palenstijn, Ben van Werkhoven, Felix Lucka. ASTRA kernelkit: GPU-accelerated projectors for computed tomography using cupy. Applied Mathematics for Modern Challenges. doi:

Written by

Ben van Werkhoven

Ben van Werkhoven is assistant professor at LIACS and head of the Accelerated Computing research group. His research interests lie in High Performance Computing (HPC), software optimization, automatic performance tuning (auto-tuning), energy efficiency, programming models, performance modeling, and the acceleration of scientific applications.