[论文解读] Performance Portable Solid Mechanics via Matrix-Free $p$-Multigrid
本文提出了一种面向高阶有限元固体力学的性能可移植、无矩阵 $p$-多重网格方法,相较于传统低阶方法,实现了高达10倍的仿真速度提升,并在每个自由度上的效率提高了数个数量级。通过利用无矩阵算子、材料模型的自动微分以及代数多重网格粗网格求解器,该方法在多节点CPU和GPU系统上实现了鲁棒、可扩展且针对GPU优化的仿真,同时不牺牲精度或工作流兼容性。
Finite element analysis of solid mechanics is a foundational tool of modern engineering, with low-order finite element methods and assembled sparse matrices representing the industry standard for implicit analysis. We use performance models and numerical experiments to demonstrate that high-order methods greatly reduce the costs to reach engineering tolerances while enabling effective use of GPUs; these data structures also offer up to 2x benefit for linear elements. We demonstrate the reliability, efficiency, and scalability of matrix-free $p$-multigrid methods with algebraic multigrid coarse solvers through large deformation hyperelastic simulations of multiscale structures. We investigate accuracy, cost, and execution time on multi-node CPU and GPU systems for moderate to large models (millions to billions of degrees of freedom) using AMD MI250X (OLCF Crusher), NVIDIA A100 (NERSC Perlmutter), and V100 (LLNL Lassen and OLCF Summit), resulting in order of magnitude efficiency improvements over a broad range of model properties and scales. We discuss efficient matrix-free representation of Jacobians and demonstrate how automatic differentiation enables rapid development of nonlinear material models without impacting debuggability and workflows targeting GPUs. The methods are broadly applicable and amenable to common workflows, presented here via open source libraries that encapsulate all GPU-specific aspects and are accessible to both new and legacy code, allowing application code to be GPU-oblivious without compromising end-to-end performance on GPUs.
研究动机与目标
- 为克服传统低阶有限元方法在固体力学中效率低下的问题,特别是其逼近精度差以及每个自由度的内存/计算成本高的问题。
- 证明在无矩阵框架中采用高阶有限元可显著降低仿真成本,同时保持精度,即使在存在应力奇异性的情况下亦然。
- 在现代HPC架构(CPU和GPU)上实现性能可移植性,且无需应用代码具备GPU感知能力。
- 提供一种实用的、可直接替换的旧有有限元求解器方案,通过高效的数据结构和预条件技术提升性能与可扩展性。
- 在包括AMD MI250X、NVIDIA A100和V100 GPU在内的多种硬件平台上,对大规模真实世界多尺度超弹性问题进行方法验证。
提出的方法
- 该方法采用无矩阵有限元组装,其中在矩阵-向量乘法过程中动态计算单元矩阵,避免存储稀疏矩阵,从而降低内存带宽使用。
- 采用 $p$-多重网格预条件,结合高阶有限元上的切比雪夫或雅可比平滑,实现对非结构化网格和高阶离散化的鲁棒收敛。
- 使用代数多重网格(AMG)作为粗网格求解器,确保在不同问题类型和网格分辨率下均具备鲁棒性和可扩展性。
- 集成自动微分技术,实现非线性材料模型的快速编码与调试,且不带来性能或可维护性损失。
- 框架基于开源库(PETSc、libCEED、hypre),抽象GPU特定代码,实现与GPU无关的应用开发,同时保持端到端高性能。
- 该方法支持任意阶次的几何与解空间,兼容Gmsh生成的高阶网格及可视化工具。
实验结果
研究问题
- RQ1与传统低阶组装稀疏矩阵求解器相比,无矩阵 $p$-多重网格方法在固体力学仿真中是否能实现更优的性能与可扩展性?
- RQ2在无矩阵框架中使用高阶有限元对精度和计算成本有何影响,尤其是在达到工程容差时,特别是在存在奇异性的情况下?
- RQ3无矩阵方法在不需应用层GPU移植的前提下,能在现代GPU和CPU架构上实现多大程度的性能可移植性与高效率?
- RQ4高阶单元对内存带宽饱和与算术强度有何影响?无矩阵计算如何缓解这些瓶颈?
- RQ5自动微分能否在高性能计算环境中有效用于实现复杂非线性材料模型,同时保持性能与可调试性?
主要发现
- 无矩阵 $p$-多重网格方法在每个自由度上的仿真效率相比低阶方法最高可提升10倍,即使在使用线性单元时亦然。
- 在大变形超弹性仿真中,高阶方法将达到工程容差的成本降低了整整一个数量级,即使存在应力奇异性。
- 该方法在多节点CPU和GPU系统(包括AMD MI250X、NVIDIA A100和V100)上表现出强可扩展性,性能持续提升。
- 无矩阵算子降低了内存带宽压力,使方法能够实现高算术强度,在现代硬件上实现超过10 FLOPs/byte的持续性能。
- 自动微分实现了非线性材料模型的快速、正确且可维护的实现,无运行时性能损失,并与GPU执行完全兼容。
- 该方法支持将低阶有限元直接替换为二次及以上阶次的单元,降低预处理与I/O成本,同时提升精度与性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。