中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

杜佳豪發表於2020-03-04

作為國產 X86 架構 CPU 中最特殊的一個,海光 Dhyana 效能究竟如何?

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端


有關國產晶片話題的新聞,時常會引來人們的關注和討論。在國內目前有很多家不同型別的晶片公司,涉及架構覆蓋 x86(海光、兆芯)、MIPS(龍芯、君正)、ARM 架構(華為海思等)、RISC-V 架構(阿里平頭哥)等幾乎所有方向,其中海光所走的道路可謂最為特殊。

貿易戰期間,國產處理器與中科海光(Hygon)一度被推上了風口浪尖——美國曾向晶片業巨頭 AMD 施壓意圖阻止中國公司獲取先進 CPU 技術,此事引得 AMD CEO 蘇姿豐在不同場合進行了多次表態。AMD 曾向海光進行過一代 Ryzen 和 EPYC 的 Zen 架構授權,基於這些技術,海光已經推出了「中國版 Zen 架構」晶片。

這個故事還得從 2016 年說起,當時 AMD 與中國天津海光先進技術投資有限公司(THATIC)簽訂了技術許可協議,前者將旗下的 x86 和 SoC IP 技術授權為中國公司用於晶片開發,AMD 則獲得了價值 2.93 億美元的現金(外加特許權使用費)。

對於動亟數億美元投資的晶片行業來說,這筆交易在現在看來似乎有些難以理解,不過考慮到當時的情況:中國公司希望能夠為高效能 X86 架構提供本土化解決方案,而 AMD 急需資金,於是我們就看到了目前時而出鏡的 Dhyana 處理器。它也成為了我國在面臨貿易戰極端情況下的備選方案之一。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

但擺在這所有之前的問題是,既然 AMD 的 X86 架構授權有相當程度來自於英特爾,那麼 AMD 再將自己的其中一部分授權給海光是可行的嗎?實際上,它並沒有違反英特爾與 AMD 之間的任何許可協議,而且更重要的是,它沒有違反美國有關高效能運算智慧財產權出口的任何法律。

據介紹,美國政府為英特爾、AMD 等公司生產的處理器進行了價值標定,一旦其算力(FLOPS)和功耗的比值過高就會被認為是「效能過強」而被限制出口。不過早在 2015 年,AMD 就已向美國國防部、商務部等機構進行了申請,並獲得了向中國提供技術轉讓的許可。

所有一切的目標,就是為了向中國提供 AMD 的 Zen 1 CPU 版本,並讓這一版本可被稱為是「中國製造」。多年以來,中國一直希望擺脫對於西方技術的依賴。在這裡,AMD 並未將完整的 CPU 架構交給了中國公司,它所做的是向海光許可了單核設計以及 SoC 佈局,由後者進行實現化設計(同時 AMD 也少量參與了海光的設計工作)。最後這些設計會經由格羅方德(GlobalFoundries)以 14nm 工藝生產成為晶片發向市場。此外海光還會幫助設計基於此架構的主機板。

然而 2019 年,美國商務部將海光加入了實體清單,這意味著 AMD 難以繼續向合資企業授予任何其他 IP 許可。海光現在仍然可以使用已獲得許可的原始 IP,並且可以繼續對其進行改進。

最近,海外媒體 anandtech 對這些晶片進行了首次評測,不過需要注意的是:測試的 CPU 皆為工程樣品。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

它們是類似於 8 核 Ryzen 1000 的桌面級 CPU,以及一塊 32 核 Hygon 2U 伺服器 CPU。它們屬於「7185」型號,是海光提供的頂配 32 核處理器。

海光系統

Anandtech 本次評測獲得的 Dhyana Plus 系統,和 2017 年 3 月 AMD 提出的,代號為 Naples 的高效能商用伺服器架構非常類似。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
而基於 8 核心 Dhyana 晶片的臺式工程機樣品則沒有明顯的型號線索。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

