免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

威盛第 4 部分——深入探討 Centaur 的最后一個(gè) CPU 內(nèi)核:CNS

 金剛光 2023-03-10 發(fā)布于遼寧

2022 年 3 月 23 日 奶酪,蛤蜊濃湯 發(fā)表評論

x86-64 指令集為絕大多數(shù) PC、游戲機(jī)和服務(wù)器提供支持。然而,x86 許可證持有者的數(shù)量一直很少,因此跟蹤剩下的少數(shù)人很重要。在英特爾和AMD 為爭奪性能桂冠而相互廝殺的同時(shí),Centaur 的前東家威盛卻悄悄瞄準(zhǔn)了低功耗筆記本電腦和嵌入式市場。我們介紹了他們以前的幾款芯片,例如威盛 Nano兆芯陸家嘴。然而,自從1999 年取消當(dāng)時(shí)新收購的 Cyrix 的 Jalapeno 核心以來,VIA 還沒有嘗試與 Intel 或 AMD 的高端設(shè)計(jì)正面交鋒。

2019 年情況發(fā)生了變化,威盛再次將目光投向了更高的性能目標(biāo)。跟隨他們現(xiàn)已解散的子公司 Cyrix 的腳步,Centaur 團(tuán)隊(duì)宣布了一個(gè)名為“CNS”的 x86 內(nèi)核。與 Nano 不同,CNS 以服務(wù)器應(yīng)用程序?yàn)槟繕?biāo),并優(yōu)先考慮具有高 IPC 和 AVX-512 支持的高性能。這使 CNS 處于一個(gè)非常有趣的位置。它不僅代表了威盛對低功耗市場戰(zhàn)略的轉(zhuǎn)變,而且作為第一個(gè)實(shí)施 AVX-512 的非英特爾微架構(gòu)脫穎而出。

來自Centaur 公布的 CNS 架構(gòu)和 CHA(帶有 Ncore AI 加速器的 SoC + CNS)

但去年年底,有消息稱英特爾正在從威盛手中收購 Centaur 設(shè)計(jì)公司。這在整個(gè)科技界引起了轟動(dòng),因?yàn)?Centaur 是除英特爾和 AMD 之外唯一剩下的高性能 x86 設(shè)計(jì)公司。

Brutus 從 Centaur 的清倉拍賣中獲得的 CHA 芯片

不幸的是,這很可能扼殺了 CNS 的努力。然而,感謝Brutus以及我們出色的贊助人和支持者,我們設(shè)法獲得了為數(shù)不多的 CHA 芯片樣本之一。在本文中,我們將深入研究 CNS 微體系結(jié)構(gòu),看看如果它真的發(fā)布了會(huì)是什么樣子。

概述和框圖

Centaur 的 CHA 芯片帶有八個(gè) CNS 內(nèi)核以及一個(gè)稱為 NCore 的機(jī)器學(xué)習(xí)加速器。為了提供這些組件,CHA 有一個(gè) 16 MB 的末級緩存和一個(gè)四通道 DDR4 內(nèi)存控制器。所有這些都是在 194 mm 2芯片上實(shí)現(xiàn)的,采用臺積電的 16 納米工藝:

CHA 管芯布局,來自 Centaur 在 Linley Spring 處理器會(huì)議上的演示

我們將專注于 CNS 核心,因?yàn)闆]有公開發(fā)布或我們可以找到的 NCore 驅(qū)動(dòng)程序。從我們的測試來看,架構(gòu)如下所示:

我們的 CNS 芯片運(yùn)行頻率為 2.2 GHz,當(dāng)量產(chǎn)芯片的目標(biāo)頻率為 2.5 GHz 時(shí),這對于工程樣品芯片來說令人印象深刻。為了進(jìn)行測試,它設(shè)置了四通道 DDR4-3200 內(nèi)存。為了進(jìn)行比較,我們在 Azure NC12 實(shí)例上運(yùn)行了測試。它有一個(gè)禁用了 SMT 的 Xeon E5-2690 v3,似乎運(yùn)行在 3 GHz。但是,我們不確定它具有什么樣的內(nèi)存。

前端:分支預(yù)測準(zhǔn)確性

Centaur 將 CNS 稱為“Haswell 級”

Centaur 將 AI 添加到服務(wù)器處理器,作者:Linley Gwennap

因?yàn)?Centaur 說 CNS 核心是 Haswell 類,所以我們將與之進(jìn)行比較。CNS 的預(yù)測器可以識別相當(dāng)長的模式,但通常達(dá)不到 Haswell 的能力。然而,CNS 似乎確實(shí)有足夠的存儲(chǔ)空間來存儲(chǔ)分支歷史記錄。有 512 個(gè)分支,它可以保持出色的預(yù)測精度,重復(fù)歷史長度可達(dá) 24 長。相反,一旦模式長度超過 16,Haswell 就會(huì)分崩離析。

