1.CPU计算采用SIMD并发+OpenMP多线程并行,整个128x128网格FP64精度9个分布函数,工作集约2.53 MiB能够驻留于 L3。
2.充分利用 -Ofast 优化,-fassociative-math收益最大。-Ofast 会改变求和顺序,所以:
- 不保证逐位可复现。
- 与严格 -O3 会有机器误差级差异。
- 对当前 Re=100 方腔结果没有可见影响。
- 不应直接用于需要严格 IEEE 结果或极端稳定性边界的场景。
3.求解器方面采用融合式 pull-stream-and-collide,主体区域通过显式展开的平衡态公式实现AVX-512向量化,并使用持久OpenMP并行区在格点层面并行。
4.分布函数采用按Cache Line(64 bytes)对齐的SoA结构,加快访存速度。
一万步在130ms左右完成,MLUPS (Million Lattice unit Updates Per Second) 超1000。
LBM 求解通常为访存受限任务,通过数据结构和算法优化、充分利用现代CPU架构,能够实现较可观的加速。
对比没有用到上述优化的性能,一万步的计算达到了 4000+ ms 约四秒。
实验平台为i5 - 11400H 6核心12线程,Tiger Lake架构。