進(jìn)軍服務(wù)器市場,RISC-V能否與X86一戰(zhàn)?
眾所周知,目前X86架構(gòu)處理器統(tǒng)治著PC和服務(wù)器市場,而Arm架構(gòu)處理器則統(tǒng)治著移動(dòng)市場,并在IoT市場占據(jù)著較大的市場份額。但是,近年來RISC-V架構(gòu)則憑借著開源、指令精簡、可擴(kuò)展等優(yōu)勢,在注重能效比的物聯(lián)網(wǎng)領(lǐng)域大受追捧。但是,在RISC-V International及相關(guān)芯片廠商的推動(dòng)下,RISC-V也開始進(jìn)入更高性能需求的服務(wù)器市場。
2023年初,RISC-V International將HPC確定為RISC-V增長的戰(zhàn)略優(yōu)先領(lǐng)域,再加上最近批準(zhǔn)的矢量擴(kuò)展和大量移植關(guān)鍵HPC庫和工具的HPC軟件工作,很明顯,這一領(lǐng)域的勢頭正在迅速增長。世界各地的很多項(xiàng)目,如歐洲eProcessor項(xiàng)目、擁有上千RISC-V核心的Esperanto CPU,以及旨在開發(fā)RISC-V關(guān)鍵軟件組件支持的多供應(yīng)商RISE項(xiàng)目,都有可能推動(dòng)RISC-V在包括HPC在內(nèi)的高端計(jì)算中普及,并最終使社區(qū)能夠圍繞這一技術(shù)構(gòu)建超級計(jì)算機(jī)。此外,早期的應(yīng)用研究對RISC-V可以為高性能工作負(fù)載帶來的好處也表示贊同。
2022年12月,芯片初創(chuàng)企業(yè)Ventana Microsystems公司在RISC-V峰會(huì)上發(fā)布了全球首款面向服務(wù)市場的基于RISC-V架構(gòu)的最高192核CPU——Veyron V1。
據(jù)介紹,Veyron V1采用先進(jìn)的5nm制程工藝,基于Ventana自研的高性能RISC-V內(nèi)核,8流水線設(shè)計(jì),支持亂序執(zhí)行,主頻高達(dá)3.6GHz,每個(gè)集群最多16個(gè)內(nèi)核,多集群最多可擴(kuò)展至192核,擁有48MB共享三級緩存,擁有高級側(cè)信道攻擊緩解措施、IOMMU和高級中斷架構(gòu)(AIA)、支持全面的RAS功能、自上而下的軟件性能調(diào)整方法,可以滿足數(shù)據(jù)中心的各種需求。(更多詳細(xì)介紹可參考:《RISC-V殺向服務(wù)器市場!5nm制程、最高192核,性能超AMD EPYC 7763!》)
根據(jù)Ventana披露的數(shù)據(jù)顯示,在SPECint 2017測試中,其128核心版本的Veyron V1在300W功耗下,大幅性能領(lǐng)先于64核的AMD EPYC Milan 7763(280W),并且達(dá)到了64核心AWS Graviton G3(Neoverse v1內(nèi)核)、40核心Intel Xeon Ice Lake 8380(270W)的兩倍。當(dāng)然這也主要得益于其核心數(shù)量達(dá)到了競品的兩倍。
需要指出的是,Veyron V1并沒有SIMD或向量執(zhí)行單元,這對上有AVX-512的Intel或AMD的服務(wù)器處理器會(huì)非常吃虧。另外,Veyron V1目前還沒有量產(chǎn),之前承諾的是今年第二季或第三季向客戶提供樣品。所以,以上官方公布的數(shù)據(jù)都還是紙面上的數(shù)據(jù)。
相比之下,今年三月國內(nèi)某廠商推出的64核RISC-V服務(wù)器芯片SG2042目前已經(jīng)小批量出貨。近日,國外研究人員Nick Brown 通過RAJAPerf基準(zhǔn)測試套件對于這款芯片進(jìn)行了實(shí)測,發(fā)現(xiàn)其與最新的廣泛可用的RISC-V芯片相比,其平均每個(gè)核心的性能提高了5到10倍。但是在多線程工作負(fù)載下,x86高性能CPU的平均性能依然達(dá)到了它的4-8倍。
據(jù)該研究報(bào)告顯示,該64核RISC-V處理器,運(yùn)行頻率為2GHz,由四個(gè)高性能的C920內(nèi)核組成,并采用了12級無序多問題超標(biāo)量管道設(shè)計(jì)。
C920提供RV64GCV指令集,具有三個(gè)解碼、四個(gè)重命名/調(diào)度、八個(gè)發(fā)布/執(zhí)行和兩個(gè)加載/存儲(chǔ)執(zhí)行單元。支持矢量化標(biāo)準(zhǔn)擴(kuò)展(RVV v0.7.1),矢量寬度為128位,支持?jǐn)?shù)據(jù)類型FP16、FP32、INT8、INT16、INT32和INT64。然而,C920并不支持FP64矢量化。研究稱,雙精度浮點(diǎn)是絕大多數(shù)高性能工作負(fù)載的基礎(chǔ),因此能夠支持矢量化這些操作的核心可能會(huì)為HPC提供更高的性能。每個(gè)C920核心還包含64KB的L1指令(I)和數(shù)據(jù)(D)緩存,1MB的L2緩存,在四個(gè)核心的集群之間共享,64MB的L3系統(tǒng)緩存,由集群中的所有核心共享。還提供四個(gè)DDR4-3200內(nèi)存控制器和32條PCIe Gen4通道。
HPC工作負(fù)載的一個(gè)重要考慮因素是矢量化,由于C920核心僅支持RVV v0.7.1,編譯器支持是一個(gè)挑戰(zhàn)。RISC-V GNU編譯器的當(dāng)前上游版本不支持任何版本的矢量擴(kuò)展。雖然GNU存儲(chǔ)庫包含一個(gè)rvv下一個(gè)分支,其目的是支持rvv v1.0,但在研究人員撰寫研究報(bào)告時(shí),它并沒有得到積極維護(hù)。此外,還有一個(gè)針對rvv v0.7.1的rvv-0.7.1分支,但該分支已被刪除。由于缺乏對主線GCC的支持,阿里平頭哥(T-Head)提供了自己的GNU編譯器分支(玄鐵GCC),該編譯器已針對其處理器進(jìn)行了優(yōu)化。
T-Head的定制編譯器同時(shí)支持RVV v0.7.1和他們自己定制的自定義擴(kuò)展。雖然已經(jīng)提供了該編譯器的幾個(gè)版本,但作為其20210618版本的一部分,GCC8.4提供了最佳的自動(dòng)向量化能力,因此這是研究人員進(jìn)行的基準(zhǔn)測試實(shí)驗(yàn)選擇的版本。該版本的編譯器生成矢量長度特定(VLS)RVV組件,該組件專門針對C920的128位矢量寬度。所有內(nèi)核都在優(yōu)化級別三進(jìn)行編譯,所有報(bào)告的結(jié)果都在五次運(yùn)行中取平均值。
與其他高性能RISC-V內(nèi)核比較
研究人員比較了SG2042與賽昉(StarFive)開發(fā)板VisionFive V1和 Vision V2的性能,V1包含賽昉JH7100 SoC,而V2包含賽昉JH7110 SoC。
JH7100和JH7110這兩個(gè)SoC都是基于64位RISC-V SiFive U74內(nèi)核構(gòu)建的,JH7100包含兩個(gè)內(nèi)核,JH7110包含四個(gè)內(nèi)核。SoC被列為以1.5GHz運(yùn)行,U74內(nèi)核包含32KB(D)和32KB(I)L1緩存,兩種SoC型號還包含內(nèi)核之間共享的2MB L2緩存。然而,SiFive U74僅提供RV64GC,因此不支持RISC-V矢量擴(kuò)展。
△圖1展示了VisionFive V2和V1與SG2042在雙精度(FP64)和單精度(FP32)方面的單核性能比較。其中條形圖是整個(gè)類別中速度更快或更慢的平均次數(shù),線條的范圍從最大到最小。
從圖1中可以看出,單個(gè)C920核心在雙精度和單精度方面都優(yōu)于V2和V1的U74核心。在雙倍精度下,C920核心的平均性能是V2中U74以雙倍精度運(yùn)行時(shí)的4.3至6.5倍。此外,在單精度下,C920的性能是基準(zhǔn)測試平均性能的5.6至11.8倍。這是一個(gè)令人印象深刻的性能提升,并且C920內(nèi)核上沒有比U74運(yùn)行得慢的內(nèi)核。一些內(nèi)核在C920上的性能非常令人印象深刻,例如,來自算法組的內(nèi)存集基準(zhǔn)在FP32中的運(yùn)行速度是U74的40倍,在FP64中運(yùn)行速度是U74的18倍。
需要強(qiáng)調(diào)的是,該基準(zhǔn)測試在這些核心上都是以盡可能好的配置,即C920上利用了矢量化,但是U74不支持矢量化,因此在V1或V2上不可用。SG2042上的FP32和FP64之間存在顯著的性能差異,這表明事實(shí)上C920矢量運(yùn)算不支持FP64。相比之下,在V2上運(yùn)行雙精度和單精度之間的性能差異要小得多。
圖1中結(jié)果的一個(gè)方面讓研究人員感到驚訝的是,VisionFive V1比V2慢得多。考慮到測試只是在單核上運(yùn)行RAJAPerf,所以芯片的雙核和四核性質(zhì)并不重要,因?yàn)樗鼈兌及嗤腢74核心,那么其性能應(yīng)該相當(dāng)相似。但是,在雙倍精度下,V1比V2慢了六倍到三倍,單精度則慢了一倍到三倍。雖然可以假設(shè)V1可能以比V2更低的時(shí)鐘頻率運(yùn)行,盡管它們在數(shù)據(jù)表中都被列為以1.5GHz運(yùn)行,但機(jī)器上沒有任何文件或輸出可以證實(shí)這一點(diǎn)。
從圖1中可以看出,與現(xiàn)有的、公開可用的商品RISC-V內(nèi)核相比,單個(gè)C920核心所獲得的性能令人印象深刻。T-Head將該核心描述為一種高性能RISC-V處理器。測試也表明,其與U74相比,在整個(gè)基準(zhǔn)測試套件中的性能有了很大的提高,U74以前被認(rèn)為是廣泛可用的RISC-V CPU的最佳選擇,可以在其上進(jìn)行HPC工作負(fù)載的實(shí)驗(yàn)。
除了單核性能外,SG2042在核數(shù)量方面也顯著領(lǐng)先于V1的JH7100和V2的JH7110 SoC。
與x86服務(wù)器CPU性能比較
那么相對于其他商用的X86服務(wù)器芯片,SG2042在HPC工作負(fù)載中的表現(xiàn)如何呢?對此,研究人員將其與當(dāng)前一代服務(wù)器中使用的其他CPU進(jìn)行了比較,分別為64核的AMD Rome EPYC 7742、18核的Intel Broadwell Xeon E5-2695、28核的Intel IceLake Xeon 6330、4核心的Intel SandyBridge Xeon E5-2609。測試只在這些x86 CPU的物理內(nèi)核上執(zhí)行,因?yàn)槟J(rèn)情況下禁用了所有SMT。
AMD EPYC 7742在四個(gè)NUMA區(qū)域中包含64個(gè)物理內(nèi)核,每個(gè)區(qū)域有16個(gè)內(nèi)核,但有八個(gè)內(nèi)存控制器。每個(gè)核心包含32KB(I)和32KB(D)L1緩存,512KB的L2緩存,四個(gè)核心之間共享16MB的L3緩存。EPYC 7742提供支持AVX2,具有256位寬的矢量寄存器,是SG2042的兩倍,并支持FP64的矢量化。
Intel Xeon E5-2695的18個(gè)物理內(nèi)核位于一個(gè)NUMA區(qū)域中,提供32KB(I)和32KB(D)L1緩存,256KB的L2緩存,以及45MB的跨內(nèi)核共享的L3緩存。與AMD EPYC 7742類似,Xeon E5-2695支持AVX2,并且有四個(gè)內(nèi)存控制器。
Intel Xeon 6330是比較的最新CPU,所有28個(gè)物理內(nèi)核都在一個(gè)NUMA區(qū)域中,具有8個(gè)內(nèi)存控制器,具有32KB(I)和48KB(D)L1緩存,每個(gè)內(nèi)核1MB L2緩存,以及43MB共享L3緩存。Xeon 6330支持AVX512,并提供512位寬的矢量寄存器。
Intel Xeon E5-2609屬于本次測試當(dāng)中最古老的CPU,其于2012年發(fā)布,僅提供四個(gè)物理核,每個(gè)核都有64KB(I)和64KB(D)L1緩存,以及256KB的L2緩存和共享的10MB L3緩存。該E5-2609僅支持AVX,因此矢量寄存器長度與SG2042相同,為128位,盡管AVX支持FP64。
在所有測試當(dāng)中,研究人員禁用了x86物理內(nèi)核的超線程。除了ARCHER2之外,研究人員在所有系統(tǒng)上都使用GCC版本8.3,編譯始終在優(yōu)化級別O3下進(jìn)行。全部在性能最高的線程數(shù)量上執(zhí)行的系統(tǒng)。
△圖4展示了各芯片在FP64上運(yùn)行基準(zhǔn)測試套件的單核性能。其中條形圖是整個(gè)類別中速度更快或更慢的平均次數(shù),線條的范圍從最大到最小。SG2042為均值基線。
從測試結(jié)果來看,除了除了古老的Xeon E5-2609內(nèi)核之外,所有x86內(nèi)核的性能都優(yōu)于C920,后者在流和算法基準(zhǔn)類中的平均性能較慢。AMD EPYC 7742和Intel Xeon 6330 CPU的表現(xiàn)往往優(yōu)于Intel Xeon E5-2695,這是可以理解的,因?yàn)?span style="box-sizing: border-box !important; margin: 0px; padding: 0px; border: 0px; outline: 0px; max-width: 100%; letter-spacing: 0.578px; overflow-wrap: break-word !important;">Xeon E5-2695是這三款CPU中的老款。
△圖5展示了各芯片在FP32上運(yùn)行基準(zhǔn)測試套件的單核性能與基線相比的快慢次數(shù)。
從圖5可以看出,AMD EPYC 7742在單精度執(zhí)行時(shí)與雙倍精度執(zhí)行時(shí)相當(dāng)乏善可陳,而英特爾處理器的平均性能也一樣好,事實(shí)上,當(dāng)使用FP32時(shí),古老的Xeon E5-2609內(nèi)核在每種級別上的平均性能都優(yōu)于C920。
然而,圖5中的平均條形圖并不能提供完整的圖片。C920僅支持FP32的矢量化,事實(shí)上,從圖5和圖4中的線條可以看出,F(xiàn)P32的許多基準(zhǔn)類的最大速度比FP64快。此外,有更多運(yùn)行速度最慢的內(nèi)核在x86 CPU上的執(zhí)行速度比FP32上的C920慢。這些內(nèi)核是有效應(yīng)用自動(dòng)矢量化的地方,事實(shí)上,可以看出,對于lcals基準(zhǔn)類,所有x86 CPU上至少有一個(gè)內(nèi)核的性能低于C920。
總結(jié)來說,在單核性能比較上,F(xiàn)P32下的AMD EPYC 7742平均表現(xiàn)要比C920快3倍,Intel Xeon E5-2695要快2倍,Intel Xeon 6330也要快4倍,Xeon E5-2609則快2倍,F(xiàn)P64下的這些數(shù)字則分別快4倍、4倍、5倍和20%。
△FP64多線程性能比較,報(bào)告比基線快或慢的次數(shù)
圖6展示了針對雙精度FP64的性能比較??梢钥闯?,basic、lcals、polybench和stream類測試從更多的內(nèi)核中受益最大,因此SG2042的平均性能優(yōu)于古老的Xeon E5-2609。
△FP32多線程性能比較,報(bào)告比基線快或慢的次數(shù)
圖7展示了FP32的多線程性能比較,這些結(jié)果包含最大的差異。為了提高可讀性,研究人員限制了縱軸,并標(biāo)記了超過該值的實(shí)際數(shù)值。在多線程FP32方面,SG2042往往比FP64在與x86 CPU的競爭中表現(xiàn)得略強(qiáng),盡管polybench類是一個(gè)異常,因?yàn)樗谌齻€(gè)最新的x86 CPU上的表現(xiàn)要好得多,而Intel Xeon E5-2609的表現(xiàn)則差得多。
總結(jié)來說,在SG2042多線程性能與x86 CPU進(jìn)行比較時(shí),在FP32和FP64上運(yùn)行的所有基準(zhǔn)類型測試中,其64核平均性能優(yōu)于4核的Intel Xeon E5-2609。64核的AMD EPYC 7742在FP32和FP64方面的性能分別是SG2042的8倍和5倍。18核的Intel Xeon E5-2695在單精度和雙精度方面分別平均達(dá)到了6倍和4倍。最后,28核的Intel Xeon 6330在FP32和FP64方面的表現(xiàn)分別是其6倍和8倍。
結(jié)論:
研究人員表示,盡管當(dāng)前有許多公司在開發(fā)高性能RISC-V硬件原型,但到目前為止,當(dāng)希望在可商用的RISC-V軟件上運(yùn)行工作負(fù)載時(shí),選擇非常有限。不管怎樣,盡管這些解決方案能夠?qū)ISC-V進(jìn)行實(shí)驗(yàn),但它們并不能在體系結(jié)構(gòu)上提供生產(chǎn)高性能工作負(fù)載所需的功能。因此,盡管HPC社區(qū)對RISC-V很感興趣,但它還沒有完全準(zhǔn)備好迎接這項(xiàng)技術(shù)。
當(dāng)然,作為世界上第一款廣泛可用的針對HPC的多核RISC-V服務(wù)器芯片,SG2042可能會(huì)大大提高HPC社區(qū)對RISC-V的興趣和采用率。然而,一個(gè)關(guān)鍵的問題是其與當(dāng)前一代超級計(jì)算機(jī)中普遍存在的x86 CPU相比依然有著較大的差距。不過,與目前可商用的RISC-V硬件相比,這是一款非常令人興奮的RISC-V服務(wù)器芯片,它提供了一些重大的變化。雖然性能還沒有達(dá)到x86服務(wù)器CPU的水平,但應(yīng)該強(qiáng)調(diào)的是,RISC-V供應(yīng)商在短時(shí)間內(nèi)取得了長足的進(jìn)步。相比之下,x86 CPU有著悠久的歷史,并從他們多年的開發(fā)中受益。
在芯智訊看來,目前RISC-V進(jìn)入服務(wù)器CPU市場的競爭對手主要還是Arm服務(wù)器CPU,畢竟其理論上RISC-V CPU可以擁有相比Arm CPU更低的成本、更高的定制化和可擴(kuò)展性。
對于下一代高性能RISC-V處理器來說,研究人員認(rèn)為,提供RVV v1.0將非常有用,因?yàn)檫@將提供使用用于編譯矢量化代碼的主線GCC和Clang。此外,提供FP64矢量化、更寬的矢量寄存器、增加的L1高速緩存以及每個(gè)NUMA區(qū)域更多的存儲(chǔ)器控制器也可能帶來顯著的性能優(yōu)勢,并有助于縮小與x86高性能處理器的差距。
編輯:芯智訊-浪客劍
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。