芯東西(公眾號:aichip001)
編輯 |? GACS

9月14日~15日,2023全球AI芯片峰會(GACS 2023)在深圳南山圓滿舉行。在首日的AI芯片架構創新專場上,珠海芯動力創始人及首席執行官李原分享了主題為《RPP芯片架構給AI芯片帶來的發展前景及機遇》的主題演講。

李原在演講中介紹了珠海市芯動力科技的背景和研發原因,提出并行計算有很大爆發區間。他對芯片效率進行了定義并提出計算方式:算法復雜度÷處理器核心復雜度,同時講出芯片中通用性與效率的平衡問題、人工智能的發展歷程,以及CUDA語言在并行計算中的應用。

李原還通過動畫演示了RPP架構的芯片設計與實現過程,包括數據流處理方式、環狀結構和內部SRAM的優化等。RPP架構具備全方位兼容CUDA的特性,意味著開發者可以直接使用CUDA編程語言編寫程序,無需進行復雜的代碼轉換。目前,芯動力首款基于可重構架構的GPGPU芯片RPP-R8已經流片成功,實現小規模量產。未來,珠海市芯動力科技可能采用Chiplet和I/O die連接的方式開發下一代產品。

以下為李原的演講實錄:

各位嘉賓好,各位老師好,非常感謝有機會跟大家分享,今天我看到了很多可重構的主題,我們也正好是做可重構架構的公司,也分享一下在我們研發過程中看到了什么事情。

我們是珠海市芯動力科技,2017年就回到了中國,開始研發新的芯片,我們稱之為RPP。我們開發的原因,是在2011年開始就看到了有巨大的并行計算的前景,其實并不是和AI有什么關系,而是看到并行計算將來是很大的爆發區間。

譬如,英偉達這家公司的市值之前比英特爾低了很多,大家都知道最近英偉達的市值遠遠超過了英特爾,以前是英特爾雄踞榜首多年。我們認為這個趨勢表示了并行計算對市場的巨大需求,市場也認可并行計算的巨大空間。

當時在2011年看到的是什么呢?如果把數字芯片做一下分類,起碼有通用性、性能兩個維度進行分類。CPU、GPU是比較通用性的芯片,它們是一類做處理器的工程師來主導的方向。我們以前在做通訊行業,做的主要方向是ASIC,也用不少FPGA,這種專用芯片占了很大的市場。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

但我們看到一個很大的空白區間,也就是可通用性的軟件,還有性能非常高的芯片、專用芯片的性能,是否有可能成為同時存在的一種架構。這種芯片在2011年左右是不曾存在的,我們認為,如果有這樣的芯片存在,市場需求肯定是巨大的。

一、什么是最優電路設計?給計算效率制定評估標準

首先當時必須要知道什么是芯片的效率。以前談論了很多,有各種各樣的說法,比如芯片的功耗是多少、芯片的面積里面放了多少、能計算多少東西等等,實際上都很不量化。但去給它一個比較嚴格的量化定義的時候,我們才有可能評估什么是芯片的效率。

對于一個應用,可以把它分解成各種各樣的指令,在最基本的指令完成整個計算的時候,它所消耗的晶體管的數量,還有所消耗的時間,就是它的資源。可以對這個算法的復雜度去進行這樣比較量化的定義。

處理器有一個核心,它是一種計算的方式,完成這個算法,使用了多少晶體管,再乘耗費的周期數,就是處理器的復雜度。這兩個東西如果進行相比,就可以得到大約的芯片的面積效率,芯片面積效率和芯片的功耗效率是息息相關的。

簡單地說,因為在這個場合我們也沒有必要推理一個比較復雜的數學公式,大約是計算單元占處理器核心面積的百分比。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

舉幾個例子來看,去評比一下各種各樣的處理器,比如說GPU、CPU、DSP、FPGA,甚至ASIC都可以比較,它們的效率很不一樣。

比如這是NVIDIA Jetson Xavier這個芯片,用臺積電12納米,GPU的面積大概是90平方毫米,大概能夠算出來是占了760M Gates,如果做INT8矩陣計算,它相當于12.8M Gates的矩陣計算。這樣算一下可以很容易得出來計算效率并不高。這是比較先進的架構了,但實際上只有這個GPU的芯片面積的1.6%用于真正的整數計算,效率是不太高的。

再看一下2016年谷歌提出來的TPU,當時是28納米,矩陣計算Unit、Accumulation Unit、Activation Unit這三個部分都是參與計算的,其他部分都是輔助單元。把這部分面積算出來,相當于397M Gates,能夠操作的INT8 MAC數量64k,換算出來它的面積效率的確比較高,是21%。其實我們用同樣的方法,CPU、FPGA、DSP、ASIC都可以算出來。

二、芯片通用性,重在成本與生態

ASIC是效率很高的東西,我們以前都是做ASIC的,可以做到盡量讓它接近百分之百,但是通用性同時又損失了。如果說我們要達到通用性,同時也要達到高的效率的時候,應該怎么做?

首先要回答什么是通用性。

