本篇文章2920字,讀完約7分鐘

蘇州討債公司【科技在線】

近年來,國內(nèi)的ic設(shè)計制造商相繼出現(xiàn)。 有龍芯、飛騰、申威等老字號設(shè)計公司,有兆芯、宏芯等新秀,也有商業(yè)上非常成功的海思、展信等arm陣營制造商。 但是,在性能方面,英特爾相對于各國產(chǎn)始終保持著較大的特點(diǎn),國產(chǎn)芯片與英特爾的芯片差距在哪里呢?

如何評價各家的cpu性能?

作為客戶,想盡量使cpu便宜是理所當(dāng)然的,性能可能會很高。 那么,什么樣的cpu性能高呢? 從架構(gòu)的角度來看,有每分鐘執(zhí)行幾條指令的mips這一指標(biāo),執(zhí)行指令的數(shù)量越多性能越好,但這其中在cpu指令集不同的情況下,比較mips沒有什么意義。 例如,a1指令可以是一個加法,b1指令可以制作1024點(diǎn)的FT。 特別是指令集不同的情況下,如何評價各家的cpu性能?

評價cpu性能需要考慮應(yīng)用的多樣化。 例如,科學(xué)運(yùn)算重視雙精浮點(diǎn)性能,但如果不能提供數(shù)據(jù),則運(yùn)算能力再高也沒用; 例如,pc的日常采用偏向整數(shù)性能; 例如,計算中心的多任務(wù)環(huán)境關(guān)注吞吐量。 ……這是單純用某個指標(biāo)測量cpu的性能不科學(xué),需要綜合考慮。

業(yè)界也推出了許多基準(zhǔn)測試計劃,包括比較cpu的spec、比較嵌入式APP的eembc等。 spec測試是一個比較權(quán)威的測試程序,與有點(diǎn)黑匣子的測試程序不同,spec測試各程序的得分和得分方法都是公開透明的,而且覆蓋全網(wǎng)絡(luò)的spec2000有12個指點(diǎn)程序

什么是spec測試?

spec利用計分中歸一化的幾何平均方法進(jìn)行綜合性能判斷,將不同cpu的執(zhí)行時間與參考對象進(jìn)行比較,得到相對值。

sepc2000的參照對象是ultrasparc2事務(wù)所的主頻率為300mhz的cpu。 如果執(zhí)行測試程序1的時間是參照對象的十分之一,則測試為1000分,如果執(zhí)行測試程序2的時間是參照對象的八分之一,則為800分……之后計算幾何平均。 例如,如果sepc2000有12個定點(diǎn)測試,則將12個測試的成績相乘,得出12次方。 今后,測試將重視性能平衡。 因為一個測試如果有短板的話,會被大幅拉伸

但是,spec也不完美,存在i/o帶寬和運(yùn)行時間容易受到編譯器的影響等問題。

例如,龍芯上一代的微結(jié)構(gòu)在spec2000上還存在問題,但在spec2006上問題較少,在gs464e上處理訪問問題后,由于spec2000對i/o帶寬的要求較低,所以沒有這個問題。 關(guān)于編譯器,sun通過編譯器優(yōu)化將spec運(yùn)行時間提高了50%。 龍芯上一代產(chǎn)品用lcc編譯器比采用gcc整數(shù)運(yùn)行時提高了60%。 即使采用相同的gcc編譯器,由于版本不同,或者優(yōu)化程度不同,所以評價也不太準(zhǔn)確。 ( gcc代碼的一部分由intel提供,對x86進(jìn)行了優(yōu)化,arm市場份額大,優(yōu)化也很好,mips、Alpha的優(yōu)化很一般。 )。

spec測試和高考非常相似。 雖然存在很多缺陷,但具有廣泛覆蓋程序、公開透明性的優(yōu)點(diǎn),是一個比較公平、能夠?qū)pu進(jìn)行比較合理評價的測試程序。

不同指令集的cpu比較

筆者將x86、arm、mips、alpha指令集的cpu列于下表。

除了明確了編譯器是gcc4.8以外,未知數(shù)via的白皮書中沒有注明測試中的gcc版本,剩下的編譯器筆者推測可能是swcc的i3550,i54460可能是gcc5.1。 只是筆者的推測,所以嚴(yán)格來說編譯器選擇空白色。 ( icc是英特爾的編譯器,可以使用x86芯片; lcc是龍芯的編譯器; swcc是申威的編譯器。 英特爾和amd的芯片為參考)

(因為編譯器不統(tǒng)一,所以表僅供參考)

從表中可以看出,在采用gcc編譯器的情況下,兆核、申威、飛行sepc2000測試和intelhaswell仍然有很大差距,spec2000測試得分較高的gs464e也將自己的lcc編譯器 另一方面,在主頻方面,國內(nèi)ic設(shè)計企業(yè)的高主頻僅為2g,與intel、amd3g以上的主頻差距明顯。

