兆芯KX-U6780A的單核性能略低于Intel T7500,UOS比Ubuntu更優(yōu)化
之前我用GCC編譯器、SPEC_CPU 2006測試過兆芯KX-U6780A的性能,在UOS得到的int_base和int_peak成績分別為15.6和17.5,這個(gè)成績和兆芯官方公布的使用ICC編譯器測得的成績差距很大。
兆芯官方只公布了3.0GHz的KX-U6880A的使用ICC編譯器測得的int_peak測試成績,然而市面上能買到的只有2.7GHz的KX-U6780A,從未見過KX-U6880A。兆芯官方公布的成績是29.2@3.0GHz,如果折算到2.7GHz的頻率,就應(yīng)該是26.26。對(duì)于SPEC CPU測試,使用GCC編譯器的成績一般是ICC的70~90%左右,我當(dāng)時(shí)強(qiáng)行按低位估算,認(rèn)為兆芯官方公布的成績是合理的,我使用GCC測試得到的成績也是合理的。
但是,我自己明白這樣的解釋并不十分合理,兆芯官方公布的ICC編譯器測試成績比我用GCC測試的高出太多,這個(gè)成績差距一直如鯁在喉, 因此我這幾天使用ICC編譯器再次測試KX-U6780A,探究它的真實(shí)性能水平。
為了令測試成績更加可靠,減少誤差影響,我使用最新版本的ICC編譯器,分別在UOS專業(yè)版(1050)和Ubuntu 22.04 LTS上進(jìn)行測試。并使用完全相同的軟件環(huán)境對(duì)2007年的Intel Core2 Duo T7500進(jìn)行測試,還在SPEC官網(wǎng)上找到Intel Core2 Duo T7700的測試成績共同作為參考。
測試使用ICC 20211109版本編譯器,int_base是常規(guī)測試,沒有開自動(dòng)并行,也沒有使用第三方庫。int_peak測試除了針對(duì)每個(gè)項(xiàng)目單獨(dú)配置優(yōu)化參數(shù)之外,還啟用了二次編譯優(yōu)化、對(duì)462項(xiàng)開啟自動(dòng)并行,對(duì)471、473、483這三項(xiàng)使用了jemalloc庫。
編譯優(yōu)化參數(shù)基本上在UOS/KX-U6780A上進(jìn)行調(diào)整,然后僅把-msse4.2修改為-msse3就給T7500使用,因此編譯優(yōu)化參數(shù)對(duì)T7500不算很友好。下圖是基本編譯參數(shù),int_peak測試時(shí)對(duì)各項(xiàng)單獨(dú)優(yōu)化的參數(shù)可以在文末的測試報(bào)告中看到。

在Ubuntu上測試時(shí),使用與UOS上相同的編譯參數(shù),但測試成績要比在UOS上低一些。

KX-U6780A的主頻比T7500高,DDR4-2666內(nèi)存的速度更是DDR2-667的8倍,但從測試成績來說,KX-U6780A并不占優(yōu)。兆芯官網(wǎng)上3.0GHz的KX-6880的int_peak成績?yōu)?9.2,折算到2.7GHz應(yīng)該有26.28。但我竭盡全力只測試出了21.1的成績,說明兆芯官方的測試可能使用了一些秘密的技巧,不是普通的技術(shù)人員能夠知道和掌握的。
至于我測試出來的成績,自認(rèn)為沒有疑問??纯醋鳛閰⒖嫉腡7700的SPEC CPU 2006測試成績就知道,它的主頻比T7500要高0.2GHz,但SPEC官網(wǎng)上的最好成績卻比我測試的T7500更差。我配置的編譯參數(shù)應(yīng)該不會(huì)比SPEC官網(wǎng)上的更適應(yīng)T7500,但是我用的系統(tǒng)和編譯器等都是很新的版本,成績提高主要是軟件環(huán)境優(yōu)化帶來的紅利。以及在測試int_peak時(shí)使用了jemalloc庫,也進(jìn)一步提高了測試成績。
既然T7500與T7700的成績可以相互印證,那么在相同軟件環(huán)境下,使用相同編譯參數(shù)測試得到的KX-U6780A的成績自然也是真實(shí)可靠的。
而GeekBench和p7zip的測試成績,我認(rèn)為主要是8倍的內(nèi)存性能給KX-U6780A帶來了正向增益。即使如此,考慮到KX-U6780A的主頻為2.7GHz,而T7500僅為2.2GHz,計(jì)算為每GHz的性能后,比較單個(gè)核心KX-U6780A仍然低于T7500。
VIA的CPU當(dāng)年是與Intel ATOM系列對(duì)標(biāo),以VIA為商標(biāo)的最后桌面CPU產(chǎn)品在2011年發(fā)布,沿用了VIA旗下Centaur設(shè)計(jì)的“Isaiah” 核心,設(shè)計(jì)水平弱于2007年的Intel Core2 Duo合情合理。兆芯ZX-C系列于2016年發(fā)布,仍然是使用的“Isaiah” 核心。但是兆芯KX-U6780A是2019年發(fā)布,核心設(shè)計(jì)水平卻仍然弱于2007的Intel Core2 Duo。如果假設(shè)KX-U6780A仍然是沿用的VIA/Centaur“Isaiah”核心,那么這樣的性能表現(xiàn)就合理了。
就像以一款解放前的汽車發(fā)動(dòng)機(jī)為核心設(shè)計(jì)汽車,為它配套較新的底盤(變速、傳動(dòng))、車身(外觀、風(fēng)阻)、電氣設(shè)備(控制、安全)等,這樣的汽車在低速(低負(fù)載)行駛時(shí),駕駛體驗(yàn)不會(huì)比常規(guī)的新車差多少,只有“速度上不去、油耗下不來”這樣的缺點(diǎn)。例中的這輛汽車,所有的性能及體驗(yàn)提升都來自于外圍組件,是工藝革新、技術(shù)進(jìn)步帶來的紅利,而非發(fā)動(dòng)機(jī)本身有改進(jìn)。如果KX-U6780A相對(duì)于10年前的VIA/Centaur產(chǎn)品只是升級(jí)了DDR內(nèi)存控制器、PCI-E控制器、增大了緩存、堆多了核心、更新了工藝、提高了主頻……那也是吃了大環(huán)境的技術(shù)及工程水平提升的紅利,而不是CPU核心設(shè)計(jì)水平有提升。
下面再來詳細(xì)對(duì)比一下SPEC CPU 2006 INT的單核測試成績:
首先是int_base成績,base測試要求所有測試項(xiàng)目的編譯參數(shù)一致,不能針對(duì)每個(gè)項(xiàng)目單獨(dú)優(yōu)化。這里是進(jìn)行的單任務(wù)測試,在不開啟“自動(dòng)并行化”的時(shí)候,測試的就是單核心的性能??偝煽兊挠?jì)算方式是把各個(gè)子項(xiàng)成績求幾何平均。


