老夫桌上有酒,不喜獨酌,聞數(shù)家國產(chǎn)CPU有擅桌面者,故許利淘寶陸續(xù)擒得之,長隨老夫左右伴飲。已得龍芯、海光、飛騰、兆芯四姓圍坐,皆為桌面CPU才俊,老夫甚慰。
此日海光新至,為其接風飲宴。席間其樂融融,眾CPU互報姓名,曰:海光C86-3250、龍芯3A5000、飛騰D2000、兆芯KX-U6780A。其間海光3250言其太上蠻橫,只許子弟行走于服務器和工作站之間,圍坐桌面乃是越矩,此番被拘于此方知桌面之妙,愿以文會友,以人鑒己。老夫雖知其本意,卻亦有意相試各CPU才情,便允其以文會友之請。為探知真相,余喚來四位海外桌面CPU王侯,與國產(chǎn)四俊以同題相校,印證各CPU水平究竟。
再觀各CPU顏色,龍芯3A5000對海外王侯竟顯“彼可取而代也”之豪情。海光3250面色淡然,似無爭強之意。老夫見此情景更生疑惑,先令家仆閉門,再令所有CPU報上各自參數(shù)。往酒缸中投入幾枚青梅后,便擬定以SPEC CPU2006&2017、Stream、UnixBench試之,數(shù)日后定要見個分曉。
上表8款CPU中,紙面參數(shù)最弱者是龍芯3A5000,僅為4核2.5GHz。次弱者是Intel i5-6500,亦為4核,但最高頻率較龍芯3A5000多出44%,余者6核、8核、10核皆有。
在四款國產(chǎn)CPU中,只有海光支持超線程,它的核心是購自AMD的初代Zen,但3250的主頻僅有2.8GHz,比AMD相同核心的產(chǎn)品低了很多。所有的國產(chǎn)CPU主頻都不高,大約都只有Intel和AMD同類產(chǎn)品的一半左右,也就是說即使國產(chǎn)CPU每GHz的性能與Intel和AMD相差無幾,單核性能也只有它們的一半左右。
嚴格地說,四款國產(chǎn)CPU都不支持睿頻,海光雖言說有睿頻,但無法開啟。龍芯和飛騰都是固定頻率,海光和兆芯支持在低負載時自動降頻。但海光和兆芯的TDP決定了,就算降了頻功耗也低不到哪兒去,可以用于桌面和工作站,做筆記本CPU就有些不合時宜。
四款國產(chǎn)CPU中唯一從零開始自主設計CPU核心的只有龍芯3A5000,可它非但主頻比海光3250和兆芯KX-U6780A低,且核心數(shù)量也只有另外幾款國產(chǎn)CPU的一半,令它同臺競技似乎有些不近人情,但它已然摩拳擦掌,那還是不要按捺的好。若把各款CPU的單核測試成績都折算成1.0GHz的得分,倒是可以稱量稱量龍芯3A5000的核心設計水平與其它CPU相差幾許。
SPEC CPU 2006&2017 測試說明
SPEC CPU 2006和2017都是業(yè)界公認的專業(yè)的CPU通用性能評估工具,兩者是在不同年代發(fā)布的不同版本。它們測試的是CPU整數(shù)和浮點通用處理性能,重點在“通用”這兩個字。整數(shù)通用性能代表了常規(guī)桌面和服務器軟件在CPU上運行時的性能表現(xiàn),浮點通用性能則側重于科學計算、人工智能等專業(yè)任務的性能表現(xiàn)。各家CPU廠商在發(fā)布新產(chǎn)品時,通常都會發(fā)布SPEC CPU的整數(shù)通用性能評估結果,一般都包含了單任務和多任務兩種模式的測試成績。
int_speed:單任務整數(shù)通用性能,編譯器不開啟自動并行化時表示單核性能。
fp_speed:單任務浮點通用性能,編譯器不開啟自動并行化時表示單核性能。
int_rate:多任務整數(shù)通用性能,任務數(shù)≥核心數(shù)量時代表全CPU性能。
fp_rate:多任務浮點通用性能,任務數(shù)≥核心數(shù)量時代表全CPU性能。
SPEC CPU是包含了數(shù)十個性能評估項目的測試套件,涵蓋了眾多領域和場景的應用算法,測試內(nèi)容以C、C++、Fortran源代碼的形式提供。程序中沒有嵌入針對特定架構優(yōu)化的匯編代碼,以保證它在跨架構測試時的公平性。測試者需要自行配置編譯器和編譯參數(shù),由SPEC CPU的測試程序根據(jù)配置自動編譯并運行測試項目。編譯優(yōu)化參數(shù)可以配置為base和peak兩種模式,區(qū)別是peak模式允許對每一個測試項目單獨配置優(yōu)化參數(shù),并且支持二次編譯優(yōu)化。因此操作系統(tǒng)、編譯器類型、編譯優(yōu)化參數(shù)對測試成績有很大影響。有的測試者還會使用第三方優(yōu)化組件、開啟單任務自動并行化、32位和64位混合編譯等手段來提高測試成績。內(nèi)存性能也對測試成績有影響,但主要影響多任務并行時的成績,對單任務的測試成績影響較為有限,硬盤、顯卡等其它設備對測試結果的影響可以忽略不計。
“單任務并行化”是把單線程程序中的部分循環(huán)代碼拆分到多個核心上并行運行的技術。在一段循環(huán)代碼中,如果改變每次循環(huán)的順序不會影響運行結果,那么這個循環(huán)就可以并行化。 如果在編譯時允許了“自動并行化”,那么單任務的測試成績就不能代表單核性能。SPEC CPU2006版的“自動并行化”依賴編譯器分析代碼的能力,2017版在是測試集源碼中添加了對OpenMP的支持,也就是由源碼的編寫者手工指定哪些循環(huán)代碼可以并行執(zhí)行。在引入OpenMP之后,就弱化了編譯器自動并行化的作用,使性能評估更加規(guī)范。因此在SPEC CPU2017的測試中,對單任務必須明確標注使用了多少個線程。
SPEC CPU的測試集中可以并行化的代碼不多,CPU核心越多開啟并行化后的收益就越高。但大多數(shù)普通軟件的源碼中可以被并行化的代碼比SPEC CPU更少,編譯器的自動并行化又可能對軟件的其余部分造成負面影響,因此幾乎只被用來跑分。除了自動并行化之外,把GCC換成ICC也能把總成績提升10%左右,再開啟ICC增強的“自動向量化”還能再提升10%左右,然后再加上第三方優(yōu)化組件也能把總成績提升10%左右,最后再換成peak模式對每個測試項目單獨調(diào)優(yōu),并且開啟二次編譯優(yōu)化,還能把成績再提高10%左右……然而上述所有的提分手段對普通應用軟件的增益都遠不如SPEC CPU跑分明顯,反而會引起兼容性和穩(wěn)定性降低的問題,因此凡是有大量用戶的知名軟件都會避免使用這些跑分專用的、近似于“作弊”的優(yōu)化技術。
此次測試都使用UOS系統(tǒng),國產(chǎn)CPU使用UOS專業(yè)版,進口CPU使用UOS家庭版。編譯器都使用系統(tǒng)中內(nèi)置的GCC、G++、GFortran 8.3版本,不使用任何的第三方優(yōu)化庫,也不開啟單任務自動并行化,測試項目都統(tǒng)一編譯為64位,只測試base模式的成績。之所以不使用那些有助于提升測試成績的額外的優(yōu)化方法,是因為需要滿足所有前置條件才能獲得的高分對軟件開發(fā)者沒有意義、對軟件用戶更沒有意義。有些CPU廠商用專門優(yōu)化得到的peak成績?nèi)送姓y試的base成績,是極端不自信的自欺欺人的表現(xiàn),只有不使用那些跑分專用技巧時得到的測試成績,才能代表用戶能體驗到的CPU性能。
SPEC CPU 2006&2017 測試成績
為了使對比更加公平,老夫對編譯優(yōu)化參數(shù)也作出了限制,除了因為CPU指令集(架構)不同而不得不修改的參數(shù)之外,其它的編譯優(yōu)化參數(shù)都完全一致。免得它們到時候說別人成績好是因為編譯參數(shù)優(yōu)化得好,自己成績差是老夫故意劣化,凡是以此種借口掩耳盜鈴者,一律打出門去。
為了得到AMD的兩款CPU較為準確的每GHz的成績,就給它們加測了一次固定CPU頻率時的成績。一來為了驗證海光購買的AMD Zen核心和比它更新一些的Zen+核心有多大差距,二來因為龍芯說下一代3A6000每GHz的成績和Zen3相當,老夫提前收集一點兒數(shù)據(jù),等3A6000發(fā)布后方便驗證是否與宣傳相符,到時候該夸就夸該罵就罵。
SPEC CPU 2006的speed和rate分別是單任務和多任務測試,測試項目相同,只是并行的任務數(shù)量不同。
SPEC CPU 2017的speed和rate分別是單任務和多任務測試,不只是并行的任務數(shù)量不同,測試項目也有區(qū)別。因此除了測試了speed 的單線程成績(thread-1 單任務),還測試了rate模式時只運行一個任務的成績(rate-1 單任務),這兩種模式的成績是不同的。
通過對表中成績的解讀,可以得出以下結論:
一、CPU的頻率控制很影響性能發(fā)揮。
當由主板和系統(tǒng)自動控制CPU頻率時,CPU的頻率會根據(jù)負載和溫度不斷變化,不同的CPU、主板、操作系統(tǒng)和設置,都會影響控制頻率的策略。AMD的兩款CPU在單核高負載時,頻率被控制在默認頻率附近,在多核高負載時才更接近最高睿頻。而Intel的CPU就正好相反,單核高負載時傾向于保持睿頻,多核高負載時反而降到了默認頻率附近。導致10核20線程的i9-10850k在多任務測試中表現(xiàn)得不好,相對于R5-5600G來說成績沒有核心數(shù)量的差距那樣大。
在不鎖定CPU頻率時測試單任務,R5-2600平均頻率約為3.3GHz,R5-5600G平均頻率約為3.4GHz,i5-6500平均頻率約為3.5Ghz,i9-10850K平均頻率約為4.8GHz。
4款國產(chǎn)CPU在測試過程中都能保持在最高頻率,性能表現(xiàn)穩(wěn)定。
二、CPU頻率相近不等于單核性能相近。
例如兆芯KX-U6780A在SPEC CPU 2006和2017的測試中,單核整數(shù)成績分別是15.5和2.26,僅為海光3250的50%~60%,也只有龍芯3A5000的60%左右,而它們的主頻差距很小。這說明頻率不能單獨決定CPU單核性能,CPU的單核性能等于“頻率×IPC”。IPC是“每周期執(zhí)行的指令數(shù)”,在相同頻率下IPC越高的CPU,通過測試軟件得到的成績越高。
當內(nèi)存頻率不變時,IPC隨CPU頻率升高而降低,因此把單核成績折算到每GHz成績會有誤差。但是當內(nèi)存帶寬不是瓶頸時,它對測試成績的影響就較低,所以把5GHz時的單核測試成績折算到1GHz時產(chǎn)生的誤差可以忽略不計。
IPC或每GHz成績主要代表了CPU核心的邏輯設計水平,CPU的主頻主要體現(xiàn)出物理設計和制程工藝的水平。例如Pentium4(641)用SPEC CPU 2006測得的每GHz單核整數(shù)成績僅2.37,IPC太低,它如果想達到i9-10850K(5.2Ghz)時的單核性能,就必須把主頻提到近30GHz。
CPU核心的邏輯設計、物理設計、以及制程工藝的水平提升必須并重,特別是在國產(chǎn)CPU的物理設計和制程工藝短時間難以突破的情況下,更有必要通過提高邏輯設計能力來提高IPC。
AMD說Zen+比Zen的IPC提升了3%,這里對海光3250和AMD R5-2600的測試沒有體現(xiàn)出來,主要原因是UOS專業(yè)版對x86多了一些額外的優(yōu)化,老夫也用家庭版在相同條件下測試過海光3250,SPEC CPU 2006單核整數(shù)成績沒過30分,符合Zen+比Zen的IPC提升了3%的說法。
龍芯在整數(shù)通用性能方面,3A5000核心邏輯設計水平和海光3250(AMD Zen)相當。在Zen的IPC水平上,龍芯3A5000的主頻要比海光3250低0.3GHz,導致單核性能也要低一些。龍芯下一代3A6000的核心邏輯設計水平可能和AMD Zen3相當,且整數(shù)和浮點IPC都與Zen3差不多。
三、對于不同的CPU,浮點性能與整數(shù)性能不一定是相同比例。
例如幾款x86指令集的CPU,只有兆芯KX-U6780A的浮點成績比整數(shù)成績低。飛騰D2000的浮點成績比整數(shù)成績低,也體現(xiàn)了ARM的傳統(tǒng)風格。
龍芯3A5000在SPEC CPU 2006測試中浮點成績與整數(shù)成績差不多,但SPEC CPU 2017的測試成績低于本人預期,懷疑是由于GFortran編譯器對LoongArch架構優(yōu)化不足的緣故。不過3A5000的浮點成績也不算差,單核成績比使用7nm工藝的鯤鵬920還高一些。
四、SPEC CPU 2006 和2017的測試成績沒有固定的換算比例
雖然SPEC CPU 2006和2017是同一款性能評估套件的兩個版本,有部分測試項目相似,但是它們?nèi)匀皇莾煞N不同的性能評估工具,所得到的成績不能相互換算。
比如飛騰D2000和KX-U6780A在使用SPEC CPU20017進行測試時,表現(xiàn)得就比使用SPEC CPU2006的時候更好,每款CPU的兩種測試成績的比例都不相同。
本次測試沒有鯤鵬920,但這里有一份來自鵬城實驗室的SPEC CPU 2017測試成績供參考,我們暫時只關注單任務的測試成績:
表中是用48核的鯤鵬920與64核的飛騰FT-2000+進行對比,F(xiàn)T-2000+的核心和本次測試的D2000一樣,但主頻要低一些,因此單任務單線程的int_speed成績只有2.11,比D2000的2.28要低一些。不過FT-2000+有64個核心,所以單任務64線程的測試成績就要比D2000高一些。按公開資料中的說法,鯤鵬920的48核版本主頻是2.6GHz,但它單任務單線程的int_speed成績只有3.01,而2.5GHz的龍芯3A5000得分是3.51。但已知鯤鵬920在2.6GHz時用SPEC CPU 2006測試的int_speed成績和龍芯3A5000相近,這又是一個2006和2017的成績不存在固定比例的例子。
雖然兩個版本的SPEC CPU的測試成績不存在固定比例,但測試成績都與CPU性能有強相關性。使用同種沒有針對特定環(huán)境優(yōu)化的測試工具進行橫向對比時,性能越高的CPU成績就一定會越好。
五、CPU多核性能不是對所有核心簡單疊加。
無論是整數(shù)還是浮點測試,每個核心的平均效率總是會隨著并行任務數(shù)量的增加而降低。在CPU頻率不變的情況下,影響多任務效率的主要因素是內(nèi)存帶寬和多核心的互聯(lián)效率。CPU性能越高,內(nèi)存帶寬不足造成的負面影響就越大;CPU核心數(shù)量越多,核間互聯(lián)效率就越低。
比如海光3250的SPEC CPU 2006整數(shù)單任務成績是30.5,如果直接乘上8個核心,那么8任務整數(shù)成績應該是244,但實際上只有173。用173÷244,得到多任務時平均每個核心的效率只有70.9%。SPEC CPU 2017因為speed和rate的測試項目不同,所以應該用rate-1的成績計算每個核心的平均效率。計算平均效率時也不能把超線程計算在內(nèi),否則會有很大的誤差。在測試過程中發(fā)現(xiàn)只有4款國產(chǎn)CPU在多任務時仍然能保持頻率,其它CPU即使在BIOS中設置了固定的倍頻,多任務時也仍然會有降頻的現(xiàn)象,也會導致計算每個核心的平均效率時出現(xiàn)誤差。下方的圖表中就只統(tǒng)計4款國產(chǎn)CPU在運行SPEC CPU時每個核心的平均效率:
可以清楚地看到,不同版本的SPEC CPU、不同的測試類型、不同的CPU,在運行多任務時每個核心的平均效率是不同的。龍芯3A5000的多核效率高很有可能是它核心數(shù)量最少的原因,飛騰的多核效率也不錯,海光和兆芯就要差上一些了。不過海光因為單核性能最高,還支持超線程,它的多核性能在四款國產(chǎn)CPU中仍然是最高的。
盡管海光3250無論整數(shù)還是浮點性能都比R5-2600低,但它畢竟是8核16線程,全CPU的多核性能與6核12線程的R5-2600是差不多的??赡馨押9?250看作降頻版本的AMD R7-1700更加恰當,因為都是8核16線程,都是Zen核心。
飛騰D2000和兆芯KX-U6780A有濫竽充數(shù)的嫌疑,它們也都是8個核心,測試成績所代表的多核性能卻還不到海光3250的一半,和4核的3A5000的多核成績非常接近。
飛騰D2000最優(yōu)秀的地方是功耗,它用25W的TDP達到了比兆芯70W的TDP略好的性能。飛騰D2000的功耗也要比龍芯3A5000的35W典型功耗更低,且多核性能比龍芯3A5000略高,畢竟是8核跟4核作比較,總不能一點優(yōu)勢都沒有。
盡管4核的龍芯3A5000多核性能只是與8核的兆芯和飛騰桌面CPU相當,但在桌面應用中,單核性能高就是優(yōu)點。桌面應用中的流暢度,海光3250與龍芯3A5000大約和2代酷睿i5、i7臺式機差不多,兆芯KX-U6780A和飛騰D2000就只能和凌動平板電腦相提并論了。龍芯在6000系列才終于放下了4核打8核的執(zhí)拗,3A6000是4核8線程,3B6000就是8核了(大小核設計)。3A6000預計單核及多核性能都超過i5-6500,與6、7代酷睿i7桌面CPU的性能相當,3B6000的單核及多核性能大約都能超過AMD R5-2600吧。
六、超線程在高負載時實際提升約為0%~20%,部分情況下造成負增長。
在某些測試中,超線程可提高50%以上的效率,因此造成了超線程可以把1個物理核心當成1.5個來用的印象。然而提高50%算是特例,實際上平均來看是不可能達到那么高的。
超線程的加速能力和程序的計算類型有關、和程序對內(nèi)存帶寬的需求有關、也和超線程的技術方案有關。使用涵蓋面較廣的SPEC CPU 2006&2017來測試,可以得出超線程對效率的平均提升幅度是0%~20%的結論。
從上面的圖表中可以看到在各項多任務測試中,海光3250的超線程加速比AMD R5-2600還高一些,老夫猜測是海光3250主頻更低的原因。雖然它們的內(nèi)存頻率也有差距,但實際的內(nèi)存訪問速度差距不大。
Intel i9-10850k的超線程加速比最低,并且在SPEC CPU 2006和2017的浮點多任務測試中都出現(xiàn)了負增長,這能說明Intel的超線程技術最差嗎?這種笑話不能信,真正的原因應該是Intel i9-10850k有20個線程,同時運行20個任務,內(nèi)存帶寬成為了瓶頸。R5-5600G在SPEC CPU 2017的浮點多任務測試中也同樣出現(xiàn)了負增長,也能證明雙通道DDR4-3200這時已經(jīng)達到了極限。
桌面CPU不管有多少個核心,一般都只共享兩個內(nèi)存通道,這也是桌面CPU不能替代服務器CPU的主要原因之一。
stream內(nèi)存訪問速度測試
前面提到多任務并行時,內(nèi)存性能會成為瓶頸,服務器CPU必須有更多的內(nèi)存通道。但內(nèi)存頻率和通道數(shù)并不等價于內(nèi)存訪問速度, CPU中還有一個重要的組成部分是內(nèi)存控制器,內(nèi)存控制器和內(nèi)存是“誰慢誰有理”的關系。比如DDR4-2666雙通道理論帶寬上限超過40GB每秒,但國產(chǎn)CPU中的內(nèi)存控制器目前都達不到理論帶寬的的內(nèi)存訪問速率。
Linux下測試內(nèi)存訪問速率通常是使用Stream測試軟件,它也是以源碼方式提供,根據(jù)編譯參數(shù)不同而得到支持單線程和多線程測試的兩種版本。通常使用GCC編譯器的“-O”和“-O2”作為基礎編譯參數(shù),如果使用GCC的“-O3”參數(shù),對x86架構CPU的內(nèi)存復制性能會有加成。
內(nèi)存訪問速率除了受限于內(nèi)存控制器的實現(xiàn)以及CPU與內(nèi)存的時序匹配之外,還與應用程序有密切關系。沒有任何正常的軟件會只讀寫內(nèi)存而不干點別的事情,像Stream這種內(nèi)存的帶寬測試軟件也是如此。Stream是在模擬普通應用軟件訪問內(nèi)存的方式——在循環(huán)中讀寫數(shù)組,不像AIDA64那種執(zhí)著于帶寬極限,因此Stream測試得到的內(nèi)存訪問速率總是低于理論峰值。不過只要內(nèi)存控制器效率越高,Stream訪問內(nèi)存的速率也一定越高。
下面是用Stream對8款CPU訪問內(nèi)存速率的測試結果,分別測試了單通道-單線程、單通道-多線程、雙通道-單線程、雙通道-多線程。編譯參數(shù)使用了能代表大多數(shù)軟件的“-O”,對雙通道的情況又增加了對x86架構有加成的“-O3”參數(shù)。這8款CPU都是桌面CPU,但因為同系列的服務器CPU使用的內(nèi)存控制器一般也相同,只是增加了通道數(shù)量,所以通過下表中的測試結果也能估計它們對應的服務器CPU訪問內(nèi)存的效率。
從實測數(shù)據(jù)來看,海光3250的內(nèi)存控制器效率和AMD R5-2600相似,是DDR4-3200和2666內(nèi)存的差距造成了它們測試成績的差距。內(nèi)存控制器效率與海光和AMD最接近的是龍芯,龍芯的內(nèi)存控制器和CPU核心一樣都是自主設計。因為高水平的內(nèi)存控制器和高性能的CPU核心一樣難以買到,所以兆芯和飛騰的內(nèi)存控制器的效率都比較低,同樣是DDR4-2666內(nèi)存,它們的訪問速率和海光的差距很大。
所有的stream測試項目,兆芯KX-U6780A和飛騰D2000的速率都比海光3250和龍芯3A5000要低。如果只看在使用“-O”作為基礎編譯參數(shù)時的內(nèi)存復制效率,兆芯KX-U6780A和飛騰D2000在單通道和單線程時的內(nèi)存訪問性能甚至只有海光3250和龍芯3A5000的一半左右。兆芯KX-U6780A甚至在“雙通道-多線程”時的內(nèi)存訪問速度也只有海光3250和龍芯3A5000的一半左右。
下圖是在使用“-O3”參數(shù)之后,各CPU“雙通道-多線程”時4種測試項目的內(nèi)存訪問速度。當使用“-O3”作為基礎編譯參數(shù)時,所有x86 CPU的內(nèi)存復制的性能都有大幅度提升,但另外三項測試的速度沒有明顯變化。
從海光3250、AMD R5-2600、AMD R5-5600G的測試情況來看,AMD Zen和Zen3核心各自配套的內(nèi)存控制器差距還是比較明顯的。龍芯自主設計的內(nèi)存控制器也只是比兆芯和飛騰的更好,但與AMD及Intel還有相當大的差距。據(jù)介紹下一代龍芯6000系列已經(jīng)補上了DDR4內(nèi)存控制器的短板,達到了DDR4-3200內(nèi)存的理論帶寬,也就是說stream測試的內(nèi)存訪問速度應該和上表中AMD R5-5600G及Intel i9-10850k的測試結果近似。
UnixBench測試成績
UnixBench不是CPU測試工具,它測試的是最小整機系統(tǒng)的綜合性能。最小整機系統(tǒng)就是由CPU、主板、硬盤、內(nèi)存、操作系統(tǒng)構成的可以啟動的完整系統(tǒng),如果要測試UnixBench Graphics,那么還可以算上顯卡。我們此次不測試Graphics,因為GPU是一個很大的變量。
UnixBench主要是測試一臺電腦處理日常事務的效率,包括文本處理、浮點函數(shù)、文件讀寫、進程創(chuàng)建、管道通信、腳本執(zhí)行,這些都是應用軟件和操作系統(tǒng)常用的功能。因為所有功能的執(zhí)行都與CPU有關,所以它的測試成績也與CPU性能有直接關系。但是操作系統(tǒng)如果對創(chuàng)建進程、管道通信等等功能進行優(yōu)化,也能提高測試成績,因此UnixBench是既測試CPU也測試操作系統(tǒng),內(nèi)存和硬盤性能也占了一定的比重。總體上看,UnixBench的測試成績代表的是電腦執(zhí)行日常任務的流暢程度。
UnixBench的測試也分為單任務和多任務,不過單任務中有一項是多腳本并行測試,會分派到多個核心上同時運行,因此UnixBench的單任務不是純粹的單核任務。UnixBench和SPEC CPU一樣也有“作弊”優(yōu)化的手段,但老夫偏不許它們使用。
Intel i9-10850K無論是單任務還是多任務的成績都一騎絕塵,緊隨其后的是AMD 5600G,再之后就是海光3250和AMD R5-2600了。龍芯3A5000的單任務成績和AMD R5-2600是同一檔次,比海光3250和Intel i5-6500還高一些,但多任務成績就只能和兆芯KX-U6780A、飛騰D2000、Intel i5-6500歸為同一檔了。不過龍芯3A5000和Intel i5-6500只有4個核心,兆芯KX-U6780A和飛騰D2000有8個核心,也不知道誰會更加尷尬。
其實兆芯KX-U6780A和飛騰D2000在UOS系統(tǒng)中的的測試成績相對一年前已經(jīng)提高了很多,因為最近一年UOS系統(tǒng)做了大量優(yōu)化,帶來的附加效果就是UnixBench的多任務測試成績都提高了1000分左右,龍芯3A5000的UnixBench多任務測試成績也提高了近500分。
為了驗證成績提升確實來自于UOS系統(tǒng)優(yōu)化,我用Ubuntu 22測試了KX-U6780A的UnixBench成績,單任務僅有678.1分,多任務也僅有3156.1分,而在UOS系統(tǒng)中的測試成績分別是962.3和4764.7分,說明UOS系統(tǒng)的日常應用流暢程度遠高于Ubuntu。只不過這些優(yōu)化對SPEC CPU用處不大,各種純計算的任務主要還是依賴CPU本身的性能。
總結
目前國產(chǎn)CPU的性能與主流產(chǎn)品還有明顯的差距,因為CPU頻率的差距,即使的海光和龍芯CPU的單核性能也只有主流中高端CPU的一半左右.
在當前,國產(chǎn)CPU中海光的性能最高,龍芯在與海光的核心數(shù)量相同時性能差距甚小,飛騰的桌面產(chǎn)品只能用8核逼平龍芯4核,頗為無力。國產(chǎn)CPU中龍芯的成長能力最強,單核性能達到或超過R5-2600和i5-6500 的產(chǎn)品今年底或明年初就能供貨,而IPC則能達到AMD Zen3和Intel酷睿12代的水準。
X86架構的軟件生態(tài)最完備,ARM和LoongArch在Linux上的軟件生態(tài)是半斤八兩,龍芯的二進制翻譯暫時還不能完全彌補與x86的生態(tài)差距。
國產(chǎn)CPU的性價比很低,但既然已經(jīng)在討論性價比了,那就說明國產(chǎn)CPU的性能已經(jīng)可以用了,至少海光和龍芯是可以用了。
海光CPU是引進技術的代表,既有性能又有生態(tài);龍芯CPU是自主設計的代表,今年過后龍芯CPU的性能在國產(chǎn)中必定一騎絕塵。龍芯將能全力追趕Intel和AMD——超越它們是龍芯的執(zhí)念。
本文圖表中8款CPU的所有測試數(shù)據(jù),均為老夫實測,若需查看SPEC CPU、UnixBench的原始測試報告,請移步下方截圖中所示地址。