Speaker
Mr
Johannes de Fine Licht
(CERN)
Description
The Geant-Vector prototype is an effort to address the demand for increased performance in HEP experiment simulation software. By reorganizing particle transport towards a vector-centric data layout, the projects aims for efficient use of SIMD instructions on modern CPUs, as well as co-processors such as GPUs and Xeon Phi.
The geometry is an important part of particle transport, consuming a significant fraction of processing time during simulation. A next generation geometry library must be adaptable to scalar, vector and accelerator/GPU platforms. To avoid the large potential effort going into developing and maintaining distinct solutions, we want a single code base that can be utilized on multiple platforms and for various use cases.
We report on our solution: by employing C++ templating techniques we can adapt geometry operations to SIMD processing, thus enabling the development of abstract algorithms that compile to efficient, architecture-specific code. We introduce the concept of modular "backends", separating architecture specific code and geometrical algorithms, thereby allowing distinct implementation and validation. We present the templating, compilation and structural architecture employed to achieve this code generality. Benchmarks of methods for navigation in detector geometry will be shown, demonstrating abstracted algorithms compiled to scalar, SSE, AVX and CUDA instructions. By allowing users to dynamically dispatch work to the most suitable processing units at runtime, we can greatly increase hardware occupancy without inflating the code base. Finally the advantages and disadvantages of a generalized approach will be discussed.
Primary authors
Mr
Andrei Gheata
(CERN)
Mr
Gabriele Cosmo
(CERN)
Mr
Georgios Bitzes
(CERN)
Mr
Guilherme Lima
(Fermilab)
Mr
Johannes de Fine Licht
(CERN)
Mr
John Apostolakis
(CERN)
Mr
Laurent Duhem
(Intel)
Mrs
Marilena Bandieramonte
(CERN)
Mr
Sandro Wenzel
(CERN)
Ms
Tatiana Nikitina
(CERN)