🤖 AI Summary
This work addresses the significant performance degradation of high-order finite element stiffness operators in end-to-end scenarios due to inefficient utilization of modern processor matrix engines. Focusing on the stiffness operator in SPECFEM3D running on Arm LX2 CPUs, the study proposes a holistic operator-level co-optimization methodology that transcends conventional approaches limited to optimizing tensor contraction kernels alone. By systematically co-designing pointwise computations, field data layouts, and coefficient memory access patterns—through explicit SIMD optimization, data relayout, and vectorized blocked streaming loads—the approach achieves a matrix engine speedup of 1.6× for the full stiffness operator, up from 1.1×, approaching the theoretical upper bound. Factorization-based diagnostics and contraction-free ablation experiments validate the efficacy and necessity of this full-path co-optimization strategy.
📝 Abstract
Modern processors increasingly provide matrix engines whose peak arithmetic throughput greatly exceeds conventional SIMD, but scientific applications rarely realize this advantage end to end. We examine this gap in SPECFEM3D's dominant stiffness operator on the Arm LX2 CPUs that power the flagship Lineshine supercomputer. Against a matched, high-performance SVE baseline on the same cores, SME's $4\times$ single-precision peak advantage falls to $2.2\times$ for isolated tensor contractions and $1.1\times$ for the complete operator. Our factorized diagnostic attributes the loss to pointwise computation, indirect field movement and synchronization, and irregular coefficient delivery. Explicit SIMD mitigates pointwise work, raising the full-operator speedup to $1.3\times$. Field-layout changes mitigate indirect movement and synchronization, while vector-blocked coefficient streaming reduces irregular-access costs; together they raise speedup to $1.6\times$ at high order. A contraction-free control bounds further contraction-only gains at $1.11$--$1.32\times$. Realizing matrix-engine performance therefore requires co-designing the entire operator path, not merely replacing its contraction kernel.