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

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

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

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

以下為李原的演講實錄:

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

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

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

一、什么是最優(yōu)電路設(shè)計?給計算效率制定評估標(biāo)準

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

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

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

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

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

二、芯片通用性,重在成本與生態(tài)

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

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

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

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

ASIC更加糟糕,往往ASIC在開發(fā)的時候就把應(yīng)用程序?qū)懙竭@里面去,比如NPU在作為計算的時候,ASIC可以認為只是做矩陣計算、卷積計算,其實在生態(tài)上還是難以形成。

我們認為AI是并行計算的代表,看它是怎么發(fā)展的。1950年左右,圖靈發(fā)表論文思考機器出現(xiàn),1970年機器推理系統(tǒng)出現(xiàn),1980年專家系統(tǒng)出現(xiàn),1990年神經(jīng)網(wǎng)絡(luò)出現(xiàn),2010年深度學(xué)習(xí)出現(xiàn),2017年Transformer提出,2023年AIGC出現(xiàn)。從這些變化可以看到,從最初到現(xiàn)在,它的算法程序都在不停地變化。

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

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

三、基于自研RPP架構(gòu),打造“六邊形戰(zhàn)士”處理器

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

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

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

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

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

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

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

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

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

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

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

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

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

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

珠海芯動力李原:什么是AI芯片最優(yōu)解?自研RPP創(chuàng)新架構(gòu),將通用性與高性能融合丨GACS 2023

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

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

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

以上是李原演講內(nèi)容的完整整理。