  Fast 3D data analysis and steering of a 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 3D asynchronous
reconstruction involving parallel read-write operations with storage drives,
CPU-GPU data transfers, and GPU computations. In the asynchronous
reconstruction, 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 2048x2048x2048 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. 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.
