celeritas-project / celeritas

Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
https://celeritas-project.github.io/celeritas/user/index.html
Other
62 stars 33 forks source link

Improve transport of single track on CPU #1235

Closed esseivaju closed 4 months ago

esseivaju commented 4 months ago

With a single track slot, ActionSequence::execute is a hot path and very sensitive to overhead.

esseivaju commented 4 months ago

With one track slot and skipping post-step actions, Celeritas is ~5% faster than Geant4 on the ATLAS tilecal benchmark. If not skipping post-step actions, we're pretty much even. Batching tracks is still faster, even on CPU.