CNS 的方向預(yù)測器比Nano 中的方向預(yù)測器強(qiáng)大得多。Centaur 自上次嘗試進(jìn)軍 x86 市場以來取得了重大進(jìn)展。但英特爾是一個(gè)擁有大量工程實(shí)力的巨頭,對于一家小公司來說,要趕上他們并不容易。

間接分支預(yù)測

間接分支可以跳轉(zhuǎn)到不同的地方,給分支預(yù)測增加了一層難度。預(yù)測器必須跟蹤所有這些目標(biāo),并在它們之間進(jìn)行選擇。在這里,我們只看間接預(yù)測器可以跟蹤多少個(gè)目標(biāo)。

當(dāng)它循環(huán)通過多個(gè)目標(biāo)時(shí),每個(gè)間接分支所花費(fèi)的額外時(shí)間,而不是每次都擊中相同的目標(biāo)

對于其大小的核心,CNS 具有令人印象深刻的間接分支預(yù)測能力。我們看到處理了多達(dá) 1024 個(gè)間接目標(biāo)而沒有受到太多懲罰,有 256 個(gè)分支,每個(gè)分支有 4 個(gè)目標(biāo)。Haswell 在跟蹤有很多目標(biāo)的幾個(gè)分支時(shí)表現(xiàn)更好,但 CNS 在跟蹤很多分支且每個(gè)分支有幾個(gè)目標(biāo)時(shí)表現(xiàn)更好。

呼叫/返回預(yù)測

調(diào)用和返回對是間接分支的特例,因?yàn)榉祷赝ǔ7祷氐秸{(diào)用的來源。為了加速返回預(yù)測,Centaur 使用 7 條目返回堆棧。相比之下,Haswell 有 16 個(gè)條目的返回堆棧,而 Zen 有 31 個(gè)條目。CNS 的返回棧很小,在調(diào)用深度嵌套的代碼中會(huì)受到影響。

前端:分支預(yù)測速度

為了加快前端的分支處理,CNS 使用復(fù)雜的多級分支目標(biāo)緩存。Haswell 和 CNS 都可以跟蹤 128 個(gè)分支并在沒有提取氣泡的情況下處理它們。他們看起來也像是在超過 4096 個(gè)分支進(jìn)行比賽后擊中了 BTB 失誤點(diǎn)球,但相似之處僅此而已。

在 16 個(gè)分支下,CNS 每個(gè)周期可以維持兩個(gè)分支。因此,它加入了 Rocket Lake 和 Golden Cove 的 CPU 專屬俱樂部,每個(gè)周期可以執(zhí)行多個(gè)分支。Intel 可能通過在其微操作隊(duì)列中展開循環(huán)來實(shí)現(xiàn)這一點(diǎn),在 Intel 的文檔中稱為 LSD(循環(huán)流檢測器)。Centaur 可能有類似的機(jī)制。否則,他們需要一個(gè)雙端口指令緩存來實(shí)現(xiàn)如此出色的分支性能。

一旦我們越過 128 個(gè)分支進(jìn)入主 BTB,Intel 和 Centaur 的方法就會(huì)再次出現(xiàn)分歧。CNS 似乎使用綁定到 L1 指令緩存的 BTB。一旦循環(huán)大小超過 32 KB,我們就會(huì)看到每個(gè)分支所用的循環(huán)數(shù)急劇增加。在 L1i 中,CNS 每三個(gè)周期可以做一個(gè)分支。換句話說,在采用的分支之后浪費(fèi)了兩個(gè)獲取周期。也許這表明 CNS 的 L1i 有 3 個(gè)周期的潛伏期。Haswell 使用更現(xiàn)代的解耦 BTB,它可以跟蹤 4096 個(gè)分支,而不管間距或 L1i 命中/未命中。Intel 的實(shí)現(xiàn)也更快,并且只在一個(gè)采用的分支之后浪費(fèi)一個(gè)獲取周期。

使用間隔為 16 字節(jié)的分支的一些比較

不過從角度來看,CNS 比 AMD 的 Zen 2 做得好很多,至少當(dāng)兩者以相似的時(shí)鐘速度運(yùn)行時(shí)是這樣。Zen 2 可以使用 16 入口 L0 BTB 進(jìn)行零氣泡分支。但在那之后,當(dāng)它從更大、更慢的 L1 和 L2 BTB 中獲取分支目標(biāo)時(shí),它會(huì)受到嚴(yán)厲的懲罰。

前端:指令獲取和解碼

使用 8 字節(jié) NOP 測試 L1 指令緩存帶寬,這代表向量指令往往更長(因?yàn)榍熬Y)

MPR 的文章說 CNS 每個(gè)周期可以從 L1 指令緩存中獲取 32 個(gè)字節(jié)。但是,我們只能針對 2 KB 的測試大小實(shí)現(xiàn)這一目標(biāo)。CNS 的指令提取性能最終看起來有點(diǎn)像 Haswell 的,其中 32B/周期提取只能針對小代碼大小從 uop 緩存中實(shí)現(xiàn)。

