龍芯:中國一定要建立自己的CPU生態 不能重複日本錯誤
2021年12月9日-11日,2021第六屆全球人工智慧大會(GAIR2021)於深圳正式召開。 歷經五年,見證數次潮水的轉向,成為目前為止粵港澳大灣區人工智慧領域規模最大、規格最高的學術、工業和投資領域跨界盛會。
在大會第二天舉辦的「積體電路高峰論壇:國產高端晶片之路」上,彙聚來自學術界、產業界和投資界的15位大咖,共同探討了國產高端晶元的實力以及RISC-V帶給中國晶元的機會。
CPU是一個複雜系統,在我們國家追求自主性的過程中,牽涉到三個維度的自主性,包括基於自主IP核的晶元設計、基於自主指令系統的軟體生態,以及基於自主材料設備的生產工藝。
一個晶元里集成大量的IP核,IP核是否自主設計是最基礎的維度。 指令集系統承載著軟體生態,軟體生態控制著產業體系,而產業體系是最大的卡脖子環節,基於國外指令集不可能發展自主的資訊產業體系。 由此,自主性顯得十分重要。
龍芯彭飛指出,中國一定要下定決心構建獨立於Wintel(Windows+Intel)體系和AA體系(ARM+Android)之外的自主的資訊技術體系和產業生態體系。
前兩大生態體系——X86的生態體系和ARM的生態體系——是美國主導的資訊化生態體系,未來要有基於我國的指令系統、國產的操作系統形成的,和這兩個生態體系平行的一套生態體系。
除了自主性,指令集的相容性也很重要。 龍芯中科基於二十年的CPU研製和生態建設積累推出的LoongArch指令系統,充分考慮相容生態的需求,融合X86、ARM等國際主流指令系統的主要功能特性,並依託龍芯研發團隊在二進位翻譯方面十余年的技術積累創新,可實現跨指令平臺應用相容,從而達到融合生態的目的。
以下是彭飛在GAIR 2021的演講內容,進行了不改變原意的編輯整理:
今天從CPU的角度介紹一下基於指令集的國內發展現狀。 CPU是一個複雜系統,在我們國家追求自主性的過程中,主要牽涉到三個維度的自主性:
1、自主IP核。
一個晶元會集成大量的IP核,CPU、GPU僅是其中一個IP核,IP核是否能自主設計是考慮自主性最基礎的維度。
2、基於自主指令系統的軟體生態。
指令集是晶元對外的介面,同時是承載上面軟體生態的體系基礎。
過去,全世界基本上是基於兩大生態體系:一是基於Windows+Intel,X86架構的產業生態體系;二是AA體系,就是ARM+Android,ARM架構的產業生態體系,分別在桌面伺服器、行動裝置領域構建出了兩大體系。 我們國家要打造第三套信息化體系。
2020年,龍芯中科正式推出了自主指令系統LoongArch,不包括國外任何授權,是跟X86、ARM平行的指令系統。
3、自主材料的設備工藝自主性。
現在外界常說的”卡脖子”問題,”卡”得最嚴重的就是這個維度。 為什麼會出現這種情況?
可能有兩方面原因:一是我國沒有承接國外先進的產業轉移。 積體電路起源於美國,當積體電路生產,從美國向外產業轉移的時候,有的轉移到日本、轉移到韓國,有的轉移到我們國家的臺灣,但沒有轉移到中國大陸。
另一個是過去國家積體電路設計相對比較薄弱,不能通過設計帶動工藝的發展。 不過,這幾年我國晶元設計能力有了大幅提升,通過晶元設計帶動整個工藝快速發展,從行業發展來看,雖然還有差距,但相信再過五到十年,這個差距可以補齊。
在70年代,美國矽谷的各種晶元蓬勃發展,當時晶元設計還不是美國一家獨大,日本、歐洲、韓國都有晶元設計能力。 Intel曾在70年代向日本公司授權,讓其採用相容Intel的架構設計CPU,這些CPU既便宜又好用,後來還反銷到美國。 1986年,美國揮起了制裁的大棒。
回顧那段歷史可以發現,美國制裁他國高端晶元的發展並不新鮮,歷史在反覆上演。 為什麼會出現這樣的情況?
當時日本犯了一個最大錯誤,就是只重視CPU產品的研發,忽視生態主導權。 如果一直做生態里某一款產品,會難以實現超越。 因此,掌握生態主導權極其重要。
1982年,NEC生產的個人PC用的是Intel的晶元,1985年換成了自研晶元,1986年又換回去了。 為什麼? 因為制裁失去了生態的主導權,這給我們很大的啟示。
中國一定要下定決心構建自己的資訊化生態體系,前兩大生態體系,X86的生態體系和ARM的生態體系是美國主導的資訊化生態體系。 希望未來基於我們自己的指令系統、國產操作系統形成和這兩個生態體系平行的一套生態體系,它是產業的基礎,在別人的基礎上蓋房子總是不牢靠的。
目前基於自主CPU的發展情況是怎麼樣?
左圖是龍芯3A5000晶元結構圖,這裡每一個方塊其實都是一個IP,這些IP都是完全自主設計、自主演進,左下角羅列了晶元裡面的IP核。
右上角反映了近十年自主CPU的發展速度,第一代3A1000跑分是2-3分,經過近十年的快速反覆運算,現在能達到30分(目前國際主流CPU跑分在20-40分之間)。 右下角圖片是晶元產業裡性能提升的曲線,可以看到,前幾年呈現線性快速增長,越往後增長越緩慢,龍芯CPU也即將達到性能增長的頂端。
指令集是資訊產業繞不過去的話題,前面提到,我國不可能基於國外的指令系統構建自己的產業生態體系,就像中國人可以用英語閱讀和寫作,但是用英語構建我們國家的文化體系、構建民族文化是不可能的。
另一方面,應該如何考慮指令集的自主和相容性? 過去十幾年,業界一直在爭論這個問題,相容性和自主性孰優孰劣? 相容有相容的好處,可以直接利用現有生態裡的軟體產品,有現成的生態,一開始發展速度可能會快一些,但最大的問題是受制於人。
那麼,我們能否做到既自主又相容的指令系統? 從龍芯過去二十年的發展來看,這是可以做到的,重點是要打造”3+3+3″的核心能力。 一是三大編譯器,GCC、LLVM、GOLANG。 二是三個虛擬機,Java、JavaScript、. NET。 三是三個翻譯器,實現對MIPS、X86、ARM的二進位翻譯,直接運行其應用軟體。
目前,龍芯中科推出了自主指令系統LoongArch,包括基礎架構部分和向量指令、虛擬化、二進位翻譯等擴展部分,近2000條指令,是充分考慮相容的指令系統。
LoongArch的特點主要表現在兩個維度:一是用戶態,二是核心態。
LoongArch是一個精簡指令系統,32位長指令、32個通用寄存器、32個浮點寄存器。 用戶態是給編譯器、程序設計者使用。 核心態在記憶體管理、控制寄存器的數量、規格都進行了大量的創新性設計,是符合現代操作系統的設計。
我們對LoongArch的性能進行了測試,在相同IP下,一個用MIPS指令集,一個用LoongArch指令集,可以看到,動態指令數下降了15%到20%,總體性能提升了12%左右。
LoongArch指令系統能夠支援二進位翻譯,融合了X86、ARM、MIPS、RISC-V指令系統的主要功能特性。
自主指令系統的生態是如何構建的。 龍芯中科推出了二進位翻譯器,又稱LAT翻譯體系。 最底層是LoongArch架構的晶片,再往上是操作系統,操作系統往上有幾個維度:基於LoongArch的原生Linux應用,比如說本地化的辦公、音視頻的應用。
同時,龍芯中科推出了三個翻譯器:MIPS應用往LoongArch上翻譯,ARM應用往LoongArch上翻譯,X86應用往LoongArch上翻譯,未來希望能夠做到:從MIPS翻譯過來百分之百性能不損失,從ARM翻譯過來90%性能不損失,從X86翻譯過來做到80%的性能不損失。
目前,Photoshop、微信、一些遊戲都可以在國產平臺上很好地運行,生態是有保障的,包括一些主流的Linux應用框架都可以原生支援。 國產操作系統廠商統信和麒麟也都推出了對應的國產操作系統版本。
關於LoongArch平臺的AI計算,龍芯中科構建了全域異購AI硬體支撐體系,龍芯CPU+GPGPU、龍芯CPU+ASIC、龍芯CPU+FGPA分別應用於通用AI計算和專用AI計算。 軟體方面,龍芯中科構建多層級AI軟體生態體系,包括系統支撐、計算框架、演算法模型層級,AI領域有完整的解決方案。
目前圍繞龍芯中科的產業合作夥伴已經有上千家,通過一系列的措施,包括標準建設、開源軟體建設、解決方案提供、安全體系、產品認證、人才培養、出版書籍等,從多個維度構建LoongArch產業生態體系。
同時,LoongArch正在構建技術產業聯盟,在聯盟里與產業合作夥伴實現智慧財產權的共用,一起打造一套生態。 希望在2025年消除指令系統之間的壁壘。