繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

亞馬遜最新Arm服務器芯片詳解

2022-05-30 10:15

半導體行業觀察(ID:icbank)編譯自chipsandcheese,謝謝。

2022 年 5 月下旬,AWS 向公眾發佈了 Graviton 3。Graviton 3 是第一個將 SVE 指令集引入可廣泛訪問的服務器 CPU 的 ARM CPU。

在 Graviton 3 全面上市之前,Neoverse N1 主導了 ARM 服務器領域。AWS 之前的旗艦產品 Graviton 2 在 2.5 GHz 下實現了 64 個 Neoverse N1 內核。微軟的 Azure 和甲骨文的 OCI 都使用 Ampere Altra,它將 80 個 Neoverse N1 內核放在網格上,並以 3 GHz 的頻率為它們提供時鍾。因此,我們將在 Graviton 3 和 Neoverse N1 之間進行比較。我們將用 AMD 的 Zen 3 和英特爾的 Ice Lake SP (Sunny Cove) 的數據來補充這一點。截至 2022 年中期,這些是雲環境中使用的最新廣泛部署的 x86 芯片,因此將成為 Graviton 3 最直接的競爭對手。

TheNextPlatform提出了一個令人信服的論點,即 Graviton 3 基於修改后的 Neoverse V1 核心。

分支預測:向前邁出的一大步

與 N1 相比,ARM 顯著改進了分支預測器,並在速度和準確性方面取得了長足的進步。快速瀏覽一下 Graviton 3 的模式識別功能,可以清楚地看出它與 N1 完全不同。

在雲市場,Graviton 3 的主要 x86 競爭對手將是英特爾的 Ice Lake SP 和 AMD 的 Zen 3 Milan。Zen 3 似乎使用了一個具有令人難以置信的能力但略慢的二級預測器,而 Ice Lake 採用與 Graviton 3 非常相似的方法。英特爾和 ARM 似乎都使用可以識別很長模式的單級預測器,儘管不是與 AMD 的程度相同。

當有很多分支在起作用時,Ice Lake 比 Graviton 3 有一點優勢。

Graviton 3 可以識別長達 16 長(long)的模式和 512 個分支,而 Ice Lake 可以在相同的分支數下處理兩倍長的模式。同樣,AMD 似乎擁有大量的分支歷史存儲,因為它能夠處理多達 96 個模式和 512 個分支。

Graviton 3 還具有令人印象深刻的快速 BTB(分支目標緩衝區)設置,使其能夠以非常小的代價處理已提取的分支。微型 BTB 允許核心在每個周期處理兩個採用的分支,這是迄今為止我們僅在 Golden Cove 和 Rocket Lake 上看到的功能。但是 Graviton 3 的 micro-BTB 容量比那些 Intel CPU 上的容量要大。Golden Cove 只能跟蹤 32 個分支,每個周期處理兩個分支,而 Rocket Lake 可以處理八個。

ARM 還為 Graviton 3 配備了一個可能有 4K 條目的非常大的主 BTB,以及一個可能有多達 10K 條目的 L2 BTB。主 BTB 提供超過 Zen 3 的零冒泡分支能力。即使達到 L2 BTB 也不是很昂貴,每個分支只有一兩個pipeline 氣泡,有 10K 分支在運行。到目前為止,我們只看到 Golden Cove 實施了更大的 BTB。

總而言之,Graviton 3 的分支預測器可與 Intel 和 AMD 的最佳預測器相媲美。每個 CPU 製造商做出不同的權衡,每個分支預測器都有其獨特的優勢,但 Graviton 3 的預測器顯示了 ARM 與最好競爭對手競爭的決心。這與 Neoverse N1 中的平庸實現相去甚遠,並且對於充分利用 Graviton 3 增加的重新排序能力應該有很長的路要走。

前端:熟悉的模式,有技巧

Graviton 2 和 3 都具有四寬解碼器,但差異到此為止。在解碼器后面,ARM 實現了一個具有 3K 條目的大型微操作緩存。因此,Graviton 3 的前端與 Intel 和 AMD 的前端非常相似。