使用 4 字節(jié) NOP 測試指令獲取/解碼吞吐量,這更能代表非向量工作負(fù)載

從 L2 開始,CNS 每個(gè)周期可以維持大約 16 字節(jié)的代碼,這仍然足以維持 4 個(gè) IPC,除非代碼以向量指令為主。一旦指令溢出 L2,吞吐量就會(huì)急劇下降,但這是包括 Haswell 在內(nèi)的許多設(shè)計(jì)的典型行為。

CNS 每個(gè)周期可以維持 5 個(gè) NOP,只要它們處于不超過 24 條指令的緊密循環(huán)中。

MPR 的文章說 CNS 有一個(gè)預(yù)解碼階段,每個(gè)周期可以處理四個(gè)指令。預(yù)解碼指令被放入一個(gè)指令隊(duì)列中,該隊(duì)列為主要的 4-wide 解碼器提供數(shù)據(jù)。

對上述行為的一種可能解釋是指令隊(duì)列有 24 個(gè)條目,并且可以充當(dāng)循環(huán)緩沖區(qū)。如果代碼適合此循環(huán)緩沖區(qū),它會(huì)繞過預(yù)解碼限制并可以以 5 IPC 運(yùn)行,只要主解碼器可以融合一對指令。這與 Haswell 截然不同,后者的預(yù)解碼階段是 6 寬,循環(huán)緩沖區(qū)位于主要的 4 寬解碼器后面。

與 Haswell 一樣,CNS 可以將條件跳轉(zhuǎn)與先前設(shè)置標(biāo)志的指令融合在一起,包括算術(shù)運(yùn)算。與我們研究過的其他 CPU 不同,它還可以將 NOP 與相鄰指令融合。融合對在后端被跟蹤為單個(gè)微操作。

重命名/分配階段優(yōu)化

CNS 的重命名器可以識別操作何時(shí)總是生成零,例如當(dāng)寄存器與自身進(jìn)行異或運(yùn)算或從自身中減去時(shí)。對于這些情況,它可以告訴調(diào)度程序它不需要等待輸入,從而允許提取更多的 IPC。在這方面,它與哈斯韋爾不相上下。

與 Haswell 不同,CNS 似乎沒有移動(dòng)消除功能。從屬寄存器到寄存器移動(dòng)指令的鏈將在每個(gè)周期執(zhí)行一個(gè)。

后端:亂序資源

與任何現(xiàn)代高性能 CPU 一樣,CNS 具有大緩沖區(qū)以支持亂序執(zhí)行。寄存器文件、ROB 和內(nèi)存排序隊(duì)列等關(guān)鍵結(jié)構(gòu)與 Haswell 的大致相當(dāng)。甚至調(diào)度程序和分支順序緩沖區(qū)也具有相似的大小。Centaur 的目標(biāo)是通過這個(gè)內(nèi)核達(dá)到 Haswell 級別的性能。

結(jié)構(gòu)指令需要一個(gè)條目,如果它......半人馬中樞神經(jīng)系統(tǒng)英特爾哈斯韋爾英特爾 Skylake-X
存在192192224
整數(shù)寄存器文件寫入整數(shù)寄存器 (GPR)146 (130+16)168 (136+32)180(實(shí)測150+32)
FP/向量寄存器文件寫入 256 位(或更?。〢VX 寄存器144 (80+64)168 (136+32)168(實(shí)測148+32)
FP/矢量寄存器文件,512 位寫入 AVX-512 (ZMM) 寄存器40不適用168 
(實(shí)測148+32)
AVX-512 掩碼寄存器文件修改 AVX-512 掩碼 (K) 寄存器138 (130+8) – 別名為整數(shù) RF不適用128
加載隊(duì)列從內(nèi)存中讀取727272
商店隊(duì)列寫入內(nèi)存464256
分支訂單緩沖區(qū)影響控制流4648歲64
調(diào)度器正在等待一個(gè)執(zhí)行單元646097

但 CNS 的主要功能是支持 AVX-512,所以讓我們深入了解一下。它與 Skylake-X 的全功能 AVX-512 實(shí)現(xiàn)完全不同。相反,Centaur 仍然使用 256 位向量寄存器,并將 512 位指令拆分為兩個(gè)微操作。這意味著 CNS 不會(huì)通過使用 AVX-512 獲得吞吐量或重新排序能力。

它仍然可以受益于 AVX-512 的屏蔽功能,但這也存在問題。在 CNS 上,那些掩碼寄存器和通用整數(shù)寄存器都競爭性地共享同一個(gè)重命名的寄存器文件。這不是很好,因?yàn)?CNS 沒有特別大的整數(shù)寄存器池開始(它比 Haswell 的稍微小一點(diǎn))。結(jié)合 512 位結(jié)果如何消耗兩個(gè)向量寄存器,當(dāng)使用 AVX-512 時(shí),CNS 的重新排序能力可能會(huì)看到更低的限制。

