Advancements in a GPU Monte Carlo simulator for radiotherapy 2016 GPU Technology Conference Shogo Okada <shogo@post.kek.jp> Koichi Murakami <koichi.murakami@kek.jp> Nick Henderson <nwh@stanford.edu> (speaking)
Collaboration • Makoto Asai, SLAC • Joseph Perl, SLAC • Andrea Dotti, SLAC • Takashi Sasaki, KEK • Akinori Kimura, Ashikaga Institute of Technology • Margot Gerritsen, ICME, Stanford
Big Picture
( ~ p, k ) x, ~ k ∈ { γ , e − , e + , . . . } Goal: record energy deposited in material
LISA Geant4 • Extensive toolkit for simulation of particles traveling through matter ATLAS • Supports wide variety of physics models, geometries, and materials • Users can add their own • Used in numerous and diverse application areas • high energy physics • medical physics • spacecraft • semiconductor devices • biology research gMocren
MPEXS • Adaptation of core Geant4 algorithm to CUDA • Design inspired by structure of Geant4 in terms of modularization and separation of conerns • Low energy electromagnetic physics models suitable for simulation of X-ray radiotherapy • Model material as water with variable density, a common practice in medical physics for X-ray therapy • Supported particles: photon, electron, positron (easily extended)
MPEXS — algorithm details • Each CUDA thread tracks an active particle • Physics processes store secondary particles in thread-local stacks • Energy is atomically deposited to a global dose array (via atomicAdd )
MPEXS — validation & performance
Dose Distribution of slab phantoms z y Verification for Dose Distribution - phantom size : 30.5 x 30.5 x 30 cm - voxel size : 5 x 5 x 2 mm - field size : 10 cm 2 - SSD : 100 cm - slab materials : air (1) water (2) lung (3) bone source Beam particle and its initial kinetic energy: density - electron with 20MeV water 1.0 g/cm 3 - photon with 6MV Linac lung 0.26 g/cm 3 - photon with 18MV Linac bone 1.85 g/cm 3 air 0.0012 g/cm 3
Comparison of depth dose for γ 6MV (1) water depth dose distribution -3 10 × dose (Gy) G4 0.3 G4CU 0.25 − G4 v9.6.3 � 0.2 − G4CU 0.15 • x-axis: z-direction (cm) 0.1 • y-axis: dose (Gy) 0.05 residual 0.2 0 5 10 15 20 25 30 0.1 • residual = (G4CU − G4) / G4 0 -0.1 -0.2 0 5 10 15 20 25 30 depth (cm) (2) lung (3) bone depth dose distribution depth dose distribution -3 -3 10 × 10 × 0.07 dose (Gy) dose (Gy) G4 G4 0.3 0.06 G4CU G4CU 0.05 0.25 0.04 0.2 0.03 0.15 lung bone 0.02 0.1 0.01 residual 0.2 residual 0 5 10 15 20 25 30 0.2 0 5 10 15 20 25 30 0.1 0.1 0 0 -0.1 -0.1 -0.2 -0.2 0 5 10 15 20 25 30 0 5 10 15 20 25 30 depth (cm) depth (cm)
Comparison of depth dose for γ 18MV (1) water depth dose distribution -3 10 × dose (Gy) G4 0.12 G4CU 0.1 − G4 v9.6.3 � 0.08 − G4CU 0.06 • x-axis: z-direction (cm) 0.04 • y-axis: dose (Gy) 0.02 residual 0.2 0 5 10 15 20 25 30 0.1 • residual = (G4CU − G4) / G4 0 -0.1 -0.2 0 5 10 15 20 25 30 depth (cm) (2) lung (3) bone depth dose distribution depth dose distribution -3 10 -3 × × 10 dose (Gy) dose (Gy) G4 G4 0.12 0.12 G4CU G4CU 0.1 0.1 0.08 0.08 0.06 0.06 lung bone 0.04 0.04 0.02 0.02 residual 0.2 residual 0.2 0 5 10 15 20 25 30 0 5 10 15 20 25 30 0.1 0.1 0 0 -0.1 -0.1 -0.2 -0.2 0 5 10 15 20 25 30 0 5 10 15 20 25 30 depth (cm) depth (cm)
Comparison of depth dose for e- 20MeV (1) water depth dose distribution -3 10 × dose (Gy) 0.18 dose (Gy) G4 -4 10 G4CU 0.16 0.14 -5 − G4 v9.6.3 � 10 0.12 0.1 − G4CU -6 10 log scale 0.08 0.06 0 5 10 15 20 25 30 depth (cm) • x-axis: z-direction (cm) 0.04 0.02 • y-axis: dose (Gy) 0 residual 0.2 0 5 10 15 20 25 30 0.1 • residual = (G4CU − G4) / G4 0 -0.1 -0.2 0 5 10 15 20 25 30 depth (cm) (2) lung (3) bone depth dose distribution depth dose distribution -3 10 × -3 × 10 dose (Gy) dose (Gy) dose (Gy) dose (Gy) 0.18 G4 G4 0.18 -4 -4 10 10 G4CU G4CU 0.16 0.16 log scale log scale 0.14 0.14 -5 10 -5 10 0.12 0.12 0.1 0.1 -6 10 -6 10 0.08 0.08 0 5 10 15 20 25 30 0 5 10 15 20 25 30 lung bone 0.06 depth (cm) depth (cm) 0.06 0.04 0.04 0.02 0.02 0 residual 0 0.2 0 5 10 15 20 25 30 residual 0.2 0 5 10 15 20 25 30 0.1 0.1 0 0 -0.1 -0.1 -0.2 -0.2 0 5 10 15 20 25 30 0 5 10 15 20 25 30 depth (cm) depth (cm)
Computation Time Performance 185~250 times speedup against single-core G4 simulation!! GPU: e- beam with 20MeV Tesla K20c (Kepler architecture) - 2496 cores, 706 MHz - (1) water (2) lung (3) bone 4096 x 128 threads - G4 # of primaries 1.84 1.87 1.65 - [msec/particle] 50M particles -> e- 20MeV - G4CU 500M particles -> γ 6MV, 18MV - 0.00881 0.00958 0.00885 [msec/particle] × speedup factor CPU: 208 195 193 - Xeon E5-2643 v2 3.50 GHz ( = G4 / G4CU ) γ beam with 6MV γ beam with 18MV (1) water (2) lung (3) bone (1) water (2) lung (3) bone G4 0.780 0.822 0.819 0.803 0.857 0.924 [msec/particle] G4CU 0.00336 0.00331 0.00341 0.00433 0.00425 0.00443 [msec/particle] × speedup factor 232 248 240 185 201 208 ( = G4 / G4CU )
MPEXS — key challenges • main challenge: thread divergence • other issues: • interpolation tables • memory bandwidth • many kernel launches?
MPEXS-DNA
Geant4-DNA / MPEXS-DNA • Geant4-DNA: an extension of Geant4 for DNA scale http://geant4-dna.org particle simulation (Microdosimetry simulation) • Electromagnetic interactions ( down to meV ) • Radiolysis of water • Estimate DNA damages using energy loss • MPEXS-DNA — An extension of MPEXS to DNA Physics • Up to 280 times faster than single-CPU core simulation • Collaborators: CENBG (France), KEK (Japan) 1. Physical Phase 2. Chemical Phase Diffusion and reactions for chemical species • Simulation of physical interactions • Calculating dose distributions ∅ 10 nm • Generating chemical species including radical, ions, … EM shower in DNA Chromatine fiber (constituent of chromosomes)
Use cases of microdosimetry simulation • Estimation of effects on human health by chronic radiation exposure • Medical diagnosis, Arline crew, Astronauts in space mission, … • Understanding mechanisms of radiation therapy Medical diagnosis Airline crew Space missions Radiation therapy
DNA Physics Processes Hydrogen Helium atoms Particles Electrons Protons atoms (He ++ , He + , He 0 ) 9 eV - 10 keV Elastic Uehara 100 eV - 1 MeV 100 eV - 10 MeV 10 keV - 1 MeV Hoang Hoang scattering Champion 10 eV - 500 keV 10 eV - 10 keV E 2 Miller Green 1 keV - 400 MeV Emfietzoglou 10 eV - 500 keV Physics Processes Excitation 500 keV - 100 MeV Miller Green 10 keV - 1 MeV Miller Green E 1 Born Born e - Charge 100 eV - 10 MeV 1 keV - 400 MeV 100 eV - 10 MeV — Dingfelder Dingfelder Dingfelder p change 10 eV - 10 keV 100 eV - 500 keV H atom -> p Emfietzoglou Rudd 100 eV - 100 MeV 1 keV - 400 MeV Ionization 10 keV - 1 MeV 500 keV - 100 MeV Rudd Rudd Born Born p e - Vibrational 2 - 100 eV Δ E — — — Michaud et al. excitation Disociative 4 - 13 eV — — — ( ( ( Melton attachment ( ( ( AB + e - -> AB - -> A + B -
An issue of DNA Physics Process The difference in energy loss process (EM vs DNA) Standard EM Physics Standard EM Physics Bethe-Bloch formula • Continues process • Calculating average energy loss at each 2 ln 2 m e c 2 β 2 γ 2 T max 1 � − dE dx = Kz 2 Z − β 2 − δ 1 step with the Bethe-Bloch formula β 2 I 2 A 2 Δ x 1 • No secondaries are generated Δ E 4 Δ x 3 • Discrete process Δ E 1 Δ x 4 Δ x 2 Δ E 3 • Generating a secondary if energy loss is above threshold Δ E 2 DNA physics • Handling as a discrete process DNA Physics • Particles lose their kinetic energy in n o i ionization and excitation processes t a t i c x Δ E 5 Δ E 3 Δ E 1 • Ionization process has no energy e threshold n o -> Generating large amount of i t Δ E 4 a Δ E 6 z Δ E 2 i n secondary particles o i -> Need longer time for tracking all particles
Recommend
More recommend