與 Neoverse N1 相比,Graviton 3 的解碼器功能要強大得多。它們能夠融合各種指令對。這包括 x86 風格的跳轉融合,其中標誌設置指令和相鄰的條件跳轉可以融合到單個微操作中。Graviton 3 還實現了 CNS 式的 NOP 融合。成對的 NOP 可以融合到前端的單個微操作中。因為 Graviton 3 具有能夠緩存融合微操作的微操作緩存,所以每個周期將執行 12 個 NOP。

Graviton 3 的 NOP 融合突破了基本的指令獲取帶寬測試,微操作緩存的結果很有趣但不切實際。

爲了解決這個問題,我們用簡單地將寄存器設置為零的指令填充了測試數組。這些不能以與 NOP 相同的方式融合,但可以以每個周期 6 次通過重命名器並在那里被消除。

在取指令帶寬方面,Graviton 3 表現出與 Zen 3 相似的特點。兩者都有超大的 micro-op 緩存,都可以支持 6 個 IPC。除了 L2 之外,Zen 3 具有很大的優勢,因為 AMD 的架構優先考慮 L3 性能,而不是試圖在芯片上創建單個統一緩存。與雲場景中的前身 Neoverse N1 相比,Graviton 3 憑藉其微操作緩存享有更高的指令帶寬。從 L1D 獲取帶寬似乎是相等的,因為兩種架構(實際上是這個比較中的所有架構)都使用 4 寬解碼器。但在緩存層次結構的更下方,Graviton 3 享有更好的指令帶寬。

ARM 可能給 Graviton 3 提供了更深的獲取隊列,讓內核使用其大型 BTB 來積極地預取指令。Graviton 3 出色的 L3 實現對此進行了補充,與 Ampere Altra 和 Graviton 2 相比,它提供了更低的延迟。非常大的指令佔用空間的獲取帶寬仍然無法與 Intel 的 Ice Lake SP 或 AMD 的 Milan 相比,但 ARM 肯定在進步。

我們還看到各種消息來源表明 ,Neoverse V1 有一個 5 寬的指令解碼器。如果 Graviton 3 基於 V1,解碼器似乎已被縮減為 4 寬。一旦我們離開 3K 條目微操作緩存,即使測試循環適合 64 KB L1 指令緩存,我們每個周期也不會看到超過 4 條指令。當從微操作緩存運行時,相同的測試指令可以超過每周期 4 個吞吐量,這表明獲取和解碼帶寬吞吐量限制,而不是進一步的流水線瓶頸。

Graviton 3 的Renamer:新興能力

Graviton 3 的renamer似乎是 6 寬,讓核心在整體寬度上與 Zen 3 相匹配。在renamer優化方面,Graviton 3 對 Neoverse N1 進行了改進。但是作為 CPU 製造商很難,因為你的競爭對手也總是在進步。AMD 在 Zen 中引入了極其強大的移動消除功能,而英特爾在 Sunny Cove 中也做了同樣的事情。這兩個 x86 CPU 都可以以匹配重命名器寬度的速率消除寄存器到寄存器移動指令。

Graviton 3 無法做到這一點。MOV 顯然沒有被淘汰,因為吞吐量似乎受到 ALU 端口數的限制。與 Neoverse N1 一樣,Graviton 3 有時可以打破寄存器到寄存器 MOV 之間的依賴關係,但在該領域的功能非常有限。

rename階段還可以打破依賴關係和/或消除將寄存器設置為零的指令,而不管其先前的值如何。據我們所知,只有將零移動到寄存器指令完全消除,並實現了等於renamer寬度的吞吐量。Graviton 3 在這方面比 Ice Lake 有優勢,因為英特爾的renamer可以在檢測到歸零慣用語時打破依賴關係,但不能消除它們。

Zen 3 具有同等的能力——它可以識別常見的 x86 歸零慣用語並消除它們。

亂序結構尺寸

我們仍在忙於拆解 AWS 的新雲 CPU。在這個預覽中,我們將展示一些原始測試結果和合理的解釋,因為結果並不總是直截了當的。