后端:執(zhí)行單元

整數(shù)執(zhí)行

Centaur 并沒有忽略 CNS 的整數(shù)單位。核心有四個(gè) ALU 管道,如 Haswell,但專門的執(zhí)行單元在更多 CNS 管道中重復(fù)。

與 Haswell 上的兩個(gè)相比,CNS 的所有四個(gè) ALU 管道都可以進(jìn)行旋轉(zhuǎn)和移位操作。PDEP 和 PEXT 等復(fù)雜的位操作操作可以在 CNS 上每個(gè)周期執(zhí)行兩次,而 Haswell 只有一個(gè)管道。Haswell 和 CNS 都可以進(jìn)行具有 3 個(gè)周期延遲的整數(shù)乘法,但 CNS 有兩個(gè)整數(shù)乘法器,而不是 Haswell 的一個(gè)。雖然兩個(gè) CPU 表面上都有四個(gè) ALU 管道,但 CNS 的管道更靈活,并且可以實(shí)現(xiàn)更好的吞吐量,特別是對于利用專用指令的應(yīng)用程序。

向量和浮點(diǎn)執(zhí)行

在向量執(zhí)行方面,CNS 的設(shè)置看起來很像 Haswell,除了 CNS 使用單獨(dú)的向量執(zhí)行管道而不是讓整數(shù)執(zhí)行端口執(zhí)行雙重任務(wù)。向量整數(shù)執(zhí)行單元分布在三個(gè)管道中,而 FP 操作有兩個(gè)管道可供選擇。同樣,與 Haswell 相比,Centaur 不會(huì)吝嗇,并且執(zhí)行單元會(huì)在更多的管道中復(fù)制。

CNS 的浮點(diǎn)單元每個(gè)周期可以執(zhí)行兩個(gè) 256 位 FP 加法或乘法,延遲為 3 個(gè)周期。Haswell 的 FP 乘法延遲更糟,為 5 個(gè)周期。而且,Haswell 只能在 3 個(gè)周期延遲的情況下每個(gè)周期執(zhí)行一次 FP 添加操作。有趣的是,您可以通過使用乘數(shù)為 1 的 FMA ops 在 Haswell 上匹配 CNS 的 FP 添加吞吐量,盡管延遲更高。融合乘加執(zhí)行在兩種架構(gòu)中幾乎相同,具有 2×256 位吞吐量和 5 個(gè)周期延遲。

Centaur 的向量整數(shù)執(zhí)行能力也更強(qiáng)。所有三個(gè)管道都可以進(jìn)行矢量整數(shù)加法,而只有兩個(gè) Haswell 可以。與標(biāo)量整數(shù)端一樣,CNS 的向量端有兩個(gè)整數(shù)乘法器,而 Haswell 有一個(gè)。根據(jù)具體的乘法運(yùn)算,Haswell 的性能可能會(huì)進(jìn)一步下降。例如,pmulld(64 位元素的向量乘法)以半速率執(zhí)行,延遲為 10 個(gè)周期。CNS 以每周期 ~1.68 的速度執(zhí)行相同的操作,具有 3 個(gè)周期的延遲。

地址生成

地址生成是 CNS 在執(zhí)行單元前端的唯一弱點(diǎn)之一。CNS 有兩個(gè) AGU 管道,每個(gè)管道都能夠處理負(fù)載或存儲(chǔ)。Haswell 有三個(gè) AGU,允許它在同一周期內(nèi)執(zhí)行兩次加載和一次存儲(chǔ)。

Centaur 仍然有一些小竅門。它可以通過執(zhí)行單個(gè) AVX-512 存儲(chǔ)或兩個(gè) 256 位 AVX 存儲(chǔ)每個(gè)周期寫入 64 個(gè)字節(jié)。這使它的存儲(chǔ)帶寬是 Haswell 的兩倍。就最大 L1D 帶寬而言,CNS 理論上可以達(dá)到每個(gè)周期 128 字節(jié),讀寫比例為 1:1。我們無法在測試中達(dá)到這一點(diǎn),但我們確實(shí)每個(gè)周期獲得了 90 多個(gè)字節(jié)。這接近 Haswell 的 96 B/cycle 理論最大值。

實(shí)際上,Haswell 的三重 AGU 設(shè)置可能略有優(yōu)勢。大多數(shù)應(yīng)用程序的負(fù)載遠(yuǎn)多于存儲(chǔ),而 Haswell 的額外存儲(chǔ) AGU 將減輕兩個(gè)通用 AGU 的壓力。不過,這種優(yōu)勢微乎其微。

內(nèi)存排序和存儲(chǔ)轉(zhuǎn)發(fā)