如圖所示,主機板使用 microATX 形式,設計上非常「伺服器化」,DDR4 記憶體卡插槽平行於——而非垂直於風路排列,這有利於氣流透過機箱快速散熱。從插槽上看,評測拿到的是無插槽 BGA 設計,這意味著 CPU 與主機板連線在一起,無法更換升級——這又類似於我們經常會在筆記本或嵌入式系統上看到的設計。

這塊 CPU 由一個六相電力系統供電,而且是一個純 CPU 產品,沒有整合顯示卡。另有一個 IPMI 控制器提供 2D 影像輸出能力,它是通常會出現在伺服器系統中的 ASPEED AST2500 晶片。與常見的 microATX 主機板相比,海光系統只有三個擴充套件槽,其中兩個是全長的 PCIe 3.0,另一個則是開放式的 PCIe x4。

通常這樣的 CPU 並不需要晶片組支援即可工作,因為它們已經整合了一些 SoC 級別的 IO 功能,不過一些 Ryzen CPU 的使用者還是會使用 X370 晶片組與之配合。海光晶片在這裡使用的是 Lattice Semiconductor FPGA 作為晶片組。這為主機板提供了一套奇特的組合 IO:包括 SATA 埠、四個雙 LED 螢幕輸出,許多自定義連線口、按鈕以及一些無法識別的東西。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
在海光主機板上放一塊 Ryzen CPU 作為示意。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

相比之下,海光的雙插槽伺服器主機板就顯得非常強大了。據瞭解,這些伺服器是為計算以及儲存任務設計的,每塊 CPU 與四個分支聯結器配對,通向 4 個 U.2 介面硬碟或者 16 路 SATA。這些 CPU 擁有接通八路記憶體的能力,但在本次測試中作者只使用了四通道。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
海光伺服器端 CPU 特寫,這塊晶片型號為 C86 7185。

基本屬性

這臺伺服器實際上是由中科曙光(Sugon)設計的,有 12 個前皮膚 2.5 寸驅動器插槽。而對於 8 核桌面系統,測試過程中則將其置入一個標準的桌上型電腦平臺,並配備 CPU 風扇。兩種系統都透過遠端桌面訪問的方式進行了測試。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端


首先是簡單的 Benchmark 跑分,CPU-Z 看起來不能完全識別海光的 CPU。跑分軟體只能對 8 核桌面 CPU 的單核進行識別,顯示為 3.2GHz,除了對 AVX、AVX2 和 FMA3 的支援資訊外,也沒有其他更多資訊了。對於伺服器 CPU,CPU-Z 則完全無法執行。由此觀之,跑分軟體把 CPU 的每個核心都錯認為一個單獨裝置了,而且 AMD 消費級 CPU 上的一些資料訪問方式也和海光晶片有所不同。

那麼問題來了,與 AMD 的 Ryzen/EPYC 相比,海光處理器究竟有哪些不同?總體而言,核心佈局是相同的,快取大小、TLB 大小和埠分配都相同,在基礎級別上兩者沒有差異。CPU 仍然是 64KB 四路 L1 指令快取,32KB 八路 L1 資料快取,512KB 八路 L2 快取以及 8MB 十六路 L3 快取,與 Zen 1 核心完全相同。

加密方式變化

在 Linux 核心升級中有關加密變化的資訊已經明示。這些更新圍繞 AMD 虛擬化功能(SEV)的安全加密進行。通常對於 EPYC 處理器來說,SEV 由 AMD 定義的加密協議控制,在這種情況下為 RSA、ECDSA、ECDH、SHA 和 AES。