讓我們從重新排序緩衝區大小開始。這個結構的大小對應於 CPU 的執行引擎可以跟蹤多少微操作。通常我們會用 NOP 進行測試,但 Graviton 3 的 NOP 融合能力使結果解釋變得複雜。對 NOP 的測試表明,Graviton 3 的 ROB 有 512 個條目。但是 ROB 的實際容量可能是 256 個條目,如果每個條目都存儲一個代表兩個 NOP 的融合微操作。

因此,我們運行了一個在整數和 FP 指令之間交替進行的額外測試。該測試的重排序容量超過 256 個條目,這表明 Graviton 3 確實有 512 個 ROB 條目,並且融合的 NOP 在通過renamer后未融合。如果這個解釋是正確的,ARM 已經給 Graviton 3 一個比 Zen 3 和 Ice Lake 更大的亂序窗口。

當我們繼續逆向工程寄存器文件大小時,另一個情況出現了。Graviton 3 似乎有 125 個 256 位寬的向量寄存器,但可以使用單個向量寄存器來跟蹤兩個標量 FP 寄存器。奇怪的是,它似乎無法使用單個 256 位 SVE 寄存器來跟蹤兩個 128 位 NEON 寄存器。

另一個奇怪的現象是,如果我們排除內核對標量浮點寄存器的巨大renaming能力,Graviton 3 的寄存器文件的大小更適合 256 條目的 ROB。

Graviton 3 的加載隊列容量也很突出。其他結構尺寸仍然適中,大致與我們在 Zen 2 和 Zen 3 上看到的一致。

調度程序佈局

試圖弄清楚調度程序的大小需要太多的測試

對分佈式調度程序佈局進行逆向工程非常困難、耗時且容易出錯。這就是為什麼這是一個預覽而不是一個適當的深入研究。我們不會測試大量指令類型和組合以得出一個最合理的調度程序佈局,而是提供一些指令類型的近似測量調度程序容量。

Graviton 3 有很多調度程序條目可供常見操作使用。雖然我們仍然不確定調度程序的確切佈局,但很明顯,Graviton 3 比 Neoverse N1 有了很大的飛躍。乍一看,它似乎與 Zen 3 和 Ice Lake 大致相當,至少在可用於常見操作的調度程序條目方面。

這是 Graviton 3 調度程序的一種合理佈局:

執行單位

Graviton 3 的執行單元相當強大,符合我們對高性能內核的期望。與 Neoverse N1 的三個相比,有四個整數 ALU,三個內存pipeline( Neoverse N1 只有兩個)。Graviton 3 的浮點和向量執行端得到了最大的升級,感覺就像是 Neoverse N1 的向量/FP 執行資源加了一個大的統一調度器的兩倍。256 位 SVE 浮點加法和乘法每個時鍾最多可以執行兩次,從而使 Graviton 3 的浮點吞吐量與支持 AVX 的 x86 內核相當。

Graviton 3 還繼承了 Neoverse N1 的向量和浮點執行延迟,只是略微降低了整數乘法延迟。

循環中某些操作的延迟。無論向量寬度如何,延迟似乎都是相同的,儘管我們尚未測試 SVE FMA 案例

兩個周期浮點加法延迟非常可觀,與英特爾的 Golden Cove 相匹配。當然,這對於 ARM 來説要容易得多,因為 Graviton 3 運行在非常低的時鍾上。FP 乘法延迟與其他服務器 CPU 的延迟大致相當,並沒有什麼特別突出的。向量整數執行延迟也很好,如果比 Zen 3 高一點,並且可能高於 Graviton 3 的低時鍾速度。

就執行吞吐量而言,Graviton 3 可能有 4 個 128 位向量/FP pipeline ,因為它能夠為我們測試的所有操作(FP 加法、FP 乘法、整數加法)在每個周期執行一條以上的 SVE 指令。從理論上講,這將使 Graviton 3 為 NEON 和標量 FP 操作實現令人印象深刻的吞吐量,但對於 NEON FP 加法/乘法和整數加法,我們無法超過每周期三條指令的吞吐量。這可以通過寄存器文件帶寬限制來解釋,即每個周期所需的輸入。

高速緩存和內存訪問

潛伏