CNS 具有相當(dāng)復(fù)雜的加載/存儲(chǔ)單元。與威盛 Nano 和兆芯的陸家嘴不同,它可以推測性地在地址未知的商店之前執(zhí)行加載。

Centaur 還具有強(qiáng)大的存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制。負(fù)載完全包含在先前存儲(chǔ)中的所有情況都以 7 個(gè)周期的延遲處理。如果它們是獨(dú)立的并且都不跨越 64 字節(jié)緩存行邊界,它還能夠在每個(gè)周期完成兩次加載和兩次存儲(chǔ)。在 Sunny Cove 和 Zen 3 之前,我們從英特爾或 AMD 看不到這一點(diǎn)。

我們實(shí)施Henry Wong 的商店轉(zhuǎn)發(fā)測試的結(jié)果。64位store offset垂直向下,32位load offset跨越

但是,延遲有點(diǎn)高,尤其是在轉(zhuǎn)發(fā)失敗的情況下。如果加載僅與存儲(chǔ)部分重疊,則延遲會(huì)跳到 21 個(gè)周期。如果負(fù)載跨越 64 字節(jié)緩存行,則存儲(chǔ)轉(zhuǎn)發(fā)延遲會(huì)增加一個(gè)周期。如果加載跨過高速緩存行邊界并且存儲(chǔ)轉(zhuǎn)發(fā)失敗,則會(huì)有 6 個(gè)周期的懲罰。

在 Haswell 上運(yùn)行的結(jié)果

Haswell 似乎以四字節(jié)的粒度進(jìn)行快速檢查。如果加載和存儲(chǔ)都訪問相同的 4 字節(jié)對齊區(qū)域,它會(huì)進(jìn)行更徹底的檢查,從而導(dǎo)致半個(gè)周期的損失。即使沒有重疊,這種輕微的懲罰也適用。Haswell 上成功的存儲(chǔ)轉(zhuǎn)發(fā)有 5.5 個(gè)周期的延遲,而失敗的存儲(chǔ)轉(zhuǎn)發(fā)成本為 15。這兩個(gè)延遲都低于 CNS,考慮到 Haswell 更高的時(shí)鐘速度,這是相當(dāng)令人印象深刻的。

如果負(fù)載跨過緩存行邊界,Haswell 的存儲(chǔ)轉(zhuǎn)發(fā)需要額外的兩個(gè)周期,并且存儲(chǔ)轉(zhuǎn)發(fā)失敗的懲罰增加一個(gè)周期。

后端:緩存和內(nèi)存訪問

半人馬中樞神經(jīng)系統(tǒng)英特爾哈斯韋爾英特爾 Skylake-X英特爾金灣AMD禪2
一級指令緩存32 KB 8 路,3 周期?32 KB 8 路32 KB 8 路32 KB 8 路32 KB 8 路
一級數(shù)據(jù)緩存32 KB 8 路,5 周期32 KB 8 路,4 周期32 KB 8 路,4 周期48 KB 12 路,5 周期32 KB 8 路,4 周期
二級緩存256 KB 16 路,13 周期256 KB 8 路,12 周期1024 KB 16 路,12 周期1280 KB,10 路,15 周期512 KB 8 路,12 周期
三級緩存16 MB 16 路,56 周期30 MB, 49 周期35.75 MB,55 周期30 MB, 67 周期16 MB 16 路,39 周期
Haswell 和 Skylake L3 參數(shù)各不相同。這里的 Haswell 使用 E5-2690 v3,Skylake 使用 Xeon 8171M(在 Azure 上)

在大多數(shù)情況下,Centaur 的 CNS 比英特爾的 Haswell 具有更高的緩存延遲,即使后者在服務(wù)器平臺中也是如此。部分原因是 Haswell 的運(yùn)行頻率為 3 GHz,而 CNS 的運(yùn)行頻率僅為 2.2 GHz。

左邊是實(shí)際時(shí)間,右邊是核心時(shí)鐘

但即使我們對時(shí)鐘速度進(jìn)行標(biāo)準(zhǔn)化,Centaur 仍然落后。由于有 5 個(gè)周期的延遲,Centaur 的 L1D 很慢。它的L2也比Haswell慢了一個(gè)周期。在 L3 區(qū)域,Centaur 在周期和絕對時(shí)間方面再次失利。當(dāng)我們忘記記憶時(shí),它只會(huì)帶來輕微的勝利。

如果我們使用 2 MB 頁面來避免地址轉(zhuǎn)換懲罰,那么兩個(gè) CPU 的情況看起來會(huì)好一些,但情況基本相同。24 ns 的延遲對于僅服務(wù)于八個(gè)內(nèi)核的環(huán)來說略低于標(biāo)準(zhǔn)。查看 L3 延遲的差異,我們還可以看到 L2 TLB 訪問需要額外的八個(gè)周期。

左邊是實(shí)際時(shí)間,右邊是核心時(shí)鐘

