High-Level Synthesis of Geant4 Particle Transport Application for FPGA
Abstract
Geant4 is a software toolkit that simulates particle transport in matter and is widely used in high energy, nuclear, and medical physics applications. The toolkit offers a wide range of physics models and geometry configurations to describe particle interactions and tracking in detail. As applications become complex and time-critical, there arises a need to explore custom hardware implementations of the code to reduce simulation times while maintaining high levels of precision. In this thesis, we present the implementation of a Geant4 application on FPGA to explore its acceleration benefits and identify the challenges in porting the code on hardware.
Since the toolkit is written in C++ and uses floating-point algorithms, targeting a hand-coded RTL implementation is not feasible. We use the High-level synthesis technique to synthesize the untimed C++ code to hardware. We present the methodology used to synthesize and optimize the class-based design highlighting the challenges faced in the source-to-source transformation of the code. We also present techniques used to optimize the floating-point operations in the design and their effect on the generated hardware.
Finally, we implement a photon transport application on the Xilinx Alveo U250 FPGA card to analyze the energy deposited by a monoenergetic photon beam in water and compare the implementation with the software for functionality and performance. We also present the successive effect of optimizations on the generated hardware in terms of speed and area and use it to discuss the future directions for improving the simulation performance.