“龍芯”成為世界主流CPU企業(yè)任重道遠(yuǎn)
在美國禁售芯片事件之后,龍芯作為“接班人”受到極大關(guān)注,對于國產(chǎn)龍芯的性能我們已經(jīng)針對其進(jìn)行了部分測試。
目前最新的龍芯3B-1500有8個核心,工作在1.2GHZ,1GHZ下理論雙精度浮點(diǎn)運(yùn)算能力128G Flops。作為對比,i7-4770的理論浮點(diǎn)性能是256G Flops,而早期的i7-980X只有80G Flops。
但需要注意的是上述數(shù)據(jù)均為理論值。真實(shí)的浮點(diǎn)運(yùn)算應(yīng)用中它們的表現(xiàn)又是如何呢?計算所公布了龍芯3B 1.2GHZ運(yùn)行SPEC_fp 2000浮點(diǎn)測試集的成績,該測試集考察處理器單線程浮點(diǎn)運(yùn)算能力,我們來和兩款較老的CPU對比一下(ARM芯片很難找到這方面成績故不參與對比):
不幸的是,這里龍芯的差距更大了。單核心性能連i7-2600的十分之一都不到,實(shí)在凄慘。2009年古老的Core i5-760都遠(yuǎn)遠(yuǎn)勝過現(xiàn)在的龍芯3B。
為什么龍芯的理論數(shù)據(jù)會和實(shí)際表現(xiàn)有如此大的差異呢?我們要知道,處理器的理論浮點(diǎn)運(yùn)算速度并不能直接反映實(shí)際表現(xiàn)。實(shí)際程序運(yùn)行的快慢還與很多因素有關(guān),其中非常重要的一項(xiàng)指標(biāo)就是內(nèi)存和緩存性能。內(nèi)存性能不足,就算理論性能再高也是無濟(jì)于事的。
那么龍芯的內(nèi)存性能又是怎樣的呢?遺憾的是龍芯3B-1500雖然使用了雙通道DDR3 1066內(nèi)存,但由于訪存部分設(shè)計水平不佳等原因,實(shí)測帶寬只有理論值的10%左右-也就是2GB/s的水平。我們對比一下龍芯3B和主流CPU的內(nèi)存帶寬:
其實(shí)一些高速SSD的讀寫性能都要比龍芯的內(nèi)存更強(qiáng),實(shí)在是諷刺。
SPEC CPU 2000測試集中龍芯的孱弱表現(xiàn)很大程度是因?yàn)閹捦狭撕笸?。我們再看一?xiàng)服務(wù)器常見的基準(zhǔn)測試UnixBench 5.1.3中龍芯的表現(xiàn):
同樣不忍直視。在這項(xiàng)為多核心優(yōu)化的項(xiàng)目中8核心的龍芯3B還不如頻率相近的雙核賽揚(yáng)。8核心的Atom C2750與四核心的XeonE3更是將龍芯遠(yuǎn)遠(yuǎn)甩開。服務(wù)器應(yīng)用對內(nèi)存帶寬的要求較高,龍芯的帶寬瓶頸更為明顯。
現(xiàn)實(shí)是殘酷的:2008年,籌劃中的曙光千萬億次超級計算機(jī)本來準(zhǔn)備使用龍芯3B為主要處理器,成為第一臺國產(chǎn)千萬億次超算;然而后來龍芯3B屢屢推遲發(fā)布,到2012年早期版本的3B小規(guī)模量產(chǎn)時,曙光項(xiàng)目組發(fā)現(xiàn)這些3B空有美好的理論參數(shù),實(shí)際表現(xiàn)太差,因此只采購了原計劃的30%的數(shù)量用于測試和研究。2013年新加坡曾計劃使用龍芯3B建造一臺超算系統(tǒng),后來也沒了下文。2014年計算所龍芯項(xiàng)目組組長胡偉武公開承認(rèn)過去數(shù)年來龍芯的發(fā)展策略失敗,間接宣告了龍芯3B將成為歷史。
計算所宣稱下一代龍芯CPU的訪存性能將比現(xiàn)在提升10-20倍,屆時龍芯的帶寬瓶頸將得到極大緩解。倘若目標(biāo)達(dá)成,未來的龍芯趕上AMD現(xiàn)在的水平還是很有希望的。不過CPU性能問題解決后,MIPS指令集的龍芯還將面臨軟件生態(tài)薄弱、周邊硬件支持不足等困境。總之,龍芯在成為世界主流CPU企業(yè)之前還有很長的路要走。