在時(shí)鐘周期方面,它并沒有比 Haswell-E 高太多。但是 E5-2690 v3 有更多的緩存、更多的核心,并且運(yùn)行在更高的時(shí)鐘上。英特爾在擴(kuò)展環(huán)形互連的同時(shí)控制延遲方面做得非常出色。

帶寬

CNS 的 L1D 每個(gè)周期可以執(zhí)行 64 字節(jié)加載和 64 字節(jié)存儲(chǔ)。即使使用讀-修改-寫或復(fù)制模式(提供 1:1 的加載-存儲(chǔ)比率),我們也無法接近其理論帶寬,但至少我們每個(gè)周期獲得了超過 64 字節(jié)。

左邊是實(shí)際帶寬,右邊是每周期字節(jié)數(shù)

從 L1 到 L2 時(shí),讀取帶寬幾乎沒有下降,保持在每個(gè)周期略低于 64 字節(jié)。

左邊是實(shí)際帶寬,右邊是每周期字節(jié)數(shù)

即使是 Intel 的最新內(nèi)核也無法維持如此大的 L2 讀取帶寬。這是 Centaur 架構(gòu)令人印象深刻的表現(xiàn)。但是,一旦我們到達(dá) L3,帶寬就會(huì)急劇下降。

我還不相信我的復(fù)制帶寬測量。我們?nèi)栽谂U(kuò)展我們的基準(zhǔn)測試能力。

加載所有八個(gè)內(nèi)核后,我們看到 CHA 的 L1 數(shù)據(jù)高速緩存具有內(nèi)存復(fù)制模式,速度超過 1.6 TB/s。使用讀取模式的 L2 帶寬最高,略低于 1.1 TB/s。L3 帶寬達(dá)到約 325 GB/s。最后,我們從內(nèi)存中獲得略高于 55 GB/s 的速度,具有復(fù)制模式。

片上互連和系統(tǒng)架構(gòu)

我們測試的 CHA 服務(wù)器的 lstopo 輸出

Centaur 使用環(huán)形互連將內(nèi)核與 L3 緩存和片外 IO 連接起來。每個(gè)環(huán)停止在每個(gè)方向上每個(gè)周期可以移動(dòng) 64 個(gè)字節(jié)——是 Haswell 的兩倍。

帶寬縮放

加載八個(gè)內(nèi)核后,CNS 在所有八個(gè)內(nèi)核中平均每個(gè)周期 97.4 字節(jié),而 Haswell-E 每個(gè)周期獲得 81.62 字節(jié)。CNS 的更寬環(huán)確實(shí)有助于提高帶寬,但不足以抵消英特爾的時(shí)鐘速度優(yōu)勢:

作為一個(gè)安慰獎(jiǎng),Centaur 基于環(huán)的 L3 能夠在重負(fù)載下提供比 Ice Lake 基于網(wǎng)格的緩存更多的帶寬。基于網(wǎng)格的互連在不消耗大量功率的情況下往往會(huì)出現(xiàn)時(shí)鐘上升問題,從而導(dǎo)致高延遲和低帶寬。冰湖也不例外。

CHA 有一個(gè)支持 DDR4-3200 的四通道內(nèi)存控制器,但內(nèi)存帶寬并不太令人印象深刻。53 GB/s 遠(yuǎn)低于理論值 102.4 GB/s。接近理論帶寬很難,因?yàn)?DRAM 帶寬會(huì)因刷新周期和讀/寫周轉(zhuǎn)而丟失。但是理論值的 52% 太低了。

Haswell-E 并沒有做得更好。其第一代 DDR4 控制器在高速運(yùn)行時(shí)存在問題。盡管如此,隨著更多內(nèi)核的加載,英特爾相對較舊的架構(gòu)顯示出更好的內(nèi)存帶寬擴(kuò)展。一種想法是,CHA 并未針對 CPU 內(nèi)存性能進(jìn)行優(yōu)化。Centaur 有一個(gè)大型 NPU,占據(jù)了很大一部分裸片面積,能夠處理近 7 個(gè) bfloat16 TFLOP。這可能需要大量內(nèi)存帶寬,尤其是在 CPU 內(nèi)核同時(shí)處于活動(dòng)狀態(tài)的情況下。此外,四通道內(nèi)存控制器可以允許更多的 DIMM 插槽,從而更容易安裝大量內(nèi)存,而無需非常昂貴的大容量模塊。

鎖和緩存一致性

使用可能與 L3 切片相關(guān)的機(jī)制可以很好地處理緩存一致性。一個(gè)內(nèi)核看到另一個(gè)內(nèi)核寫入所花費(fèi)的時(shí)間取決于兩個(gè)內(nèi)核與緩存行所在的 L3 切片的距離:

4K 對齊的緩存行似乎最接近核心 7

