龍芯3A5000評測 國產自主指令集架構實戰
晶元器件中最著名的產物是CPU,國內CPU行業經歷步履維艱的發展,關注度越來越高,在政務、通訊、計算等領域經常可以看到國產CPU的身影。 但通用CPU領域還是國外CPU佔據主導。 桌面端有英特爾和AMD,移動端有ARM和高通等企業,國產CPU想要突出重圍並不容易。
這些年國內CPU企業在不斷發展的同時也在尋找破局之法,國內CPU廠商最常見的發展模式是購買指令集架構授權,ARM、MIPS甚至X86均有國內CPU企業獲得了授權。 購買指令集架構授權無疑是一種高效的手段,相當於在別人準備好地基的土地上建房子,產品不能稱為完全國產自主。 不過授權終究是授權,沒有相應產權的保護,依舊可能會受到制約。
LoongArch介紹
在2021年4月,龍芯中科率先在國產自主化跨出一步,宣佈推出完全自主指令集架構:LoongArch,頂層架構到指令功能和ABI標準完全自主。 這表明龍芯中科未來的CPU不再使用MIPS指令集架構,從今年推出的3A5000開始都將使用LoongArch架構,這無疑是晶元國產化的重要里程。
我們參照官方的資料,做了一下龍芯3A5000的微架構圖,可以粗略看到3A5000大體分為4個區塊,每個區塊包含一個核心和一個緩存。
根據官方的資料,LoongArch依舊屬於RISC陣營,擁有RISC的特點,比如32位定長指令,32個通用寄存器,32個浮點/向量寄存器。 但LoongArch也進行了改進,取消了RISC的指令延遲槽,直接跳轉指令的目標地址相對PC計算,增加相對轉移偏移量。
LoongArch 擁有近2000條指令,並充分考慮相容需求,相同的原始程式碼編譯成LoongArch比編譯成龍芯此前支援的MIPS時動態執行指令數減少10%-20%,也就是運行效率更高,性能也會提升。
LoongArch還深入研究了MIPS、X86、ARM的特性,能對這些主流架構進行二進位翻譯,對MIPS可以實現100%的翻譯,能實現跨平臺相容,龍芯目標是在2025年的時候消除指令集之間的壁壘。
2021年7月,龍芯中科發佈了兩款基於LoongArch指令集架構的處理器:3A5000和3C5000L。 3A5000處理器是面向桌面端的產品,3C5000L則是伺服器處理器。 3A5000主頻為2.3Ghz-2.5GHz,擁有4顆核心,每個處理器核心採用 64 位 LA464 自主微結構,支援DDR4-3200MHz記憶體,支援Hyper Transport 3.0控制器。 3C5000L則由4個3A5000封裝,擁有16個核心。
3A5000處理器內置了安全模組,可以對Meltdown(熔斷)和Spectre(幽靈)兩個經典CPU漏洞有效免疫,與上一代3A4000一樣支援內置加解密演算法和安全可信模組,也是目前唯一通過國內商密二級型號鑒定測試的CPU內置模組。
龍芯3A5000整機介紹
龍芯3A5000通用處理器主要應用在消費級桌面市場,未來會推出包括臺式機、筆記本、一體機等產品,這次我們拿到了搭載3A5000處理器的台式整機產品,龍芯3A5000整機在外觀上採用經典的商用辦公主機風格,以黑色為主格調,前面板提供一個常規開關按鈕,兩個USB 2.0介面,兩個音頻輸入/輸出介面。
龍芯3A5000整機
主機板I/O處,提供一個VGA視頻口,一個串行COM介面,4個USB 2.0介面,2個USB 3.2 Gen1 5Gbps介面,一個有線網口。
主機板I/O
其他配件上,這台主機使用了256GB的SATA固態,雙8GB DDR4 3200MHz記憶體。 顯卡為AMD Radeon HD 8750M,顯卡I/O提供一個VGA介面,一個HDMI介面。
紫光國芯(UnilC)2*8GB DDR4 3200MHz記憶體
AMD Radeon HD 8750M
卸下散熱器,可以看到這次的主角:龍芯3A5000,龍芯3A5000的晶元代號為”KMYC70″,這樣命名是紀念抗美援朝70年,而伺服器3C5000L晶元代號則為”CPC100″以慶祝建黨100周年。
這台主機中,龍芯3A5000直接焊接封裝在主機板上,不支援DIY更換。
編譯器方面,龍芯3A5000配套的三大編譯器GCC、LLVM、GoLang和三大虛擬機Java、JavaScript、. NET均已完成開發,龍芯自家基礎版操作系統Loongnix和面向工控領域的LoongOS已經發佈,不過我們手裡這台龍芯3A5000整機使用的為統信UOS系統,因為優化等問題,會與Loongnix及其他系統的龍芯3A5000主機性能有差異。
主機配置
統信UOS系統由多家國內操作系統核心企業自願發起並研發完善的安全、易用、穩定的操作系統產品,也是未來晶元國產化的生態關鍵一步。 其官網目前已經開放下載,有興趣的使用者可以自行去官網下載嘗試。 那麼除了統信UOS操作系統之外,實際上國內自主開發的操作系統麒麟Kylin龍芯版也是不錯的選擇。
實戰測試:
此次參與測試的處理器除了龍芯3A5000之外,還增加了inteli5 9500 六核 14nm處理器、國產ARM V8 四核 7nm處理器和國產ARM V8 八核 14nm處理器作為對比參考,整機主要的硬體參數保持一致。
其中, intel i5 9500 六核 14nm架構處理器主頻3.0-4.4Ghz,熱設計功耗65W。 國產ARM V8 四核 7nm處理器主頻可達2.6GHz,單晶元可支援64核。 另一款國產ARM V8 八核 14nm處理器,相容64位ARMv8指令集,主頻2.3GHz。
需要提前說明的是,參與測試的四款處理器核心數量並非一致,因此在多核測試專案中我們取處理器的最多核數成績。
基準測試
UnixBench效能測試:
下面我們正式開始測試,首先依然選擇大眾熟悉的UnixBench測試工具。 這款軟體是一個類 Unix(Unix,BSD,Linux)系統下的性能測試工具,被廣泛用於測試 Linux 系統主機的性能。 可以測試系統調用、讀寫、進程、圖形化測試等成績,也是一個全方面考驗整機的軟體。
UnixBench單核、多核性能測試
從測試結果可以看到,龍芯3A5000和國產ARM V8 四核 7nm這款處理器的性能表現都很出色,龍芯3A5000單核性能達到了1685分,相比上一代龍芯3A4000提升非常明顯,單核性能已逼近了intel i5 9500 六核 14nm這款處理器的水準。 這一點也正符合龍芯先通過設計優化提高單核性能,再利用先進工藝增加核數的升級策略。
多核性能對比中,龍芯3A5000達到4314分與國產ARM V8 四核 7nm的4387分基本持平,但如果與intel i5 9500 六核 14nm對比還是有不小差距。 不過,4核龍芯3A5000反而比國產ARM V8 八核 14nm這款處理器的性能高出了600多分。
SPEC 2006測試:
接下來我們進行SPEC 2006對比測試,SPEC 2006是一個大型的CPU性能測試專案,重點測試系統的處理器,記憶體子系統和編譯器。 能夠測試CPU最基礎的定點性能和浮點性能。 同樣需要提前說明的是,測試處理器由於核心數量並不對等,因此我們在多核測試環節選擇最多核數的成績。
SPEC CPU2006 BASE性能測試
本次我們將SPEC 2006測試分為單核與多核測試。 龍芯3A5000單核定點為25.1分,單核浮點為26分。 相比intel i5 9500 六核 14nm這款處理器的確有不小的差距,但單核定點與國產ARM V8 四核 7nm這款處理器不相上下,單核浮點略優於國產ARM V8 四核 7nm這款處理器。 龍芯3A5000對比國產ARM V8 八核 14nm處理器的單核定點則高出近10分,單核浮點則高出近一倍。
多線程測試中,intel i5 9500 六核 14nm處理器依然表現最佳,而龍芯3A5000的多核定點與多核浮點均高於國產ARM V8 四核 7nm處理器,由於國產ARM V8 八核 14nm處理器核心數量上具有一定的優勢,因此定點和浮點的分數要高於龍芯3A5000和國產ARM V8 四核 7nm處理器。
Stream:
Stream是業界主流的記憶體頻寬測試程式,測試行為相對簡單可控。 該程式對CPU的計算能力要求很小,對CPU記憶體頻寬壓力很大。 隨著處理器核心數量的增大,而記憶體頻寬並沒有隨之成線性增長,因此記憶體頻寬對提升多核心的處理能力就越發重要。
Stream記憶體測試
在Stream Copy測試子項性能中,龍芯3A5000的表現相當出色,已超過了intel i5 9500 六核 14nm處理器。 其中Copy單線性能獲得16864分,多線性能獲得21873分。 國產ARM V8 八核 14nm處理器和國產ARM V8 四核 7nm處理器分數相差不大,但Copy的整體表現比龍芯3A5000稍遜一籌。
應用測試
實際上,除了處理器的單核與多核的基準性能測試之外,使用者軟體應用體驗則可以更直觀反應處理器之間的性能差異,下面我們就來實測一下辦公常用WPS、瀏覽器與視頻播放機方面的應用體驗。
WPS:
我們將搭載四款處理器的主機安裝上同樣版本的統信UOS操作系統,然後用WPS辦公軟體分別打開10MB(文本+圖片)、50M(文本+圖片)以及 50M(文本+圖片+視頻)單個大容量檔,重點測試打開文檔速度來衡量處理器的性能,為了盡可能保證測試數據樣本的規律性,每個文檔均打開5次後取平均值。
WPS辦公軟體開啟文件速度對比(時間越短越好)
通過實際測試可以看到,10MB(文本+圖片)文檔打開速度中,國產ARM V8 八核 14nm處理器用時最短為1.47秒,龍芯3A5000打開速度為1.54秒。 50M(文本+圖片)打開速度中,國產ARM V8 四核 7nm處理器用時最長為3.01秒,50M(文本+圖片+視頻)測試中,國產ARM V8 八核 14nm處理器則用時最長為4.24秒,intel i5 9500 六核 14nm處理器用時最短為2.23秒。 綜合來看,intel i5 9500 六核 14nm處理器的整體表現較好,而龍芯3A5000略好於國產ARM V8 四核 7nm處理器,國產ARM V8 八核 14nm處理器小容量文件打開檔速度較好,但是大文檔打開速度上不夠理想。
瀏覽器:
瀏覽器是我們日常觀看網頁資訊和視頻的重要應用,目前每個網頁基本上都充斥著大量的圖形,對於CPU運行也會打來不小的負荷壓力。 下面我們就來測試一下四款處理器在瀏覽器上的性能表現。 我們同時打開瀏覽器並載入愛奇藝視頻網站,對比一下打開時間。 由於龍芯自家提供有Loongnix瀏覽器,因此龍芯3A5000選擇自家龍芯瀏覽器V3.1,而其他均選擇Firefox瀏覽器進行測試。
瀏覽器打開愛奇藝網站速度(時間越短越好)單位:秒
由於愛奇藝網站中存在視頻、圖片、CSS、JavaScript等等,因此載入頁面對處理器性能也提出一定的要求。 通過測試可以看到intel i5 9500 六核 14nm處理器載入速度表現較好用時1.4秒,龍芯3A5000的1.78秒也很不錯,最長用時的則是國產ARM V8 八核 14nm處理器用時2.35秒。
影音播放:
最後對比測試的是影音播放性能,我們選擇統信UOS操作系統下的默認視頻播放機,並打開同樣大小的1080P視頻mp4格式,分別測試四款處理器載入視頻的時間。
影院播放機載入1080P MP4視頻時間(時間越短越好)單位:秒
通過實測可以看到,國產ARM V8 四核 7nm處理器載入速度最快為1.43秒,龍芯3A5000為1.64秒緊隨其後,最慢的則是國產ARM V8 八核 14nm處理器用時2.09秒。 此外值得一提是,由於龍芯3A5000處理器性能提升顯著,因此在播放4K高清視頻的軟解能力也得到進一步提升,在脫離獨顯的情況下依然可以流暢播放高清視頻。
不破不立 不斷超越
長久以來,龍芯中科的目標是讓中國人用上完全自主的CPU處理器,二十年風華歲月,彈指一揮間,LoongArch的出現讓龍芯離這個目標邁進了一大步,這也不僅僅是龍芯的突破,也是中國自主CPU行業的新里程碑。
基於自主指令系統LoongArch的龍芯3A5000性能表現非常讓人滿意,短期內的短板是生態建設,應用軟體適配還需要加強。 儘管作為過渡階段,龍芯的二進位翻譯系統LAT可以實現跨指令平臺應用相容,也能夠運行部分X86/Windows應用軟體,但要想實現滿足各種應用需求的龐大軟體生態,仍需要國內軟體廠商的群策群力。
生態涉及的複雜程度有時候會比單一技術還要令人頭痛,CPU生態需要硬體、系統和使用者作為支援,硬體上龍芯已經有了LoongArch加持的龍芯3A5000,系統方面有統信UOS、麒麟Kylin等國產操作系統的適配。 LoongArch目前最需要的是使用者,用戶不僅包括消費者,也包括開發者,沒有開發者帶來的軟體生態支援,就不會有大量消費者買單,沒有使用者消費就沒有資金繼續研發,所以LoongArch大力推廣生態是當下最重要的一步。 蘋果 M1被認為可以威脅到英特爾和Windows,也是因為用戶基數龐大,加上全球上千萬的iOS開發者,才能成為CPU行業的黑馬。
有些使用者可能比較難理解,為啥我們CPU做了那麼多年,國內CPU生態還是建立不起來。 這裏筆者舉個例子,前段時間有消息稱英特爾要在歐洲建立一座晶圓廠,投入是多少呢? 消息顯示英特爾整個生命週期內總投資或將超過1000億美元,即使包括一些國家的政策補貼,英特爾每年在晶元研發上也有百億美元投入。 國內CPU整個行業實際投入都遠低於英特爾這樣的企業,根本不能滿足所有晶元企業的需求,大多隻勉強維持研發。 而且,國外CPU和操作系統在軟體生態、產業體系上磨合了幾十年。 正所謂差之毫釐,謬之千里,一個微小細節失誤就會讓一條億萬投入的產品線作廢,沒有資本必然玩不轉,門檻高,難入行,久而久之活下來的越來越少。
在這樣的環境下,龍芯能夠推出自主化指令集架構LoongArch實屬不易,準確的說像龍芯這樣現在還堅持做國產自主晶元的企業都值得尊敬。
不經一番寒徹骨,怎得梅花撲鼻香,自主之路無比艱難,龍芯這份勇氣令人讚歎。 現在龍芯已經踏出最艱難的第一步,接下來就是生態體系的建立。 目前龍芯中科已經建立LoongArch社區,同時將會組建LoongArch聯盟,免費開放LoongArch,希望更多的開發者可以參與其中,讓國產自主CPU走的更遠,期待龍芯中科為我們帶來全新自主的國產CPU生態領域。