我認為通用性沒有一個量化的回答,但是我在英特爾工作的時候得到一個教誨。英特爾做的工作是什么呢?給客戶帶來的價值就是Time-to-Market(產品上市速度),在客戶使用它的時候能多快進入市場,它是為客戶節省時間的,這是英特爾內部成功的定義。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

英特爾、Arm都是非常典型的成功的CPU公司,是通用計算公司,他們使用通用的編程語言而且一代代可以復用,使得客戶在這里面長期的投資可以得到保存。

英偉達也是,英偉達使用GPU,開放了CUDA語言以后很多客戶在這方面積累了很多的開源代碼,也有客戶自己寫的代碼。英偉達開發了非常多的計算庫,使得客戶非常好地使用起來,這也是英偉達在GPU領域能夠得到非常多客戶的原因。

但包含德州儀器、ADI等公司在內,現在都幾乎停止了DSP的研發,DSP也算是比較有方向感的處理器,但因為DSP由于過分地追求效率,暴露了很多匯編語言,客戶使用匯編語言的時候就不方便,而且一代代更新的時候,匯編語言就不能繼承,所以失去了市場,代碼也不能復用。

ASIC更加糟糕,往往ASIC在開發的時候就把應用程序寫到這里面去,比如NPU在作為計算的時候,ASIC可以認為只是做矩陣計算、卷積計算,其實在生態上還是難以形成。

我們認為AI是并行計算的代表,看它是怎么發展的。1950年左右,圖靈發表論文思考機器出現,1970年機器推理系統出現,1980年專家系統出現,1990年神經網絡出現,2010年深度學習出現,2017年Transformer提出,2023年AIGC出現。從這些變化可以看到,從最初到現在,它的算法程序都在不停地變化。

CUDA語言是通用并行計算語言,基本成為了行業的標準。從2016年,我們是第一家除了英偉達以外的公司,首次采用CUDA語言作為芯片架構的設計方向。英偉達的CUDA語言是非常成熟的,它不停地在研發前進的同時也開創了很多的市場。目前主流的計算平臺都是以CUDA語言來進行開發的。

另外一個方向,要看一下芯片的發展規律。在座的各位都是這方面的專家,但是隨著摩爾定律的增加,工藝不停地進步,復雜度不停地提升,設計的復雜度也提升,使得計算能力在提升的同時,帶來的問題也很明顯,關鍵就是成本。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

我第一次做芯片設計的時候還是90納米的芯片,后來65納米、40納米、28納米,到現在為止7納米、5納米,甚至要出現3納米的芯片。但是它的趨勢實際上是成本飛速的增長。有幾個公司能夠支持得了7納米、5納米?這個飛速增長帶來的是不變的規律,就是在芯片行業數字電路隨著納米數的推進,時間成本、資金成本、風險成本都是非常非常高的。它需要我們解決的矛盾,就是芯片技術飛速發展和特別長、特別大的資金的投入,以及特別大的風險之間的矛盾。

現在市場接受的是什么?絕大部分市場接受的東西還是CPU+GPU,是不是它的功耗比最高呢?不是。它的計算能力是不是最高呢?也不是,但是它現在變成了最被接受的主流平臺。原因大家都知道,它的生態起到了非常重要的作用。

三、基于自研RPP架構,打造“六邊形戰士”處理器

我介紹一下芯動力在并行計算上面的研發歷史和我們現在做到的成績。

從芯動力最早的研發開始,我自己在博士期間做的東西就是專用的芯片,當時在Turbo譯碼器出現的時候,我就研發高度并行的Turbo譯碼器;2008年我們做了第一家初創公司,做通用的衛星通訊算法的芯片,這也是高度并行的計算;后來Turbo譯碼器商用成功以后,被英特爾收購,進入了英特爾的服務器;之后又做出來了基站,也是一個高度并行的計算,其實是軟件化的一顆非常高度并行計算的芯片。

2011年第一家公司被并入英特爾之后,我們就提出來了計算效率的定義,開始并行計算的探索,剛開始從CGRA開始,也就是粗粒度可重構陣列開始的。我們知道語言對于一個芯片是至關重要的時候,就提出來使用CUDA語言重新構造一個并行計算芯片,這時候提出了“RPP”的概念,這也是一個數據流的方式。

在那之后,對于compiler(編譯器)的研究變成非常重要的事情。后來在工作中才發現,在這個架構中,寄存器和并行處理器里面的連線是同一個意思。由于這一點,我們攻克了編譯器的難關,直接達到了能夠使用CUDA編譯器,之后逐漸把這個芯片得到應用,現在已經在好幾個領域得到了應用,已經開始小批量出貨了。

我們大概講一下技術環節。首先從最基本的概念來講,什么是計算?就是用指令和數據來形成的圖,舉一個很小的計算例子,ABCDEFG,他們之間計算的輸出就是連線,連線在一個傳統的計算機里面就是寄存器,指令算出來的結果給了計存器,計存器再給下一個指令做計算,也就是時間軸的處理器。這樣的處理器很重要的標志就是現在正在做哪一個指令。這個是司空見慣的,CPU、GPU、DSP都屬于同一種處理方式。

