Abstract: Real-time 3D data analysis and steering of a dynamic tomographic experiment by changing environmental conditions or acquisition parameters require fast, close to real-time, 3D reconstruction of large data volumes.
Here we present a performance-optimized TomocuPy package as a GPU alternative to the commonly used CPU-based TomoPy package for tomographic reconstruction. TomocuPy utilizes modern hardware capabilities to organize a fast 3D reconstruction conveyor involving parallel read-write operations with storage drives, CPU-GPU data transfers, and GPU computations. In the conveyor, all the operations are timely overlapped to almost fully hide all data management time.
Since most cameras work with less than 16-bit digital output, we furthermore optimize the memory usage and processing speed by using 16-bit floating-point arithmetic. As a result, 3D reconstruction with TomocuPy became 20-30 times faster than its multithreaded CPU equivalent. Full reconstruction (including read-write operations and methods initialization) of a 2048x20482048 tomographic volume takes less than 7 s on a single Nvidia Tesla A100 and PCIe 4.0 NVMe SSD, and scales almost linearly increasing the data size. To simplify operation at synchrotron beamlines, TomocuPy provides an easy-to-use command-line interface. The efficacy of the package was demonstrated during a tomographic experiment on gas-hydrate formation in porous samples, where a steering option was implemented as a lens-changing mechanism for zooming to regions of interest.