油藏模拟通过模拟复杂场景并与真实的现场数据进行比较,帮助油藏工程师优化资源勘探方法。这扩展到对枯竭油藏的模拟,这些油藏可以重新用于运营中的碳存储。油藏模拟对于旨在提高勘探和生产运营效率的能源公司至关重要。
本文展示了 NVIDIA Grace CPU 如何出色地解决此工作流程中的线性系统问题,与基于 x86 的替代 CPU 相比,Petrobras 实现了高达 4.5 倍的解决方案速度、4.3 倍的 能效 和 1.5 倍的可扩展性。
Petrobras 是一家领先的巴西能源公司,在转向新能源的同时保持其核心油气(O&G)勘探和生产业务。根据 Top500 和 Green500 榜单,Petrobras 拥有拉丁美洲最大的 HPC 基础设施,由 NVIDIA 全栈加速计算平台提供支持。他们的主要工作负载是地震处理和油藏模拟。
该公司率先推出了超深海勘探作业,作业深度可达 7 公里。凭借单井钻井成本高达 1 亿美元,高性能计算(HPC)有助于减少资源勘探的不确定性并提高生产成功率。
油藏模拟和 SolverBR 项目
在油藏模拟中,求解线性系统是最耗时的任务(图 1)。在 Petrobras 模拟管道中,此过程占总计算时间的 70%。因此,优化稀疏线性求解器的性能并保持高精度对于可靠的油藏研究至关重要。
Petrobras 与 UFRJ 和巴西的其他创新研究机构合作开发了 SolverBR,这是一款基于 CPU 的线性方程求解器,使用新型计算并行化技术并高效实现多核。SolverBR 集成到专有地质力学和第三方流量模拟器中,包括 Computer Modelling Group (CMG) 的 IMEX 和 GEM,广泛用于盐前储量的成分模拟。
将 SolverBR 从 x86 移植到 Arm
基于 Arm 的处理器(例如 NVIDIA Grace CPU )在 HPC 应用(包括能源行业)中发展势头正劲。巴西国家石油公司、NVIDIA 和巴西 CESAR 创新中心正在合作,将 SolverBR 移植到 NVIDIA Grace CPU 并进行基准测试,以衡量基于 Arm 的 CPU 的主要优势。
NVIDIA Grace CPU 具有 72 核 Arm Neoverse V2,通过高带宽的 NVIDIA 可扩展一致性结构连接,并配备高带宽和低功耗的双数据速率 5 倍 (LPDDR5X) 内存。
初步结果表明,与本地和云端提供的基于 x86 的旗舰处理器相比,NVIDIA Grace 在解决方案时间(TTS)和预估能耗到解决方案(ETS)方面提供最佳的性能比率。
该项目侧重于维护多平台构建系统,使单个代码库和编译脚本能够在各种平台上无缝工作。这可确保在将 x86 代码库移植到 Arm 时,以尽可能减少所需的工作量实现一致的测试和可靠的性能比较。Arm 生态系统强大的开源编译器和调试器大大促进了这种过渡。
GCC 12.3 因其出色的性能而被选中作为测试编译器。由于 GCC 12.3 或更高版本对 Arm Neoverse V2 核心的优化支持,因此推荐使用 GCC 12.3 或更高版本。移植到 Arm 的过程涉及几个简单的步骤:
- 删除所有特定于 x86 架构的标志,例如
-maxv
、-march
和-mtune
,这些标志在 Arm 中具有不同的含义。 - 使用
-O3
优化级别触发优化步骤,如函数内联、向量化、循环展开、交换和融合。为了获得更好的性能,请考虑使用-Ofast
。 - 将
-mcpu=native
附加到 CFLAGS,以确保编译器自动检测构建系统的 CPU。 - 最后,使用
-flto
作为链路时间优化的可选标志。根据应用的不同,可能还需要-fsigned-char
或-funsigned-char
。
通过使用仅有报文头的库 sse2neon 将 Intel Intrinsics 函数替换为特定于 Arm 的函数,解决编译错误的努力微乎其微。运行时错误得到修复,包括特定编译器优化引起的内存同步问题,这些问题导致指令重排序和随后的浮点精度差异。
在此初始实验中,Petrobras 为每个架构(x86_64 和 aarch64)使用了一组固定的编译标志,而无需实现特定于处理器的调优。目标是理解开箱即用的性能行为。表 1 展示了所使用的编译标志。
架构 | 编译器标志 |
x86_64 | -std=c++17 -O3 -lrt -fPIC -m64 -march=native -mtune=native -fopenmp-simd -fopenmp |
aarch64 | -std=c++17 -O3 -lrt –fPIC -mcpu=native -fopenmp-simd -fopen |
测量性能和能效
我们使用 Singularity 容器在各种平台上复制 SolverBR 计算堆栈,以确保可再现性。我们使用单个定义文件来生成多个运行时容器,从而生成唯一的 `.sif` 文件,每个 CPU 架构对应一个。表 2 指定了所有经过测试的 CPU,包括基于 x86 和基于 Arm 的 CPU,以及本地和云中的 CPU。NVIDIA 针对 Grace 架构进行了实验,而 Petrobras 和 CESAR 则针对其余架构执行了基准测试。
环境 | 处理器 | 架构 | 物理核心 |
本地部署 | Intel Xeon Gold 6248* | x86_64 | 20 |
本地部署 | NVIDIA Grace CPU** | Armv9 | 72 |
AWS EC2 R7g | AWS Graviton3 | Armv8 | 64 |
AWS EC2 R7i | Intel Xeon Platinum 8488C (Sapphire Rapids) | x86_64 | 48 |
AWS EC2 R7a | AMD EPYC 9R14 (Genoa) |
x86_64 | 96 |
* 英特尔 Xeon Gold 6248 是巴西国家石油研究中心(CENPES)的主要本地 CPU 集群 。**NVIDIA Grace CPU 数据使用 GH200 超级芯片平台在单个 NVIDIA Grace SoC 上计算 。
在测试图 1 所示的油藏模拟管线的线性部分时,需要从预盐油气田数据集(Búzios、Proxy 100、Proxy 200、Sapinhoá)和 SPE10 基准模型 中提取 CMG 生成的稀疏矩阵。该示例展示了如何通过第三方组件或软件对 CMG 模拟器进行模块化和扩展。CMG 工程师目前正在探索其他移植模拟器组件和功能的机会,旨在优化各种平台和硬件架构的性能。
图 2 显示了线性方法配置:自适应隐式方法(Adaptive Implicit Method,AIM)、克里洛夫子空间投影广义最小残差(Krylov Subspace Projection Generalized Minimal Residual,KSPGMRES)、约束压力残差(Constrained Pressure Residual,CPR)、域分解(Domain Decomposition,DD)和不完全 LU 分解(Incomplete LU Factorization,ILU)。在 3 年内,所有模型的每个方程系统都被解析了 50 次,共执行了数千次。
图 3 展示了每个模型利用单插槽处理器中最大可用核心数的加速结果。巴西国家石油公司目前在其本地生产 CPU 集群中使用英特尔 Xeon Gold 6248 平台,作为结果标准化的参考点。
NVIDIA Grace 架构性能卓越,在所有模型中实现了最高的性能比,包括:
- 与英特尔至强金牌 6248(Petrobras 基准 CPU)相比,速度提升高达 4.5
- 与英特尔至强铂金 8488C 相比,速度提升高达 2.9 倍
- 与 AMD EPYC 9R14 相比,速度提升高达 1.9 倍
图 4 显示了 NVIDIA Grace CPU 在将每个单插槽处理器的核心总数调至最大时的领先可扩展性,与可扩展性最低的选项相比,最高可达 53%。NVIDIA Grace CPU 凭借 其独特的特性 (包括高效内存带宽、先进的 CPU Scalable Coherent Fabric(NVIDIA SCF)以及采用服务器级 Arm Neoverse V2 核心),展示了此特定工作负载的卓越性能。
为了估算 NVIDIA Grace CPU 与本地 CPU 相比的能效,我们在满载时评估了每个 CPU 的最大热设计功耗(TDP),并根据处理器容量和技术生成情况估算了内存消耗。对于 NVIDIA Grace CPU SoC,CPU 内存消耗约为 250 W,并且以 AMD EPYC 9R14 为基准报告了加速情况。
在所有线性求解器测试中,NVIDIA Grace 在最大负载下展示了最高的估计能效,能效最高可提升 4.3 倍(图 5)
结束语
在 TTS、可扩展性和能效方面,NVIDIA Grace CPU 的性能优于所有经过测试的基于 x86 和基于 Arm 的 CPU。这一成功主要归功于 NVIDIA Grace 架构,该架构专注于能量计算和高应用程序性能。LPDDR5X 内存、统一缓存一致性设计、SCF 和基于 GCC 优化的软件堆栈等关键功能促成了这些结果。
接下来,Petrobras 计划将其端到端的地质力学和油藏模拟器移植到 Arm 并对其进行基准测试,并探索多个 NVIDIA Grace 超级芯片的全部潜力,以进一步缩短解决问题所需的时间。
要详细了解 NVIDIA Grace CPU ,请点播观看 NVIDIA GTC 会议, 在 NVIDIA Grace 上加速线性求解器 。
致谢
这项工作由以下工程师和分析师执行:Felipe Portella(Petrobras)、Jose Roberto Pereira Rodrigues(Petrobras)、Leonardo Gasparini(Petrobras)、Vitor Aquino(CESAR)和 Luigi Marques da Luz(CESAR)。