线性高阶不连续Galerkin方案的向量化和内存占用的最小化
摘要:对高次不连续Galerkin求解器的计算核心进行一系列优化,针对由SIMD操作、缓存层次和软件设计限制引起的瓶颈进行逐步处理。从数值方案的通用标量实现开始,我们的第一个优化变体应用了最先进的优化技术,通过向量化循环、改进数据布局和使用LIBXSMM库提供的高度优化的矩阵乘法函数执行张量收缩。我们展示了由于内存占用超过L2缓存大小而导致的内存停顿阻碍了向量化收益。因此,我们引入了一个新的核心,采用求和分解方法来减少内核的内存占用和改善缓存局部性。去除了L2缓存瓶颈后,我们能够利用额外的向量化机会,通过引入一个混合的Array-of-Structure-of-Array数据布局来解决矩阵乘法核心和点对点函数实现PDE特定项之间的数据布局冲突。 通过在高多项式次数的基准模拟中评估这最后一个核心,仅有2\%的浮点运算仍使用标量指令,并实现了22.5\%的可用性能。
作者:Jean-Matthieu Gallard, Leonhard Rannabauer, Anne Reinarz, Michael Bader
论文ID:2003.12787
分类:Mathematical Software
分类简称:cs.MS
提交时间:2020-03-31