Ubuntu的優(yōu)化水平不如UOS,同款CPU總成績低于UOS, 且對(duì)于462子項(xiàng)極不友好,沒能發(fā)揮出CPU應(yīng)有的向量計(jì)算性能。
下面的int_peak測試可以展現(xiàn)使用ICC編譯器時(shí),自動(dòng)并行化的可怕威力。UOS下KX-U6780A的462子項(xiàng)成績從70提到了到200,因?yàn)镵X-U6780A有8個(gè)核心。Ubuntu對(duì)自動(dòng)并行化看起來不太友好,相同的編譯器、相同的編譯參數(shù)、相同的CPU,自動(dòng)并行化對(duì)性能的提升幅度遠(yuǎn)低于UOS。


因?yàn)镵X-U6780A有8個(gè)核心,而T7500只有2個(gè)核心,在UOS下的int_peak測試中,462子項(xiàng)的多核加速比很低,因此T7500的總成績略遜于KX-U6780A。這不能說明KX-U6780A的單核性能更高,只能說明核心數(shù)量越多,開啟自動(dòng)并行化后得到的成績提升越大。
462這一項(xiàng)測試在Ubuntu上的成績低于UOS,且自動(dòng)并行化的運(yùn)行效率遠(yuǎn)比UOS差。UOS下KX-U6780A單核運(yùn)行462這一項(xiàng)時(shí)成績超70, 8核自動(dòng)并行462這項(xiàng)成績超過200,而在Ubuntu下僅分別為66和82。說明ICC編譯器的自動(dòng)并行化也沒有那么無敵,操作系統(tǒng)就能輕松抹平差距。可能Ubuntu的服務(wù)器版本沒有這樣的問題?純屬猜測。
再貼一張KX-U6780A在Ubuntu下測試p7zip的圖,與上面表格中在UOS下的相同測試相比,Ubuntu的成績同樣要差一些。

注意上圖中最右邊窗口中顯示的CPU信息,“廠商ID”這一欄與VIA/Centaur的其它CPU相同,都是“CentaurHauls”,可謂一脈相承。有人解釋說因?yàn)閃indows和一些軟件中有一些對(duì)Centaur的優(yōu)化,兆芯才“偽裝”成“Centaur”,要不然就什么軟件優(yōu)化都沒有。這種說法純粹是哄騙外行,看到CPU信息下的“標(biāo)記”那一欄了嗎?標(biāo)記下面列出了各種擴(kuò)展指令和特性支持,這些才是是否啟用相關(guān)優(yōu)化的判斷標(biāo)志。Intel CPU的“廠商ID”歷來都是“GenuineIntel”,如果依靠“廠商ID”來判斷是否啟動(dòng)特定的匯編指令優(yōu)化,那么應(yīng)用軟件就會(huì)在奔騰4上使用avx-512了。
按照慣例,本人測試SPEC CPU是一定要貼出測試報(bào)告截圖的,測試報(bào)告中包含了詳細(xì)的軟硬件環(huán)境及以編譯參數(shù)信息,有條件的網(wǎng)友都可以驗(yàn)證測試成績是否可靠。而不像某些個(gè)人或企業(yè),在PPT或表格上只寫上數(shù)字就表示成績真實(shí)無誤,也不像某些人自稱實(shí)測卻怎么也不給出測試條件的相關(guān)信息。
測試報(bào)告 KX-U6780A / UOS:

測試報(bào)告 KX-U6780A / Ubuntu:

測試報(bào)告 Intel Core2Duo T7500 / UOS:

測試報(bào)告 Intel Core2Duo T7500 On Ubuntu:
