Abstract
EGSnrc is a well-known Monte Carlo simulation package for coupled electron–photon transport that is widely used in medical physics application. This paper proposes a parallel implementation of the photon transport mechanism of EGSnrc for graphics processing units (GPUs) using NVIDIA's Compute Unified Device Architecture (CUDA). The implementation is specifically designed for imaging applications in the diagnostic energy range and does not model electrons. No approximations or simplifications of the original EGSnrc code were made other than using single floating-point precision instead of double precision and a different random number generator. To avoid performance penalties due to the random nature of the Monte Carlo method, the simulation was divided into smaller steps that could easily be performed in a parallel fashion suitable for GPUs. Speedups of 20 to 40 times for 643 to 2563 voxels were observed while the accuracy of the simulation was preserved. A detailed analysis of the differences between the CUDA simulation and the original EGSnrc was conducted. The two simulations were found to produce equivalent results for scattered photons and an overall systematic deviation of less than 0.08% was observed for primary photons.
Export citation and abstract BibTeX RIS
General scientific summary. EGSnrc is a software package that is widely used in medical physics applications to simulate the interaction of ionizing radiation with matter. EGSnrc is accurate but computationally intensive. In this paper, implementation of a part of EGSnrc for graphics processing units (GPUs) is proposed. The advantage of using GPUs (commonly known as video cards) is that they are optimized for parallel processing and can thus considerably speed up the simulation. This paper explains how we adapted EGSnrc for GPU parallel processing and describes the results in terms of speedup and accuracy. The GPU implementation was 20 to 40 times faster, depending on the resolution of the simulation, and the results agreed very well with EGSnrc; the differences were less than 0.08%.