An approach for dynamically adaptable SIMD vectorization of FEM kernels - Kadlubiak, Kristian; Meca, Ondřej; Říha, Lubomír; Brzobohatý, Tomáš (Computer physics communications, 2024)
The paper focuses on the optimization of the FEM matrix kernels with respect to user-defined parameters such as materials, initial conditions, and boundary conditions that are known during run-time only. Adapting the kernels to specific parameters can save a significant amount of execution time and increase performance. Handling them efficiently is challenging due to the exponential number of potential combinations that the user can specify. The paper presents an approach that combines (a) cross-element vectorization for the easy-to-write transformation of the original scalar code to vectorized one, (b) meta-programming for utilization of a compiler for building sub-kernels tailored for a particular set of parameters, (c) and dynamic polymorphism allowing run-time selection of sub-kernels. We show that the above techniques allow (1) straightforward code modifications, (2) efficient handling of required dynamic behavior with a minor performance penalty for most kernels, and (3) achieving up to 8-fold speedups compared to non-adapted kernels. •High productivity approach for developing and implementing new FEM matrix kernels.•Automated approach that reaches the performance of hand-tuned kernels.•Technique allowing implementation of highly optimized kernels with standard C++ language features.•Approach combining SIMD vectorization with expression optimization with significantly higher impact on performance than pure vectorization.