鎖定延遲還不錯(cuò),特別是考慮到 CNS 的低時(shí)鐘速度。Haswell-E 最終處于同一個(gè)球場。一方面,英特爾受益于更高的時(shí)鐘。但另一方面,它使用雙環(huán)設(shè)置來連接更多內(nèi)核和更多緩存。跨互連的更多躍點(diǎn)通常會(huì)轉(zhuǎn)化為更高的延遲。

英特爾的雙環(huán)設(shè)置非常好

蛤蜊的采取

在真空中,CNS 的架構(gòu)展示了 Centaur 設(shè)計(jì)團(tuán)隊(duì)取得的成就。CNS 比以前的任何 VIA 或 Centaur 架構(gòu)都更廣泛并且具有更多的重新排序能力。它還實(shí)現(xiàn)了一系列新的微體系結(jié)構(gòu)功能,展示了小型 Centaur 團(tuán)隊(duì)的設(shè)計(jì)實(shí)力。負(fù)載可以在地址未知的商店前面吊起。存儲(chǔ)轉(zhuǎn)發(fā)非常健壯,其行為類似于 Sunny Cove 的行為。有一個(gè)大型、統(tǒng)一、多端口的調(diào)度程序。向量執(zhí)行單元對于其大小的核心來說非常強(qiáng)大。多組架構(gòu)寄存器(GPR 和 AVX-512 掩碼)被別名為同一個(gè)物理寄存器文件,以提高面積效率。所有這些都是在一個(gè)非常緊湊的內(nèi)核中完成的:

Centaur CNS 和各種 Intel 核心的近似大小。Centaur 演示中的 CHA die 照片,Cole L 的 Haswell 照片Fritzchens Fritz 的 Skylake-X 照片,Intel 新聞資料中的 Golden Cove

系統(tǒng)層面也有進(jìn)步。Centaur 設(shè)計(jì)了一個(gè)現(xiàn)代環(huán)形互連,將內(nèi)核與緩存和 IO 連接起來。該互連支持大型共享 L3,并使其帶寬擴(kuò)展以滿足八個(gè)內(nèi)核的需求。最后,CHA 芯片的四通道 DDR4 控制器和 44 條 PCIe 通道為其提供了比以往任何 Centaur 設(shè)計(jì)都更多的片外帶寬。

但 CNS 并不存在于真空中。Haswell 級別的 IPC 很棒。不好的地方(對于 Centaur)是 Haswell 的時(shí)鐘要高得多。英特爾還在幾代人的時(shí)間里改進(jìn)了他們的環(huán)形總線,讓它支持更多的核心數(shù)量并擴(kuò)展到更高的帶寬,即使環(huán)形站之間的鏈路更窄。Centaur 的架構(gòu)雖然雄心勃勃,但在與 Haswell 的對抗中會(huì)遇到困難。

更糟糕的是,Centaur 的 CHA 芯片在 2021 年仍未上市。這使其與英特爾基于 Icelake-SP 的 Xeons 和 AMD 基于 Zen 3 的 EPYC 芯片相抗衡。Centaur 是一家小公司,資源有限,落后一個(gè)流程節(jié)點(diǎn)。在純粹的 CPU 與 CPU 之戰(zhàn)中,他們毫無勝算。

隨著其他設(shè)計(jì)獲得工藝節(jié)點(diǎn)優(yōu)勢,CNS 真正開始落后。到 Zen 2 出現(xiàn)時(shí),AMD 擁有更小的內(nèi)核、更高的 IPC 和更高的時(shí)鐘。AMD核心照片來自Fritzchens Fritz

但半人馬知道這一點(diǎn)。這就是 NCore 的用武之地。它是一個(gè)強(qiáng)大的機(jī)器學(xué)習(xí)加速器,每秒能夠進(jìn)行 6.8 萬億次 bfloat16 操作。Centaur 希望將他們的 CNS 架構(gòu)與 NCore 相結(jié)合,以創(chuàng)建具有獨(dú)特競爭力的產(chǎn)品。Core for core,CNS 無法與 Skylake 或 Zen 2 相提并論,但它足以驅(qū)動(dòng) ML 加速器。就上下文而言,英特爾將 Snow Ridge 定位于 5G 基站(算作“邊緣”)。Snow Ridge 擁有運(yùn)行頻率為 2.2 GHz 的 Tremont 內(nèi)核。ARM 以 Neoverse E1 的邊緣應(yīng)用為目標(biāo)。CNS 可以很好地對抗它們,尤其是在矢量化工作負(fù)載方面。

將 NCore 置于芯片上還可以減少延遲,并為其他 IO 留出空閑的 PCIe 通道。在邊緣,這無疑是大量的網(wǎng)絡(luò)帶寬。如果您想要一臺具有強(qiáng)大推理能力的服務(wù)器,但對 CPU 性能的要求更適中,并且沒有外部 ML 加速器的空間或功率預(yù)算,那么 CNS 和 NCore 一起使用是有意義的。