Graviton 3 保留了 4 個循環,64 KB L1D。但是,ARM 改進了整個緩存層次結構的延迟。L2 容量保持不變,而延迟下降了兩個周期。L3 延迟在 Ampere Altra 上非常糟糕,謝天謝地,Graviton 3 的延迟要好得多。

Graviton 2 和 Ampere Altra 使用相同的內核和相同的 L2 實現。這兩種設計主要在 L3 中有所不同,其中 Graviton 2 實現的延迟稍小一些,這可能要歸功於更小的網格。如果我們實時繪製延迟,Graviton 3 降低的周期計數在某種程度上被 Ampere Altra 的更高時鍾抵消了。

在內存方面,與 Ampere Altra 和 Graviton 2 相比,Graviton 3 的延迟明顯下降。這可能是由於 DDR5 的延迟特性比 DDR4 更差。Graviton 3 還將內存控制器放置在單獨的 IO 小芯片上。這可能會加劇 DDR5 的延迟問題。

Ice Lake 和 Graviton 3 採用大致並行的緩存策略。兩者都實現了芯片範圍內的統一 L3。並且兩者都為它們的內核提供了大型私有 L2 緩存,以使它們免受 L3 延迟的影響。AMD 採取了不同的方法,放棄了芯片級緩存,轉而為每個核心集羣提供非常快的 L3。

x86 競爭對手也使用多用途架構。Sunny Cove(在 Ice Lake 中使用)和 Zen 3 在客户端平臺中提供雙重任務,它們可以達到遠遠超過 4 GHz 的時鍾速度,以最大限度地提高線程受限的性能。這種設計特徵也出現在雲中,Milan的 Epyc 和 Ice Lake Xeons 的時鍾明顯高於 Graviton 3。因此,在查看實際時間而不是時鍾周期時,我們看到了巨大的差異。

Xeon 運行在 3.5 GHz,而 Epyc 運行在 3.23 GHz,基於寄存器到寄存器的附加延迟

Zen 3 和 Ice Lake 都有更小、更快的 L1 緩存。在 L2,模式重複。Ice Lake 較高的周期計數延迟完全被其較高的時鍾所逆轉,使其超越了 Graviton 3。英特爾和 ARM 的基於網格的 L3 大致相當,具體取決於您在延迟圖中查看的位置。同樣,AMD 選擇了速度非常快的非統一 L3。

當我們查看更大的測試規模時,DDR5 的延迟迴歸再次出現。英特爾在單片芯片上使用 DDR4 控制器,為服務器芯片實現了極低的內存延迟。AMD 的 Epyc 使用小芯片,因此是與 Graviton 3 的一個非常有趣的比較。儘管兩者都會產生跨小芯片的損失,但 AMD 的內存訪問延迟比 Graviton 3 低大約 10 ns。我將這種差異歸結為 DDR5。

帶寬

在覈心數量匹配的情況下,Graviton 3 的緩存提供了合理的性能,與 Ampere Altra 相比,提供了全面的帶寬改進。如果 SVE 發揮作用,Graviton 3 的 L1 和 L2 緩存帶寬將比 Neoverse N1 高出不少。

藉助廣泛支持的 NEON 指令,Ampere Altra 因其更高的時鍾而保持接近,但如果使用 SVE,Graviton 3 可能會失控

但與其 x86 競爭對手相比,它並沒有那麼令人印象深刻。由於高時鍾和同樣寬的矢量寬度,Zen 3 的緩存遠遠領先於 Graviton。Ice Lake 以更高的時鍾頻率和兩倍的矢量寬度更進一步,使其具有無與倫比的每核 L1D 帶寬。英特爾的服務器架構還具有到 L2 的寬 64 字節/周期路徑。使用 256 位 SVE 加載指令可以稍微縮小差距,但無法繞過低時鍾。

DDR5 在我們的內存延迟測試中表現不佳,但它的優勢在帶寬測試中確實體現出來了。Graviton 3 的內存帶寬領先於其 x86 競爭對手。

我們沒有太多關於整個服務器芯片的數據,主要是因為我們不是一個可以輕松獲得服務器東西的大型技術網站。但這是與我們擁有的數據的比較:

