加里瑪·科赫哈爾、迪普蒂·切洛帕萊、約書亞·韋奇。HPC 與 AI 創新實驗室,2019 年 10 月
不適用
在當今的 HPC 世界中,AMD 代號為 Rome 的最新一代 EPYC 處理器幾乎不需要介紹。 過去幾個月,我們一直在 HPC 與 AI 創新實驗室 評估羅馬的系統,而 Dell Technologies 最近也宣佈了 支援此處理器架構的伺服器。Rome 系列的第一篇部落格將探討 Rome 處理器架構、如何針對 HPC 效能進行調整,以及提供初始的微效能指標效能。後續部落格將說明 CFD、CAE、分子動力學、氣象模擬及其他應用領域的應用效能。
Rome 是 AMD 第 2 代 EPYC CPU,更新其第 1 代 Naples。我們去年 在這個博客 中討論了那不勒斯。
那不勒斯和羅馬之間最大的架構差異之一有利於 HPC,那就是位於羅馬的新 IO 模具。在羅馬,每個處理器都是一個多晶元封裝,由多達 9 個 小晶元 組成,如圖 1 所示。中央 14 奈米 I/O 晶片可提供所有 I/O 和記憶體功能,例如記憶體控制器、插槽內的 Infinity 網狀架構連結和插槽間連線能力,以及 PCI-e。每個插槽有八個記憶體控制器,支援八個以 3200 MT/秒執行 DDR4 的記憶體通道。單插槽伺服器可支援最多 130 個 PCIe Gen 4 通道。雙插槽系統可支援最多 160 個 PCIe Gen 4 通道。
(圖 1羅馬 多晶片封裝,配備一個中央 IO 晶片和最多八個內核晶片)
中央IO晶元周圍是多達八個7nm內核小晶元。核心小晶片稱為核心快取晶片或 CCD。每個 CCD 都有以 Zen2 微架構、L2 快取記憶體和 32MB L3 快取記憶體為基礎的 CPU 核心。CCD 本身有兩個核心快取複合體 (CCX),每個 CCX 有最多四個核心和 16MB 的 L3 快取記憶體。圖 2 顯示 CCX。
(圖 2 具有四個核心並共用 16MB L3 快取記憶體的 CCX)
不同的 Rome CPU 型號具有不同數量的核心,但都有一個中央 IO 模具。
頂端是 64 核心 CPU 型號,例如 EPYC 7702。lstopo 輸出顯示此處理器每個插槽有 16 個 CCX,每個 CCX 有四個核心,如圖 3 和 4 所示,因此每個插槽產生 64 個核心。每個 CCX 16MB L3,即每個 CCD 32MB L3 使該處理器總共具有 256MB L3 快取記憶體。但請注意,Rome 中的 L3 快取記憶體總數並非由所有核心共用。每個 CCX 中的 16MB L3 快取記憶體是獨立的,僅由 CCX 中的核心共用,如圖 2 所示。
像 EPYC 7402 這樣的 24 核 CPU 具有 128MB 的 L3 快取記憶體。圖 3 和圖 4 中的 lstopo 輸出說明此型號每個 CCX 有三個內核,每個插槽 8 個 CCX。
(圖 3 和 4 64 核心和 24 核心 CPU 的 lstopo 輸出)
無論CCD的數量如何,每個Rome處理器在邏輯上分為四個 象限 ,CCD盡可能均勻地分佈在象限中,每個象限有兩個記憶體通道。中央 IO 晶片可視為在邏輯上支援插槽的四個象限。
羅馬的中央 I/O 模具有助於改善記憶體延遲,而不是在那不勒斯測量的 記憶體延遲 。此外,還可將 CPU 設定為單一 NUMA 網域,讓插槽中所有核心都能進行統一的記憶體存取。下面對此進行了說明。
Rome 處理器中的四個邏輯象限可將 CPU 分割成不同的 NUMA 網域。此設定稱為 每插槽 NUMA 或 NPS。
如果可用,建議將 NPS4 用於 HPC,因為它有望提供最佳記憶體頻寬、最低記憶體延遲,而且我們的應用程式往往可感知 NUMA。在沒有 NPS4 的情況下,我們建議使用 CPU 型號支援的最高 NPS - NPS2,甚至 NPS1。
鑒於 Rome 平台提供多種 NUMA 選項,PowerEdge BIOS 可在 MADT 列舉下使用兩種不同的核心列舉方法。線性列舉會依序為核心編號,填滿一個 CCX、CCD 插槽,然後再移至下一個插槽。在 32c CPU 上,核心 0 至 31 會位於第一個插槽,核心 32-63 則位於第二個插槽。循環列舉會為 NUMA 區域中的核心編號。在這種情況下,偶數編號的核心將位於第一個插槽上,奇數編號的核心將位於第二個插槽上。為簡單起見,我們建議對 HPC 進行線性枚舉。如需在 NPS4 中設定之雙插槽 64c 伺服器上的線性核心列舉範例,請參閱圖 5。在圖中,每盒四個磁芯是一個CCX,每組連續的八個磁芯是一個CCD。
(圖 5 雙插槽系統上的線性核心列舉,每個插槽 64c,8 CCD CPU 機型上的 NPS4 組態)
另一個羅馬特有的 BIOS 選項稱為首選 IO 裝置。這是 InfiniBand 頻寬和訊息速率的重要調諧旋鈕。它可讓平台優先處理一個 IO 裝置的流量。此選項適用於單插槽和雙插槽 Rome 平台,且必須在 BIOS 選單中選取平台中的 InfiniBand 裝置 做為偏好 的裝置,才能在所有 CPU 核心均處於使用中狀態時達到完整訊息傳輸速率。
與那不勒斯類似,羅馬也支援超線程或邏輯處理器。對於 HPC,我們將其保留為禁用狀態,但某些應用程式可以從啟用邏輯處理器中受益。尋找我們後續關於分子動力學應用研究的博客。
與那不勒斯類似,羅馬也允許 CCX作為NUMA域。此選項會將每個 CCX 公開為 NUMA 節點。在配備雙插槽 CPU (每顆 CPU 16 個 CCX) 的系統上,此設定會公開 32 個 NUMA 網域。在此範例中,每個插槽有 8 個 CCD,即 16 個 CCX。每個 CCX 都可以啟用為自己的 NUMA 網域,每個插槽有 16 個 NUMA 節點,雙插槽系統則有 32 個。針對 HPC,我們建議在預設的停用選項中,將 CCX 保留為 NUMA 網域。啟用此選項應有助於虛擬化環境。
與那不勒斯類似,羅馬允許將系統設置為 性能決定論 或 功率決定論 模式。在 效能決定論中,系統會以 CPU 型號的預期頻率運作,減少多個伺服器之間的差異。在 功率決定論中,系統以 CPU 型號的最大可用 TDP 運行。這會放大製造流程中零件與零件之間的差異,讓某些伺服器的速度比其他伺服器更快。所有伺服器都可能會消耗 CPU 的最大額定功率,這使得功耗具有確定性,但允許多個伺服器之間的性能有所差異。
正如您對 PowerEdge 平台所期望的那樣,BIOS 有一個名為 「系統設定檔」的元選項。選取 效能最佳化 系統設定檔會啟用渦輪加速模式、停用 C 狀態,並將決定性滑桿設為電源決定性,以最佳化效能。
我們的許多讀者可能已經直接跳到了這一部分,所以我們將直接進入。
在 HPC 和 AI 創新實驗室中,我們構建了一個擁有 64 台伺服器的羅馬集群,我們稱之為 Minerva。除了同質 Minerva 集群之外,我們還能夠評估其他一些 Rome CPU 樣本。我們的測試平臺在表 1 和表 2 中描述。
(表 1 本研究中評估的 Rome CPU 機型)
CPU | 每個插槽的核心數 | 組態 | 基準時脈 | TDP |
---|---|---|---|---|
7702 | 64C | 每個 CCX 4c | 2.0千兆赫 | 200 W |
7502 | 32C | 每個 CCX 4c | 2.5GHz | 180 W |
7452 | 32C | 每個 CCX 4c | 2.35千兆赫 | 155W |
7402 | 24C | 每個 CCX 3c | 2.8GHz | 180 W |
(表.2 試驗平台)
元件 | 詳細資料 |
---|---|
伺服器 | PowerEdge C6525 |
處理器 | 如表.1 所示 雙插槽 |
記憶體 | 256 GB,16x16 GB,3200 MT/秒,DDR4 |
互聯 | ConnectX-6 Mellanox Infini 頻帶 HDR100 |
作業系統 | Red Hat Enterprise Linux 7.6 |
核心 | 3.10.0.957.27.2.e17.x86_64 |
磁碟 | 240 GB SATA SSD M.2 模組 |
Rome 上的記憶體頻寬測試如圖 6 所示,這些測試是在 NPS4 模式下執行。我們在表 1 所列的四個 CPU 機型中使用伺服器中的所有核心時,測量到雙插槽 PowerEdge C6525 的 ~270-300 GB/秒記憶體頻寬。若每個 CCX 只使用一個核心,系統記憶體頻寬會比所有核心所測得的頻寬高出 ~9-17%。
大多數 HPC 工作負荷將完全訂閱系統中的所有內核,或者 HPC 中心在高輸送量模式下運行,每台伺服器上有多個作業。因此,全核心記憶體頻寬更準確地表示系統的記憶體頻寬和每核心記憶體頻寬功能。
圖 6 也顯示上一代 EPYC Naples 平台測得的記憶體頻寬,該平台也支援每個插槽八個記憶體通道,但以 2667 MT/s 的速度執行。Rome 平臺提供的總記憶體頻寬比那不勒斯高 5% 到 19%,這主要是由於更快的 3200 MT/s 記憶體。即使每個插槽配備 64c,Rome 系統也可提供超過 2 GB/秒/核心的效能。
比較不同的 NPS 組態,NPS4 測得的記憶體頻寬比 NPS1 高出 ~13%,如圖 7 所示。
(圖.6 雙插槽 NPS4 串流三元組記憶體頻寬)
(圖 7 NPS1 vs NPS2 vs NPS 4 記憶體頻寬)
圖 8 繪製了單向和雙向測試的單核 InfiniBand 頻寬。測試平臺使用以 100 Gbps 運行的 HDR100,圖表顯示了這些測試的預期線速性能。
圖.8 InfiniBand 頻寬 (單核心))
圖 9 InfiniBand 訊息速率 (所有核心))
接下來,使用兩個受測伺服器中插槽上的所有內核進行消息速率測試。在 BIOS 中啟用「首選 I/O」,並將 ConnectX-6 HDR100 適配器配置為首選設備時,全核心消息速率明顯高於未啟用「首選 IO」時,如圖 9 所示。這說明了在調整 HPC,特別是多節點應用程式可伸縮性時,此 BIOS 選項的重要性。
羅馬微架構可以淘汰16個DP FLOP/週期,是那不勒斯8個FLOP/週期的兩倍。這使得羅馬的理論峰值FLOPS是那不勒斯的4倍,增強的浮點能力是其2倍,內核數量是其兩倍(64c對32c)的2倍。圖 10 繪製了我們測試的四種羅馬 CPU 型號的測量 HPL 結果,以及我們之前從那不勒斯系統獲得的結果。Rome HPL 效率標示為圖形上條形上方的百分比值,對於較低的 TDP CPU 型號則更高。
測試在 Power Determinism 模式下執行,並在 64 台配置完全相同的伺服器上測量了 ~5% 的效能增量,因此這裡的結果屬於該性能帶。
(圖 10 NPS4 中的單一伺服器 HPL)
接下來執行多節點HPL測試,這些結果如圖11所示。在 64 節點規模下,EPYC 7452 的 HPL 效率仍高於 90%,但效率從 102% 下降到 97%,然後回升至 99% 需要進一步評估
(圖 11 HDR100 InfiniBed 上的多節點 HPL、雙插槽 EPYC 7452)
針對 Rome 伺服器的初始效能研究顯示我們第一組 HPC 效能指標的預期效能。在設定最佳效能時,BIOS 調整非常重要,我們的 BIOS HPC 工作負載設定檔中提供調整選項,可在原廠設定或使用 Dell EMC 系統管理公用程式設定。
HPC 和人工智慧創新實驗室擁有全新的 64 台伺服器羅馬 PowerEdge 叢集 Minerva。請觀看此空間,瞭解後續博客,這些博客描述了我們新的 Minerva 集群上的應用程式性能研究。