我想那個(gè)市場從未實(shí)現(xiàn)過。或者即使是這樣,也不足以拯救半人馬座。然后,英特爾搶購了 Centaur 的設(shè)計(jì)團(tuán)隊(duì),因?yàn)檫@些工程師非常擅長用有限的資源做很多事情。CNS 證明了這一點(diǎn)。

最后的話

總之,雖然看到一家 CPU 設(shè)計(jì)公司倒閉令人難過,但 Centaur 不會(huì)與 AMD 或英特爾競爭。即使 Centaur 在 2017 年推出了帶有 CNS 內(nèi)核的系統(tǒng),Intel 和 AMD 都有更多可擴(kuò)展的系統(tǒng),如 Skylake-X 和 Zen 1 EPYC,因?yàn)榕c Skylake 相比,CNS 只能擴(kuò)展到 2 個(gè)插槽,總共 16 個(gè)內(nèi)核- X 的 8 個(gè)插槽最多 224 個(gè)內(nèi)核,而 EPYC 的 2 個(gè)插槽最多 64 個(gè)內(nèi)核。

然而,正如 Clam 所說,在 Centaur 計(jì)劃發(fā)布的 2020 年,Centaur 或 CNS 核心的情況看起來都不太好。而在 2021 年底,Centaur 的情況看起來更加嚴(yán)峻,他們決定關(guān)閉商店,英特爾以 1.25 億美元的價(jià)格收購。

現(xiàn)在,收購并不一定意味著 CNS 核心已經(jīng)死了。所有這一切的通配符是兆信。兆芯在英特爾收購 Centaur 期間一直非常安靜,但他們已經(jīng)證明他們可以通過陸家嘴改進(jìn) Centaur 現(xiàn)有的設(shè)計(jì)。

2018 年,兆芯聲稱能夠通過其 KX-7000 系列 CPU 趕上 AMD 當(dāng)時(shí)相當(dāng)新的 Zen 1 架構(gòu),我懷疑他們正計(jì)劃使用 CNS 內(nèi)核來實(shí)現(xiàn)這一目標(biāo)。由于使用 ZX-200 作為南橋的原型板以及威盛于 2020 年 10 月將 IP 轉(zhuǎn)讓給兆芯,其中包括 CPU IP,因此該假設(shè)確實(shí)有可靠的證據(jù)支持它。現(xiàn)在,兆芯能否將 CNS 內(nèi)核的時(shí)鐘頻率提高到現(xiàn)代臺式機(jī) CPU 為具有競爭力所需的 3.5+ GHz 又是另一回事了。

不管兆芯能否讓 CNS 達(dá)到 3.5GHz,這一點(diǎn)都沒有實(shí)際意義。現(xiàn)在不是 2019 年初,而是 2022 年初,所以這個(gè)假設(shè)的 3.5GHz CNS 將無法接近 AMD 或英特爾當(dāng)前的架構(gòu),更不用說大約 6 到 9 個(gè)月后會(huì)出現(xiàn)什么了。

但回到英特爾對 Centaur 的收購,1.25 億美元的問題是為什么?為什么英特爾要收購 Centaur 設(shè)計(jì)公司?坦率地說,我們不知道。Centaur 對英特爾甚至 AMD 都沒有威脅。我能想到幾個(gè)可能的原因:

  • 英特爾想要 Centaur 擁有的一些 IP,例如 NCore
  • 英特爾想要 Centaur 工程師,因?yàn)檎?Clam 所說,他們似乎可以用很少的資源做很多事情
  • 英特爾希望臺積電節(jié)點(diǎn)上有一個(gè)足夠好的 x86 CPU 內(nèi)核,用于不需要最快的 CPU 內(nèi)核并且英特爾希望使用 x86 兼容內(nèi)核的項(xiàng)目
  • 最憤世嫉俗的原因是英特爾只是想少一家擁有 x86 許可的公司,盡管據(jù)我所知威盛仍然擁有 Cyrix 許可

不幸的是,英特爾收購 Centaur 的真正原因可能永遠(yuǎn)不會(huì)為人所知,因?yàn)橛⑻貭枌τ?/font>他們吞并 Centaur 的原因守口如瓶這很可能是一個(gè)大多數(shù)人不知道還存在的時(shí)代的終結(jié)。也許兆芯會(huì)接過Cyrix和Centaur的第三家高性能x86設(shè)計(jì)公司的衣缽,或者我們可能會(huì)淪為AMD和英特爾的兩家高性能x86設(shè)計(jì)公司。我無法預(yù)測未來,但我所知道的是這篇文章到此結(jié)束。

如果您喜歡我們的文章和新聞,并且想支持我們的努力,那么如果您想以我們的方式花幾塊錢或者想與 Chips and Cheese 的工作人員交談,請考慮前往我們的Patreon或我們的PayPal幕后人員隨后考慮加入我們的Discord。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多