New publication about #HPC: On the usage of the @Arm C Language
Extensions for a High-Order Finite-Element Kernel.
Physics-based three-dimensional numerical simulations are becoming more predictive and have already become essential. As an example in geophysics, simulations at scale with a very fine resolution, including uncertainty quantification procedures are crucial to provide the relevant physical parameters for forward modeling of seismic wave propagation. Consequently, the diversity of HPC architectures available (heterogeneity, high core counts or depth of the memory hierarchy) leads to increasing concerns regarding the portability of applicative performances. Our work shows that using explicit vectorization via Arm C Language Extensions for SVE significantly improve performances.
This is a joint work with Sylvain Jubertie from the University of Orléans and Fabrice Dupros from Arm. The original kernel was written in Fortran at BRGM, the French geological survey. The kernel was of particular interest as compilers fail at properly optimizing it. Autovectorization fails even when helping the compilers with pragmas. Our work consisted in porting the Frotran code to a C++ code with Arm intrinsics. The results from AWS Graviton2 and Marvell ThunderX2 processors show the impact of explicit vectorization with significant speedups on both platforms. Moreover the SVE analysis demonstrates the efficacy of our implementation despite the complexity of the key loops and the irregular memory accesses.
Link to the EAHPC workshop. -> https://arm-hpc.github.io/IEEECluster2020/