但在海光 Dhyana 處理器中,SEV 被設計為使用 SM2、SM3 和 SM4 演算法。在更新中有關 SM2 的部分宣告道,這種演算法基於橢圓曲線加密法,且需要其他私鑰/公鑰交換;SM3 是一種雜湊演算法,類似於 SHA-256;而 SM4 是類似於 AES-128 的分組密碼演算法。為支援這些演算法所需的額外功能,其他指令也被加入到了 Linux 核心中。在說明檔案中指出,這些演算法已在 Hygon Dhyana Plus 處理器上成功進行測試,也已在 AMD 的 EPYC CPU 上成功測試。

基準測試

此外,海光與 AMD 原版晶片最大的設計區別在於吞吐量,儘管整數效能相同,但海光晶片對於某些浮點指令並未做流水線處理,這意味著吞吐量和延遲都減小了:

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

這些對於最基礎的任務來說也會有所影響,降低吞吐量的設計會讓 CPU 在平行計算時效能受限。另外一個最大的變化,以及 Dhyana 與伺服器版的「Dhyana Plus」版本之間的不同在於隨機數生成的能力。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

可以看到,RDSEED(用於生成隨機數演算法的種子生成)在伺服器版本的海光晶片上的處理速度慢了 10 倍以上,而用於實際生成基於硬體的隨機數的 RDRAND 則比標準 Ryzen 快-在伺服器晶片上亦是如此。

關於 AVX 和 AVX2 的效能,儘管 CPU 被標識為支援這兩個功能,但對於它們的 Benchmark 卻失敗了。而有關 AES 的測試,因為不支援所以獲得了低分:

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

還需注意的是,通常用於測量 AMD CPU 功耗的方法在這裡也無法使用了,看起來已被刪除。

Windows 效能

兩個測試系統被安裝了 Windows 10 Pro 與企業版。由於 AVX/AVX2 無法正常工作,測試的範圍受到了限制。不過對於海光 CPU 來說,在實際使用中應該更多地是與 Linux 進行配合。

中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端
中科海光CPU的首次評測:基於AMD架構,覆蓋桌面伺服器端

從測試資料中我們可以看到,因為時脈頻率,8 核心的 Dhyana 處理器的效能大概在 6 核的 Ryzen 5 1600X 與 8 核心的 Ryzen 6 1800X 之間,但在某些測試上,它的效率甚至只能和 Athlon 200GE 相比。32 核的 Dhyana Plus 伺服器晶片看起來有一些缺陷,經常會被 Ryzen 7 1800X 擊敗,更不及當前世代的 Ryzen 9 3950X。不過在某些基準如 Corona 上,海光伺服器 CPU 的表現看起來不錯。

結論

由於在 Zen 1 的基礎上進行了大量的修改,海光 CPU 可以不用簡單地稱之為換殼 AMD 處理器了。但其效能相比同代原版 CPU 略差:整數效能基本相同,浮點效能顯著降低——普通指令吞吐量只有基準水平的一半。海光 CPU 的隨機數生成機制也被修改,加密引擎已被替換,不再對常見的 AES 指令進行加速,但覆蓋了其他面向國內安全性的指令如 SM2、SM3 和 SM4。

為了能讓 AMD 的設計順利轉換為國產 x86 CPU,AMD 與海光成立了複雜的合資公司,以便讓核心技術繼續由 AMD 保留,而國內公司可以在其之上進行修改。此後這些晶片由 GlobalFoundries 進行生產(它是由 AMD 製造部門拆分出的半導體晶圓代工廠),最終成品打包出售給中科曙光等公司。

總體而言,海光 CPU 為中國提供了英特爾之外,x86 架構晶片的替代產品,在自產晶片,乃至當前貿易戰背景下可以起到一定作用。而 AMD 自 2016 年的合作中也獲得了急需的資金,為日後成功的發展帶來了一定幫助。但由於合作協議僅限於 Zen 1 而非目前成功的 Zen 2,海光晶片的競爭力受到限制,可能僅限於政府單位使用。想要製造更加強大的晶片,我們還需努力。

參考內容:
https://www.anandtech.com/show/15493/hygon-dhyana-reviewed-chinese-x86-cpus-amd

相關文章