Using Numba for GPU acceleration of Neutron Beamline Digital Twins
- ORNL
Digital twins of neutron instruments using Monte Carlo ray tracing have proven to be useful in neutron data analysis and verifying instrument and sample designs. However, these simulations can become quite complex and computationally demanding with tens of billions of neutrons. In this paper, we present a GPU accelerated version of MCViNE using Python and Numba to balance user extensibility with performance. Numba is an open-source just-in-time (JIT) compiler for Python using LLVM to generate efficient machine code for CPUs and GPUs with NVIDIA CUDA. The JIT nature of Numba allowed complex instrument kernels to be generated easily. Initial simulations have shown a speedup between 200-1000x over the original CPU implementation. The performance gain with Numba enables more sophisticated data analysis and impacts neutron scattering science and instrument design.
- Research Organization:
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- AC05-00OR22725
- OSTI ID:
- 1996672
- Resource Relation:
- Conference: SciPy 2023, Scientific Computing with Python Conference - Austin, Texas, United States of America - 7/12/2023 8:00:00 AM-
- Country of Publication:
- United States
- Language:
- English
Similar Records
Automatic Offloading C++ Expression Templates to CUDA Enabled GPUs
GPU-accelerated DNS of compressible turbulent flows