當有并行計算的時候,并行計算的種類其實很多,我們現在討論其中的一種,也就是CUDA語言所定義的SIMT的并行計算。多數據、單指令的計算方式現在成為主流,這種方式做的事情跟原來C語言能描述的事情完全一樣,只是它的數據很多,英偉達認為它是多線程,所以用SIMT的方式來描述。當然也可以用原來的方式去計算,但這種方式的效率并不高。

什么樣的效率更高呢?也就是現在碰到的問題,是不是存在一種在并行計算里面的通用性和性能高度融合的東西?

經過了從2011年到2016年期間五年的研究,我們終于發現這個事情是存在的。我們把這個東西命名為RPP,也就是數據流的處理方式。它使用的是CUDA語言,ASIC可以用CUDA語言來執行這個程序,達到性能和通用性雙方的結合,但前提必須是并行計算。

并行計算的特點是什么?比如說在專用芯片里面,NPU性能比較高,但專用性太強,可能難以編程,GPU是一種非常通用的芯片架構,但效率并不高,RPP把兩種結合在一起,也就是達到效率很高的同時,通用性也和CUDA語言兼容。

這里用一個動畫來演示一下實現方式。指令由SEQ進行解碼,解碼下來的指令會下發給每一個計算單元,叫PE。當PE接收到指令之后可以驅動數據,把數據進行計算,往下一個指令進行下發。指令排布好以后,就形成一個數據流,這樣的數據流是有限的,我們只是使用了CUDA語言定義的所有指令形成了一個數據流,在有限的數據流之中形成一個環狀,讓它可以無限地延伸,這樣的方法可以對于任何的CUDA語言進行數據流的執行方式,直到它把所有指令都做完,就會把數據存回內存里面去。這做到和英偉達CUDA語言的指令集兼容,它只是在空間的執行方式而已。

但為了實現這么大的系統,要把它做成一個后端并不容易,因為它需要跑很高的頻率。動畫顯示了如何在一開始就必須得從后端進行設計,把芯片由后端去設計前端驅動的方式做完。我們有32個PE,這個PE放的位置的排列組合非常多,但數據流的本身可以形成一個環狀。

我們又有很多的SRAM來把數據進行適配,比較直接的想法就是形成一個環狀,32個PE形成一個環狀之后,可以把數據進行很好的連接,但這樣帶來的問題就是內存的大小被控制在內部不能變。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

我們后來采取了扁平狀的環,使得內存分布在兩邊,每一個PE可以到達SRAM的任何一點。這樣整個空間就由一個非常狹窄的22平方毫米的面積來組成。SRAM起到了一個很大的緩存,大大地減小了由片外DDR內存達不到的功耗效率。這樣的設計使得整個面積只有22平方毫米,對GPU來講提高了大概7倍的芯片利用面積。

把這個芯片制作成功以后,大概是32T INT8算力的芯片,已經流片成功并且進行了商用。我們把這顆芯片也拿回來做芯片效率的回訪,芯片效率是12%,也就是說它和TPU相比,第一代TPU只做INT8,我們在這里面還要做浮點,當然效率會低一點,把這幾個效率相比之后,可以看到,RPP的芯片效率和TPU的效率比較接近。

還可以看一下功耗效率,由于這個架構已經形成了一條流水線,功耗效率也很高。拿它和A100的7納米的芯片效率進行比較,可以看到,實測的效率遠遠超過了7納米芯片的功耗效率。利用這樣的芯片研發技術,完全可以在成熟的14納米的工藝上,完成一個7納米A100的等價性能,完全可以做到。

我們也對它進行了軟件生態上的研發。CUDA語言作為一個最底層的編程語言,對它進行了最基本的支持,在這之上英偉達還做了很多生態上的庫,比如說深度學習的TensorRT,我們做了完全一樣的OpenRT,在其它領域FFT、數學庫等等,我們都做了一樣的支持,這里面的工作比較花時間,因為不是公開的數據集。

珠海芯動力李原:什么是AI芯片最優解?自研RPP創新架構,將通用性與高性能融合丨GACS 2023

和其他性能之間的比較:RPP是一個綜合性能比較均勻的芯片,它部署比較快,因為它是用大家都所接受的CUDA語言來進行編程的;成本比較低,因為它的芯片面積遠遠小于現在GPU的芯片面積;功耗也遠遠小于GPU的功耗,性能比同樣的GPU更高,應用也非常廣泛。所以這個方向上這么多種不同類型的芯片,相比GPU、NPU、CPU等,RPP對并行計算來講是比較適合的類型。

在應用場景上,我們除了開發了AI,比如泛安防的領域以外,也開發了傳統的CUDA語言能涉及的領域,比如信號處理、醫療影像等等,完全是非AI的一些計算。我們已經完全超過了同等的DSP和FPGA的性能,所以在邊緣端現在得到了很多客戶的認可。

我們非常認同Chiplet帶來的價值,在下一代產品會把Chiplet和I/O die進行連接,形成在邊緣端更加適合的芯片,類似SOC的解決方案。在算力提升的方向,使用Chiplet的技術把多顆核心進行連接,提供更高的計算能力。我今天的講解就到這里,謝謝大家!

以上是李原演講內容的完整整理。