• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 數據中心/云端

    聚焦:Petrobras 利用 NVIDIA Grace CPU 加速用于油藏模擬的線性求解器

    油藏模擬通過模擬復雜場景并與真實的現場數據進行比較,幫助油藏工程師優化資源勘探方法。這擴展到對枯竭油藏的模擬,這些油藏可以重新用于運營中的碳存儲。油藏模擬對于旨在提高勘探和生產運營效率的能源公司至關重要。

    本文展示了 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,廣泛用于鹽前儲量的成分模擬。

    Workflow diagram from Petrobras with icons representing reservoir model assets, reservoir simulators, sparse matrices, linear solver configurations, and performance evaluation.
    圖 1.端到端油藏模擬流程

    將 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 的過程涉及幾個簡單的步驟:

    1. 刪除所有特定于 x86 架構的標志,例如 -maxv-march-mtune,這些標志在 Arm 中具有不同的含義。
    2. 使用 -O3 優化級別觸發優化步驟,如函數內聯、向量化、循環展開、交換和融合。為了獲得更好的性能,請考慮使用 -Ofast
    3. -mcpu=native 附加到 CFLAGS,以確保編譯器自動檢測構建系統的 CPU。
    4. 最后,使用 -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
    表 1. x86 和基于 Arm 架構的編譯標志

    測量性能和能效

    我們使用 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
    表 2. 本地和云端基于 x86 和 ARM 處理器的規格

    * 英特爾 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 次,共執行了數千次。

    A side-by-side representation of linear system solver configurations for SPE10 matrices and Búzios, Proxy100, Proxy200, and Sapinhoá matrices.
    圖 2.線性系統求解器配置

    圖 3 展示了每個模型利用單插槽處理器中最大可用核心數的加速結果。巴西國家石油公司目前在其本地生產 CPU 集群中使用英特爾 Xeon Gold 6248 平臺,作為結果標準化的參考點。

    NVIDIA Grace 架構性能卓越,在所有模型中實現了最高的性能比,包括:

    • 與英特爾至強金牌 6248(Petrobras 基準 CPU)相比,速度提升高達 4.5
    • 與英特爾至強鉑金 8488C 相比,速度提升高達 2.9 倍
    • 與 AMD EPYC 9R14 相比,速度提升高達 1.9 倍
    Bar chart showing single-socket speedups with max core count, showing NVIDIA Grace-72 in green, AMD EPYC 9R14-96 in red, AWS Graviton3-64 in orange, Intel Xeon Platinum 8488C-48 in blue, and Intel Xeon Gold 6248-20 in gray.
    圖 3.AMD、AWS、Intel 和 NVIDIA 處理器的單插槽加速,NVIDIA Grace 獲得所有模型中最高的性能比率

    圖 4 顯示了 NVIDIA Grace CPU 在將每個單插槽處理器的核心總數調至最大時的領先可擴展性,與可擴展性最低的選項相比,最高可達 53%。NVIDIA Grace CPU 憑借 其獨特的特性 (包括高效內存帶寬、先進的 CPU Scalable Coherent Fabric(NVIDIA SCF)以及采用服務器級 Arm Neoverse V2 核心),展示了此特定工作負載的卓越性能。

    Line chart showing single-socket solver scalability with NVIDIA Grace in green, AMD EPYC 9R14 in red, AWS Graviton3 in orange, Intel Xeon Platinum 8488C in blue, and Intel Xeon Gold 6248 in gray.
    圖 4. 可擴展性結果因 AMD、AWS、Intel 和 NVIDIA 處理器的核心數量而異,其中 Búzios 模型的 NVIDIA Grace 表現出更高的可擴展性

    為了估算 NVIDIA Grace CPU 與本地 CPU 相比的能效,我們在滿載時評估了每個 CPU 的最大熱設計功耗(TDP),并根據處理器容量和技術生成情況估算了內存消耗。對于 NVIDIA Grace CPU SoC,CPU 內存消耗約為 250 W,并且以 AMD EPYC 9R14 為基準報告了加速情況。

    在所有線性求解器測試中,NVIDIA Grace 在最大負載下展示了最高的估計能效,能效最高可提升 4.3 倍(圖 5)

    Bar chart showing estimated energy efficiency at max load with NVIDIA Grace-72 in green, AMD EPYC 9R14-96 in red, Intel Xeon Platinum 8488C-48 in blue, and Intel Xeon Gold 6248-20 in gray.
    圖 5. AMD、Intel 和 NVIDIA 處理器最大負載下的預估能效比較。

    結束語?

    在 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)。

    ?

    +1

    標簽

    人人超碰97caoporen国产