• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    數據中心/云端

    高性能計算的能效:平衡速度與可持續性

    ?

    計算世界正處于巨變的邊緣。

    對計算能力的需求,尤其是高性能計算 (HPC) 逐年增長,這也意味著能源消耗也在增長。然而,潛在的問題當然是,能源是一種具有局限性的資源。因此,世界面臨的問題是,我們如何更好地將計算重點從性能轉移到能效

    在考慮這個問題時,必須考慮到任務完成率與能耗之間的相關性。這種關系通常會被忽略,但它可能是一個關鍵因素。

    本文將探討速度與能效之間的關系,以及向更快完成任務轉變所帶來的影響*.

    以交通運輸為例。

    A horizontal bar chart showing modes of transportation from walking (0) to taking a commercial air flight (1277) showing the energy used per meter transported per person.
    圖 1.交通運輸能效比較

    在物體運動的情況下,在除真空之外的任何其他情況下,阻力與行駛速度的平方成正比。這意味著在給定距離內,行駛速度是行駛速度的兩倍,所需的力和能量是行駛速度的四倍。人員和貨物在地球周圍移動意味著在空氣或水(在物理學中,兩者都是“流體”)中行駛,這個概念有助于解釋為什么行駛速度更快需要更多的能量。

    大多數運輸技術都依賴礦物燃料,因為即使是現在,礦物燃料的能量密度和運行在這些燃料上的引擎的重量也難以美。例如,核能源技術帶來的挑戰包括廢棄物、安全運行所需的專業人員以及重量,這意味著核動力汽車、公共汽車或飛機不會在短期內出現。

    A line chart of Power compared to Integer speed showing that as speed increases, the power goes up, linearly at first, then exponentially.
    圖 2.CPU 功耗與標準化基準分數的比較

    硅處理器與速度有著相同的關系。上一張圖表顯示,通過增加功率(單位時間能量)來提高整數處理速度。與運輸類似,處理器運行得越快,消耗的能量就越多。

    您可能會問,”如今,計算機何不以數十千瓦的功率運行呢?50 年來,計算機的運行速度會越來越快。”

    答案是,隨著處理器速度的不斷提升,它們的體積也在變得越來越小。從能源效率的角度來看,硅元件的縮小使得它們能夠更加高效地工作,因此在相同的功率消耗下,它們能以更高的時鐘頻率運行得更快。簡而言之,這就是所謂的 Dennard 縮放

    多節點并行計算

    HPC 中的一個關鍵概念是,并行計算以犧牲總計算時間為代價減少了掛鐘運行時間。對于包含少量串行操作(對于未啟動的,幾乎全部執行)的 HPC 應用程序,隨著添加更多計算資源,運行時逐漸接近串行操作的運行時。

    這就是我們所說的 阿姆達爾定律

    在考慮并行計算消耗的能量時,這一點很重要。假設計算單元在執行計算時消耗的功率相同,這意味著計算任務在更大和更大的計算資源集合中并行執行時將消耗更多的功率。

    這意味著,隨著計算任務在越來越多的計算資源集合中并行執行,它將消耗更多的能量。同時,該任務運行的時間更短。本調查期間的假設是,通過添加資源來減少運行時間跟不上增量計算資源所需的額外能量,最終會消耗更多的能量。

    或者,正如我們在簡介中所討論的那樣,您想使用的速度越快,消耗的能量就越多。

    測量能源使用情況

    使用 Selene 系統,工程師可以基于 NVIDIA DGX A100 收集各種指標,這些指標通過 Grafana \cite{Grafana} 進行展示。借助其 API,用戶可以查詢單個 CPU、GPU 和電源單元在整個作業或特定時間范圍內隨時間變化的功耗。

    將這些數據與模擬輸出中的時間一起使用,可量化所用的能源。報告的能源消耗數據未考慮以下因素:

    1. 網絡交換基礎設施(包括服務器內部的網卡)
    2. 共享文件系統,用于數據分發和結果收集
    3. 從電源處的交流 (AC) 轉換為直流 (DC),
    4. 數據中心冷卻能耗中的CRAC 單位

    其中最大的誤差是風冷數據中心的第四個項目,與數據中心的用電效率 (PUE) (風冷+1.4,液冷+1.15)密切保持一致。此外,通過將測量的能耗增加 12%,可以近似計算交流到直流的轉換。但是,本次討論側重于能源的比較,忽略了這兩個誤差。

    對于單位和術語,在本文的其余部分中,我們使用瓦特(焦耳/秒)來表示功率,使用千瓦時(千瓦時)來表示能量。

    實驗設置

    ? 每個節點上有效的 NVIDIA InfiniBand 連接
    1 2 4
    每個節點的 GPU 數量 1 ? ? ?
    2 ? ? ?
    4 ? ? ?
    表 1.模擬的執行幾何圖形

    鑒于全球 GPU 加速 HPC 系統的不同配置、HPC 模擬應用程序中加速技術的要求和采用階段,使用不同配置的計算節點執行并行模擬非常有用。這進一步優化了性能和效率。

    上表展示了每種應用程序五種不同擴展方式的對比。為了便于閱讀,下面的圖表采用了統一的視覺表示方法。單個 NVIDIA InfiniBand 連接用灰色虛線或黑色虛線表示。雙 InfiniBand 連接用綠色實線表示,而四倍 InfiniBand 連接則用橙色虛線表示。

    HPC 應用程序性能和能耗

    本節深入介紹一些關鍵的 HPC 應用,這些應用代表計算流體動力學、分子動力學、天氣模擬和量子色動力學等學科。

    應用程序和數據集

    應用 版本 數據集
    FUN3D 14.0-d03712b WB.C-30M
    GROMACS 2023 STMV (h-bond)
    圖標 2.6.5 QUBICC 10 千米分辨率
    develop_7ac70ce Tersoff (85M 個原子)
    MILC gauge-action-quda_16a2d47119 NERSC Large
    表 2.用于本研究的 HPC 仿真應用程序

    FUN3D

    FUN3D 于 20 世紀 80 年代首次編寫,旨在研究算法,并開發新的非結構化網格流體動力學模擬方法,用于至跨音速流態的不可壓縮流。在過去 40 年中,該項目已發展成為一套工具,不僅涵蓋分析,還涵蓋基于伴隨的誤差估計、網格適應和設計優化。它還處理至高超聲速的流態。

    目前,美國公民代碼、研究人員、學術界和行業用戶都在利用 FUN3D.例如,波音、Lockheed、Cessna、New Piper 等公司已將這些工具用于高架、巡航性能和革命性概念研究等應用程序。

    GROMACS

    GROMACS 是一種分子動力學軟件包,它將牛頓運動方程用于包含數億到數百萬個粒子的系統。它主要針對具有許多復雜鍵合作用的生化分子(如蛋白質、脂類和核酸)而設計。GROMACS 在計算非鍵合作用(通常在模擬中占主導地位)方面速度極快,許多團隊還將其用于非生物系統(例如聚合物)的研究。

    GROMACS 支持現代分子動力學實現中的所有常用算法。

    ICOsahder 非流體靜態建模框架

    ICON 建模框架是 Deutscher Wetterdienst (DWD) 和 Max-Planck 氣象研究所的聯合項目,旨在開發統一的新一代全球數值天氣預報 (NWP) 和氣候建模系統。ICON 建模框架于 2015 年 1 月開始在 DWD 的預報系統中運行。

    ICON 與其他 NWP 工具不同,因為它具有更好的保護特性,并且強制要求精確的局部質量保護和質量一致的傳輸。

    它認識到氣候是一個全球性問題,因此致力于在未來的大規模并行 HPC 架構上實現更好的可擴展性。

    大規模原子/分子并行模擬器

    大規模原子/分子大規模并行模擬器 (LAMMPS) 是一種經典的分子動力學代碼。顧名思義,它專為在并行機器上良好運行而設計。

    它的重點是材料建模。因此,它包含固態材料(金屬、半導體)軟物質(生物分子、聚合物)以及粗粒度或中間系統的潛在模型。LAMMPS 使用消息傳遞技術和模擬領域的空間分解實現并行性。其許多模型的版本在 CPU 和 GPU 上都提供加速性能。

    MIMD 格點計算協作

    MIMD 格點計算協作(MILC)是一個合作項目,由研究亞原子物理學中的強相互作用理論(也稱為量子色動力學 (QCD))的科學家使用和維護。MILC 在 MIMD 并行機器上執行四維 SU(3) 格規理論的模擬。MILC 公開用于研究目的,使用 MILC 或基于此代碼衍生的作品的出版物應承認這種用途。

    并行可擴展性

    在以下圖形中,我們展示了一個無量次的加速,即以標準方式計算的“強擴展”:

    SPEEDUP = \frac{runtime_{1\ GPU \ and\ 1\ IB}}{runtime_{n\ GPUs\ and\ m\ IB}}=0

    Parallel SPEEDUP 通常使用“理想”的速度來繪制,其中使用一個計算資源的速度為 1,使用兩個資源單元的速度為 2,以此類推。這里沒有這樣做,因為顯示了多個縮放跟蹤,當每個圖形都有自己的理想速度參考時,數據會變得非常擁擠。

    每個節點的 GPU 數量和每個節點掃描的啟用 CX6 EDR InfiniBand 連接數量在圖例中使用**GPU/節點*-**IB/節點*進行顯示。

    Left side: FUN3D Speedup showing GPU per node and IB connections per node perform the same starting with one GPU and diverge slightly when scaled out to 128 GPUs with the 2-2 configuration being the most performant, and the max performance point at 64 GPUs.
    圖 3.使用 FUN3D 的 FUN3D 加速相對于四個 GPU 繪制,每個 GPU 都有一個活動 GPU 和 InfiniBand 連接
    GROMACS speedup showing the 4-1 configuration being a poor choice, and both the 2-2 and 4-4 configurations scaling very well.
    圖 4.相對于使用一個 InfiniBand 連接的一個 GPU 和一個節點的 GROMACS 加速圖
    All ICON configurations scaling from 64, almost identical except 4-1  is 10% worse.
    圖 5.圖標加速使用一個 GPU 和一個活動的 InfiniBand 連接,相對于 64 個 GPU 進行 ICON 繪制
    All LAMMPS configurations scaling almost identically except 4-1 is 20% worse.
    圖 6.LAMMPS加速與 LAMMPS 相對于 8 個 GPU (一個 GPU 和一個活動的 InfiniBand 連接)繪制的
    MILC speedup scaled from 32 to 256 GPUs where 4-2 and 4-4 configurations scale the best and reach the highest performance.
    圖 7.相對于具有一個 GPU 和一個活動 InfiniBand 連接的 32 個節點的 MILC 加速圖

    圖 3 至圖 7 顯示了每個模擬的可擴展性。通常,大多數數據都遵循基于阿姆達爾定律的預期趨勢。一個值得注意的例外是,使用四個 GPU 和一個 InfiniBand 連接的 GROMACS 配置(標記為 4-1)。此配置最初呈現負擴展,這意味著在開始擴展之前,隨著資源的添加,其速度會降低。

    給定網絡配置,擴展似乎受網絡帶寬和每個并行線程嘗試通信的數據的約束。隨著資源數量在 16 到 32 GPU 之間增長,任務達到了不再受帶寬限制的程度,并在一定程度上進行擴展。

    對于 ICON 和 LAMMPS,4-1 配置也有類似的異常行為,盡管兩者的擴展比 GROMACS 要容易得多。

    同樣值得注意的是,4-4 配置并不總是最佳性能。對于 FUN3D (2-2) 和 MILC 的一部分 (4-2) 而言,擴展其他配置會通過較小的利潤空間顯示出卓越的性能。但是,在所有情況下,4 – 4 配置都是最佳配置之一。

    能源使用

    ICON uses the most energy, ranging from 17–37 kWh, linearly growing as it scales. MILC's energy consumption has the same shape but ranges between 10 and 30 kWh. FUN3D, LAMMPS, and GROMACS all use less than 5 kWh, and slope up to the right, with LAMMPS being the flattest, ranging between 2.5 and 4 kWh on 16-256 GPUs.
    圖 8.每個節點上運行 4 個 GPU 和 4 個 InfiniBand 連接的 HPC 應用程序的能耗

    為簡潔起見,圖 8 僅顯示了一個圖中 4 個 GPU 和 4 個 IB 連接 (4-4) 的能耗。每次模擬使用的能耗是任意的,可以通過更改問題大小或分析類型來調整。需要注意兩個相關特征:

    1. 每個應用程序的斜率為正,這意味著它們在擴展時消耗更多的能量。
    2. 一些應用程序(如 FUN3D)會迅速增加使用的能源,而其他應用程序(如 LAMMPS)則會逐漸增加。

    與能源到解決方案相比,解決問題所需的時間

    有人可能會從圖 8 中得出結論,運行這些模擬的最佳配置是最大限度地減少每次模擬使用的資源數量。雖然從能源角度得出的結論是正確的,但除了能源之外,還有更多的目標需要考慮。

    例如,在研究人員在項目截止日期前開展工作時,解決問題的時間至關重要。或者,在商業企業中,通常需要最終數據才能啟動制造流程并準備好產品上市。在這種情況下,解決問題的時間也可能超過更早生成模擬輸出所需的額外能源。

    因此,這是一個具有多個解的多目標優化問題,具體取決于每個已定義目標的權重。

    理想案例

    在探索目標之前,請考慮以下理想情況:

    完美并行(意味著沒有序列化操作)加速的 HPC 應用程序,可隨著添加其他處理器而線性擴展。以圖形方式, 加速曲線就是一條從 (11) 開始,然后向上和向右傾斜 1.0 的線。

    對于此類應用程序,現在考慮能耗。如果添加的每個處理器消耗相同的功耗,則運行期間的功耗僅為:

    Power = n \times P_1?其中 n 是所用處理器的數量,P1是一個 GPU 使用的功率。

    Energy = Power \times time

    但時間是 n 的反函數,因此我們可以重寫它:

    Energy = P_1 \times time_1

    n 的取消,我們可以看到,在理想情況下,能量不是 GPU 數量的函數,事實上常量。

    Energy= n \times P_1 \times \frac{time_1}{n}

    在一些情況下,HPC 應用程序在并行加速或能源方面并不理想。由于加速是指隨著資源的增加而收益遞減,而能源會隨著資源的增加而大致呈線性增長,因此應該有一定數量的 GPU,其中加速與能源比的比率是最大值。

    更正式地說,假設能量和時間的權重相同:

    SPEEDUP_{Energy} = \frac{SPEEDUP}{EnergyRatio} = \frac{\left [ \frac{runtime_{1\ GPU \ and\ 1\ IB}}{runtime_{n\ GPUs\ and\ m\ IB}} \right ]}{\left [ \frac{energy_{n\ GPUs\ and\ m\ IB}}{energy_{1\ GPUs\ and\ 1\ IB}} \right ]}\\ = \left [ \frac{runtime_{1\ GPU \ and\ 1\ IB}}{runtime_{n\ GPUs\ and\ m\ IB}} \right ] \times \left [ \frac{energy_{n\ GPUs\ and\ m\ IB}}{energy_{1\ GPUs\ and\ 1\ IB}} \right ]


    其中\left [ runtime_{1\ GPU \ and\ 1\ IB} \times energy_{1\ GPU \ and\ 1\ IB}\right ] 保持不變

    因此,最大化:\frac{1}{\left [ runtime_{n\ GPU \ and\ m\ IB} \times energy_{n\ GPU \ and\ m\ IB}\right ]}

    或最小化:runtime_{n\ GPU \ and\ m\ IB} \times energy_{n\ GPU \ and\ m\ IB}

    如果在一個軸上繪制運行時圖,而在另一個軸上繪制能量圖,則要最小化的量就是通過運行時乘以能量來定義的區域。以這種方式定義問題還支持探索多個獨立變量,包括但不限于并行運行中使用的資源數量、GPU 時鐘頻率、網絡延遲、帶寬以及影響運行時和能源使用量的任何其他變量。

    平衡速度和能耗

    以下圖形是運行時和能耗的乘積,其中自變量是并行運行中的 GPU 數量。這些圖形提供了一種方法,用于在 Pareto 前端解決方案中確定一個解決方案,以優化運行時和能耗。

    A curved plot showing decreasing then increasing with a minimum at 16 GPUs. The 4-2 and 4-4 configurations are best {right side}.
    圖 9.運行時=FUN3D 的能耗,顯示至少 16-32 個 GPU
    A less obvious optimum for GROMACS with 2-2 being almost flat between four and 32 GPUs and 4-2 and 4-4 configurations best with the peak at eight GPUs.
    圖 10.GROMACS 的運行時=能量
    ICON Energy * Runtime decreases with GPUs in all cases, slope reaching very close to zero, so 512 GPUs may be optimal. 4-4 and 4-2 configurations are best.
    圖 11.運行時=ICON 能耗
    LAMMPS decreases Runtime * Energy throughout the 8-256 GPU range. 4-4 and 4-2 configurations are best.
    圖 12.運行時=LAMMPS 的能量
    MILC shows a clear minimum at 32 GPUs using 4-4 configuration.
    圖 13.運行時=MILC 的能量

    前面的圖顯示了運行時=能量的變化,因為 5 個應用程序和 5 個 GPU/網絡配置中的每個都根據 GPU 數量進行了擴展。與性能的可擴展性圖不同,我們可以看到,在所有情況下,4-4 配置(提醒,“4 – 4”是指**GPU/節點*-**IB/節點*)都是最好的,4-2 配置偶爾會接近一秒。與可擴展性圖一致,1-1 配置始終是最差配置,這可能是因為每個服務器上的開銷主要是空閑的(即每個節點都有 8 個 A100 GPU 和 8 個 CX6 InfiniBand 適配器)。

    也許更有趣的是,LAMMPS 和 ICON 都表明,對于我們收集的數據,它們在運行時=能量中沒有達到最小值。應該對 LAMMPS 和 ICON 執行更大的運行,以顯示最小值。

    A chart showing energy optimization.
    圖 14:與最高性能相比,使用能量校正加速的影響。帶有“%ECS”的列在 4-4 種配置的 ECS 最大 GPU 數量下

    與最大性能點相比,有機會節省能源和性能成本。如圖 14 所示。未繪制 ICON 和 LAMMPS 是因為它們未顯示優化中的最小值。預期結果是,性能下降幅度小于每次模擬所用的能源,而這正是 FUN3D、GROMACS 和 MILC 的情況。

    探索多節點可擴展性與能源的交叉

    數據中心的發展以及對 AI 探索和使用的擴展將推動對數據中心、數據中心空間、冷卻和電能的需求增加。鑒于礦物燃料產生的電力所占的比例,數據中心能源需求驅動的溫室氣體是一個必須管理的問題。

    NVIDIA 繼續專注于內部變革并影響未來產品設計,最大限度地提高 AI 革命對社會的積極影響。通過使用 NVIDIA 加速計算平臺,研究人員在每單位時間內能夠為每個科學成果消耗更少的能源。節省的能源相當于相應減少的二氧化碳排放量,這將造福地球上的每個人。

    閱讀近期文章,借助 NVIDIA Magnum IO 優化多節點 VASP 仿真的能效,以更深入地了解 VASP 和能效。

    這些簡短的討論和一組結果旨在快速啟動有關改變 HPC 中心分配和跟蹤提供給研究社區的資源的方式的對話。它還可能影響用戶在運行大型并行模擬時考慮其選擇的影響,以及下游影響。

    是時候開始討論 HPC 和 AI 模擬的能源到解決方案以及多目標優化與解決方案時間的平衡了。總有一天,HPC 社區可能會測量每兆瓦時的科學進步,甚至可能是每毫噸 CO2eq 的科學進步,但這在對話開始之前是無法實現的。

    欲了解更多信息,請訪問 NVIDIA 可持續計算 頁面。了解 NERSC 對 NVIDIA 加速平臺的評價。或者查看 Alan Gray 在 NVIDIA 2023 GTC 會議 上關于優化加速平臺以提高效率的演講。

    ?

    +2

    標簽

    人人超碰97caoporen国产