因此,國產(chǎn)cpu和intel的差別不僅僅在于主頻。 即使兆芯的zx-c達(dá)到3g以上的主頻率,微結(jié)構(gòu)上的差異也僅為i54660性能的40%左右。 因為這個微結(jié)構(gòu)很重要,所以cpu的安全性、性能、功耗很大程度上取決于微結(jié)構(gòu),可以說amd的cpu在同主頻上毫不遜色于intel,很大程度上取決于微結(jié)構(gòu)上的差異。

客戶購買cpu時,往往只關(guān)注主頻率、核心數(shù)量、工藝等參數(shù),而忽略細(xì)微結(jié)構(gòu)。 另外,由于intel這幾年從snb開始攪拌牙膏,微細(xì)結(jié)構(gòu)更新帶來的性能提升非常小,微細(xì)結(jié)構(gòu)的重要性更被忽視了。

微細(xì)結(jié)構(gòu)差異的原因

由于宏芯、兆芯、高品位、展會目前沒有自主設(shè)計的精細(xì)結(jié)構(gòu),因此用龍芯、飛騰新兩種產(chǎn)品與英特爾進(jìn)行了比較。 用gs464e和ivy的差距來說,可以針對下表的參數(shù),找出原因。


(僅限數(shù)據(jù)互聯(lián)網(wǎng)收集、娛樂)

以gs464e和ivy為對象,可以看到制約gs464e性能的大短板是定點(diǎn)發(fā)射隊列和浮點(diǎn)發(fā)射隊列,對于ivy的54個定點(diǎn)和浮點(diǎn)發(fā)射隊列,gs464e只有16個定點(diǎn)發(fā)射隊列、24個浮點(diǎn)發(fā)射隊列。

龍芯也知道這一點(diǎn),現(xiàn)在流媒體中的3a3000相比gs464e的瓶頸有所改善,定點(diǎn)發(fā)射隊列從16個項目提高到32個項目,浮點(diǎn)發(fā)射隊列從24個項目提高到32個項目,提高了緩存和主頻。 很明顯,龍芯宣布了tick-tock,但3a3000并不是簡單地相對于3a2000提高主頻,定點(diǎn)發(fā)射隊列和浮點(diǎn)發(fā)射隊列的提高必然會帶來ipc的提高。

根據(jù)飛騰公布的spec2006模擬器測試,整數(shù)為9.6/g。

9.6/g是什么水平呢? 筆者參考intel,關(guān)閉自動并行時,haswell采用gcc5.1的spec 2006的成績?yōu)?2分( @3.2g主頻)。 也就是說,小米能接近haswell嗎?

這真是太可怕了。 如果真的能做到的話,那就是科學(xué)技術(shù)的大躍進(jìn)。 spec2006整數(shù)9.6/g的理由是什么? 根源在于autoparallel的打開/關(guān)閉。

打開autoparallel時,由于原本運(yùn)行在單線程上的程序并行運(yùn)行在多個解決方案上,因此會產(chǎn)生sepc2006整數(shù)分鐘的增益。 增益效果取決于編譯器、cpu的核心數(shù)等因素。 典型代碼中有相當(dāng)一部分不支持自動并行。 因此,目前,autoparallel對spec的得分更有意義。 小米spec2006的整數(shù)高達(dá)9.6/g,很可能是測試中配方autoparallel的結(jié)果,有證據(jù)嗎?


(僅限數(shù)據(jù)互聯(lián)網(wǎng)收集、娛樂)

從上表中小米和ivy的對應(yīng)來看,小米和ivy還有不小的差距,另外和gs464e一樣,存在定點(diǎn)發(fā)射隊列和浮點(diǎn)發(fā)射隊列相對于ivy較少的現(xiàn)狀。 這是因為在資源有限的情況下,達(dá)到哈斯韋爾水平的概率非常低。

關(guān)于小米和gs464e,在假設(shè)兩者的流水線效率相等的情況下,小米有可能是與gs464e水平相同的精細(xì)結(jié)構(gòu),并且比armcortexa57更好。 當(dāng)然,如果流水線效率不好,小米可能也不會遜色于gs464e。 小米32m的l2緩存很可能是對服務(wù)器和高性能計算進(jìn)行比較的結(jié)果。

現(xiàn)在飛行的地球和龍芯3a3000正在放電影,期待著地球和3a3000的電影回來后的表現(xiàn)。

標(biāo)題:“國產(chǎn)龍芯、飛騰和 Intel 芯片的差距究竟在哪里?”

地址:http://ma86dd3.cn/lyzx/32911.html