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.
Abstract
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.
Citation
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: https://doi.org/10.3934/ammc.2024004