正如預期的那樣,Graviton 3 比 Neoverse N1 具有巨大的優勢。與帶有 V-Cache 的 Epyc 相比,它在 L1、L2 和內存帶寬方面領先。然而,AMD 巨大、快速的 L3 仍然使其在某些測試規模上處於領先地位。

最初的想法

SVE 支持Graviton 3 之所以引人注目,是因為它是第一個支持 SVE 的通用 64 位 ARM 服務器 CPU。富士通的 A64FX 最先出現,但那是專為超級計算機設計的芯片,而非通用用途。我們還在一些最近發佈的高端手機上看到了 SVE2 支持,但在其他服務器芯片上卻沒有。

在不久的將來,這可能是一個有限的優勢。幾乎沒有支持 SVE 的軟件。GCC 將完全拒絕發出 SVE 指令(至少在我們有限的經驗中),即使您使用匯編,所以我們使用 Clang 來匯編我們的測試代碼。在接下來的幾年里,吸收可能會很緩慢。SVE 的市場滲透率遠不及 AVX(2),這讓 SVE 的情況讓人想起 2017 年 Skylake-X 面世時的 AVX-512。

所以 Graviton 3 將不得不等待幾年才能判斷 SVE 是否給它帶來了顯着的優勢。但這也有問題。SVE2 已經推出,如果軟件使用 SVE2 中不存在的指令,那麼 Graviton 3 將被拋在后面。

對抗競爭

AWS 的 Graviton 3 使用比 Neoverse N1 更強大的核心架構。N1 是當前 ARM 服務器產品的中流砥柱,這意味着 Graviton 3 是雲中性能最高、廣泛可用的 ARM CPU。在接下來的幾年里,它很可能會留在那個位置。

在 x86 的競爭中,Graviton 3 的單核性能可能比N1更接近 Zen 3 和 Ice Lake 。在分支預測、重新排序能力、執行資源和內核寬度方面,ARM 的 V1 微架構(假設這是 Graviton 3 的基礎)與英特爾和 AMD 當前的服務器產品處於同一水平。但我不指望 Graviton 3 能與 AMD 和 Intel 匹敵。Graviton 3 與其 x86 競爭對手之間存在巨大的時鍾速度差異,而且 V1 並不是更大更強大。

從亞馬遜的角度來看

該設計似乎非常狹隘地針對最大化雲中的計算密度。為此,AWS 選擇了非常保守的核心時鍾。在 2.6 GHz 時,Graviton 3 的時鍾頻率僅比其前身 Graviton 2 高 100 MHz,而沒有增加每個芯片的核心數量。因此,Graviton 3 幾乎所有的性能優勢都來自每時鍾性能的提升。

亞馬遜因此選擇使用臺積電最先進的 5 納米工藝來降低功耗。臺積電的 7 nm 工藝已經為低功耗設計創造了奇蹟,而 5 nm 將進一步發展。雖然 Graviton 3 的核心比 N1 更強大,但它遠不如英特爾的 Golden Cove 雄心勃勃,仍應被視為中等設計。這樣一個在 5 nm 上以 2.6 GHz 運行的內核絕對可以降低功耗。這反過來又讓 AWS 將其中三個芯片打包到一個節點中,從而提高了計算密度。最終的結果是一種芯片可以讓 AWS 以更低的價格銷售每個 Graviton 3 內核,同時仍然比之前的 Graviton 2 芯片提供顯着的性能提升。

★ 點擊文末【閲讀原文】,可查看本文原文鏈接!

*免責聲明:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅爲了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支持,如果有任何異議,歡迎聯繫半導體行業觀察。

今天是《半導體行業觀察》為您分享的第3055內容,歡迎關注。

推薦閲讀

★下一代EUV光刻機,萬事俱備?

★芯片公司招人難,留人更難

★中國半導體TOP 25榜單

半導體行業觀察

半導體第一垂直媒體

實時 專業 原創 深度

識別二維碼,回覆下方關鍵詞,閲讀更多

晶圓|集成電路|設備|汽車芯片|存儲|臺積電|AI|封裝

回覆投稿,看《如何成為「半導體行業觀察」的一員 》

回覆搜索,還能輕松找到其他你感興趣的文章!

點擊閲讀原文,可查看本文原文鏈接!

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。