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

9月14日~15日,2023全(quan)球AI芯片(pian)峰(feng)會(GACS 2023)在(zai)深圳(zhen)南(nan)山圓滿(man)舉行。在(zai)首(shou)日的AI芯片(pian)架(jia)構(gou)創新(xin)專場上,珠海芯動力(li)創始人及(ji)首(shou)席執行官李原分享了主(zhu)題(ti)為《RPP芯片(pian)架(jia)構(gou)給AI芯片(pian)帶(dai)來的發展(zhan)前景及(ji)機遇》的主(zhu)題(ti)演講(jiang)。

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

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

以下為李原的演講實錄:

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

我(wo)們(men)是(shi)珠海市芯動(dong)力科技,2017年(nian)就(jiu)回到了(le)中國(guo),開(kai)始(shi)研發新的(de)芯片,我(wo)們(men)稱(cheng)之為RPP。我(wo)們(men)開(kai)發的(de)原(yuan)因(yin),是(shi)在2011年(nian)開(kai)始(shi)就(jiu)看到了(le)有巨(ju)大(da)的(de)并行計算(suan)(suan)的(de)前景,其(qi)實(shi)并不是(shi)和AI有什么關(guan)系,而(er)是(shi)看到并行計算(suan)(suan)將(jiang)來是(shi)很大(da)的(de)爆發區間。

譬(pi)如,英(ying)(ying)偉達這(zhe)家(jia)公司的市(shi)值之前比英(ying)(ying)特爾(er)低了很(hen)多,大(da)家(jia)都知道最(zui)近英(ying)(ying)偉達的市(shi)值遠遠超過(guo)了英(ying)(ying)特爾(er),以前是英(ying)(ying)特爾(er)雄踞榜首多年。我們(men)認為這(zhe)個趨勢表示了并(bing)行計(ji)算對市(shi)場(chang)的巨大(da)需(xu)求,市(shi)場(chang)也認可(ke)并(bing)行計(ji)算的巨大(da)空間。

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

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

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

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

首(shou)先(xian)當時(shi)必須要知道什么是(shi)芯片(pian)的(de)效(xiao)(xiao)率。以前(qian)談論(lun)了(le)很(hen)多(duo),有各(ge)種各(ge)樣的(de)說法,比(bi)如芯片(pian)的(de)功耗是(shi)多(duo)少、芯片(pian)的(de)面(mian)(mian)積里面(mian)(mian)放了(le)多(duo)少、能計(ji)算多(duo)少東西等等,實際(ji)上都很(hen)不量(liang)化。但去給(gei)它(ta)一個(ge)比(bi)較嚴格的(de)量(liang)化定義的(de)時(shi)候,我們才有可能評(ping)估什么是(shi)芯片(pian)的(de)效(xiao)(xiao)率。

對(dui)于一(yi)個應用,可以把它(ta)分解成(cheng)各(ge)種各(ge)樣的(de)指(zhi)(zhi)令(ling),在(zai)最(zui)基本的(de)指(zhi)(zhi)令(ling)完(wan)成(cheng)整個計算(suan)的(de)時(shi)候,它(ta)所消耗(hao)的(de)晶體(ti)管的(de)數量,還有所消耗(hao)的(de)時(shi)間,就(jiu)是它(ta)的(de)資源。可以對(dui)這個算(suan)法的(de)復(fu)雜(za)度去進行這樣比較量化的(de)定義(yi)。

處理器(qi)有一(yi)個(ge)(ge)核心,它(ta)是(shi)一(yi)種(zhong)計算的(de)方(fang)式,完成這個(ge)(ge)算法,使用(yong)了多少晶體管,再乘(cheng)耗費(fei)的(de)周期(qi)數,就(jiu)是(shi)處理器(qi)的(de)復雜度(du)。這兩(liang)個(ge)(ge)東西如果進行相比,就(jiu)可以得到大(da)約的(de)芯片的(de)面積(ji)效率(lv),芯片面積(ji)效率(lv)和芯片的(de)功耗效率(lv)是(shi)息(xi)息(xi)相關的(de)。

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

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

舉幾個例子(zi)來看,去(qu)評(ping)比(bi)一下各種各樣的(de)(de)處(chu)理器(qi),比(bi)如說GPU、CPU、DSP、FPGA,甚至(zhi)ASIC都可以(yi)比(bi)較,它們的(de)(de)效率(lv)很不一樣。

比如這是NVIDIA Jetson Xavier這個芯(xin)片,用臺積電12納(na)米(mi),GPU的面積大(da)概(gai)是90平方(fang)毫(hao)米(mi),大(da)概(gai)能夠算(suan)(suan)出來(lai)是占了760M Gates,如果做(zuo)INT8矩陣計(ji)算(suan)(suan),它相當于(yu)(yu)12.8M Gates的矩陣計(ji)算(suan)(suan)。這樣(yang)算(suan)(suan)一下可以很容易(yi)得出來(lai)計(ji)算(suan)(suan)效率并不高(gao)。這是比較先(xian)進的架(jia)構了,但(dan)實際上(shang)只有這個GPU的芯(xin)片面積的1.6%用于(yu)(yu)真正(zheng)的整數計(ji)算(suan)(suan),效率是不太高(gao)的。

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

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

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

首先要回答(da)什么是通(tong)用性。

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

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

英特(te)爾、Arm都是(shi)非(fei)常典型的成(cheng)功(gong)的CPU公(gong)司,是(shi)通用(yong)(yong)計算公(gong)司,他們使用(yong)(yong)通用(yong)(yong)的編程(cheng)語(yu)言而且(qie)一代(dai)代(dai)可以(yi)復用(yong)(yong),使得(de)客(ke)戶在這(zhe)里面長期的投資可以(yi)得(de)到保(bao)存(cun)。

英(ying)偉(wei)達(da)(da)也(ye)是(shi),英(ying)偉(wei)達(da)(da)使用(yong)GPU,開(kai)放了CUDA語言以后很多(duo)(duo)客戶(hu)(hu)在(zai)這方(fang)面積累(lei)了很多(duo)(duo)的(de)開(kai)源(yuan)代碼,也(ye)有(you)客戶(hu)(hu)自己寫的(de)代碼。英(ying)偉(wei)達(da)(da)開(kai)發了非(fei)常多(duo)(duo)的(de)計(ji)算庫,使得客戶(hu)(hu)非(fei)常好地使用(yong)起來,這也(ye)是(shi)英(ying)偉(wei)達(da)(da)在(zai)GPU領域(yu)能夠得到非(fei)常多(duo)(duo)客戶(hu)(hu)的(de)原因(yin)。

但(dan)包(bao)含德州儀(yi)器、ADI等公司在內,現在都幾乎停(ting)止(zhi)了(le)(le)DSP的(de)(de)研(yan)發,DSP也(ye)算(suan)是比較(jiao)有(you)方向感(gan)的(de)(de)處(chu)理器,但(dan)因為(wei)DSP由(you)于過(guo)分地追求效率,暴露了(le)(le)很多匯(hui)編(bian)語言,客戶使用匯(hui)編(bian)語言的(de)(de)時候就不(bu)(bu)方便(bian),而且一代(dai)代(dai)更(geng)新的(de)(de)時候,匯(hui)編(bian)語言就不(bu)(bu)能(neng)繼承(cheng),所以失去(qu)了(le)(le)市(shi)場,代(dai)碼(ma)也(ye)不(bu)(bu)能(neng)復用。

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

我們認為AI是并(bing)行(xing)計算(suan)的(de)(de)代表(biao),看它(ta)是怎么發展(zhan)的(de)(de)。1950年(nian)左右(you),圖靈發表(biao)論文思考(kao)機(ji)器出(chu)(chu)(chu)現(xian)(xian)(xian),1970年(nian)機(ji)器推理(li)系(xi)統(tong)(tong)出(chu)(chu)(chu)現(xian)(xian)(xian),1980年(nian)專家系(xi)統(tong)(tong)出(chu)(chu)(chu)現(xian)(xian)(xian),1990年(nian)神經網絡出(chu)(chu)(chu)現(xian)(xian)(xian),2010年(nian)深度學(xue)習出(chu)(chu)(chu)現(xian)(xian)(xian),2017年(nian)Transformer提出(chu)(chu)(chu),2023年(nian)AIGC出(chu)(chu)(chu)現(xian)(xian)(xian)。從這些(xie)變化可(ke)以看到(dao)(dao),從最初到(dao)(dao)現(xian)(xian)(xian)在(zai),它(ta)的(de)(de)算(suan)法程序都在(zai)不停地變化。

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

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

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

我第一次做芯(xin)(xin)片(pian)(pian)設計的(de)時候還是(shi)(shi)90納(na)(na)(na)米(mi)(mi)的(de)芯(xin)(xin)片(pian)(pian),后來65納(na)(na)(na)米(mi)(mi)、40納(na)(na)(na)米(mi)(mi)、28納(na)(na)(na)米(mi)(mi),到現(xian)在(zai)為止7納(na)(na)(na)米(mi)(mi)、5納(na)(na)(na)米(mi)(mi),甚至要出現(xian)3納(na)(na)(na)米(mi)(mi)的(de)芯(xin)(xin)片(pian)(pian)。但是(shi)(shi)它的(de)趨(qu)勢(shi)實(shi)際上是(shi)(shi)成本飛速(su)的(de)增長。有幾(ji)個(ge)公司能夠支持得了7納(na)(na)(na)米(mi)(mi)、5納(na)(na)(na)米(mi)(mi)?這個(ge)飛速(su)增長帶來的(de)是(shi)(shi)不(bu)變的(de)規律,就(jiu)是(shi)(shi)在(zai)芯(xin)(xin)片(pian)(pian)行業數字電路隨(sui)著(zhu)納(na)(na)(na)米(mi)(mi)數的(de)推進,時間成本、資金(jin)成本、風(feng)險成本都是(shi)(shi)非(fei)常非(fei)常高的(de)。它需(xu)要我們解決(jue)的(de)矛(mao)盾,就(jiu)是(shi)(shi)芯(xin)(xin)片(pian)(pian)技術飛速(su)發展和特(te)(te)別(bie)長、特(te)(te)別(bie)大的(de)資金(jin)的(de)投入,以及特(te)(te)別(bie)大的(de)風(feng)險之(zhi)間的(de)矛(mao)盾。

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

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

我介紹(shao)一下芯動力在(zai)并行計算上面的(de)研發歷史和我們現(xian)在(zai)做(zuo)到(dao)的(de)成績。

從芯(xin)動(dong)力最早的(de)(de)研發開始,我(wo)自己在(zai)博(bo)士(shi)期(qi)間做的(de)(de)東西(xi)就是(shi)專用(yong)的(de)(de)芯(xin)片(pian),當(dang)時(shi)在(zai)Turbo譯(yi)碼器(qi)出(chu)現的(de)(de)時(shi)候,我(wo)就研發高(gao)度(du)(du)并(bing)行(xing)(xing)的(de)(de)Turbo譯(yi)碼器(qi);2008年我(wo)們做了第一家初(chu)創(chuang)公司,做通用(yong)的(de)(de)衛星通訊算法的(de)(de)芯(xin)片(pian),這也是(shi)高(gao)度(du)(du)并(bing)行(xing)(xing)的(de)(de)計(ji)算;后(hou)(hou)來Turbo譯(yi)碼器(qi)商(shang)用(yong)成(cheng)功(gong)以后(hou)(hou),被(bei)英特(te)爾收購,進入了英特(te)爾的(de)(de)服(fu)務器(qi);之后(hou)(hou)又做出(chu)來了基站,也是(shi)一個高(gao)度(du)(du)并(bing)行(xing)(xing)的(de)(de)計(ji)算,其實(shi)是(shi)軟件化的(de)(de)一顆非常(chang)高(gao)度(du)(du)并(bing)行(xing)(xing)計(ji)算的(de)(de)芯(xin)片(pian)。

2011年第一家(jia)公司被(bei)并(bing)(bing)入英(ying)特爾之后,我們就(jiu)提出(chu)來(lai)了計(ji)算效(xiao)率的(de)定義(yi),開始(shi)(shi)并(bing)(bing)行(xing)計(ji)算的(de)探(tan)索,剛開始(shi)(shi)從CGRA開始(shi)(shi),也(ye)就(jiu)是(shi)粗粒度可重(zhong)構陣列開始(shi)(shi)的(de)。我們知(zhi)道(dao)語言(yan)(yan)對于一個(ge)芯片(pian)(pian)是(shi)至關重(zhong)要(yao)的(de)時(shi)候,就(jiu)提出(chu)來(lai)使用CUDA語言(yan)(yan)重(zhong)新構造一個(ge)并(bing)(bing)行(xing)計(ji)算芯片(pian)(pian),這時(shi)候提出(chu)了“RPP”的(de)概念(nian),這也(ye)是(shi)一個(ge)數據流的(de)方式。

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

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

當(dang)有并行(xing)計算(suan)(suan)的(de)(de)時(shi)候(hou),并行(xing)計算(suan)(suan)的(de)(de)種(zhong)類其實(shi)很多,我們(men)現在(zai)討論其中(zhong)的(de)(de)一種(zhong),也(ye)就是CUDA語言所定(ding)義的(de)(de)SIMT的(de)(de)并行(xing)計算(suan)(suan)。多數(shu)據、單指令的(de)(de)計算(suan)(suan)方式(shi)現在(zai)成為主流,這種(zhong)方式(shi)做的(de)(de)事(shi)情跟原(yuan)來C語言能描述的(de)(de)事(shi)情完全一樣,只是它的(de)(de)數(shu)據很多,英(ying)偉達認(ren)為它是多線程(cheng),所以用(yong)SIMT的(de)(de)方式(shi)來描述。當(dang)然也(ye)可以用(yong)原(yuan)來的(de)(de)方式(shi)去計算(suan)(suan),但這種(zhong)方式(shi)的(de)(de)效率(lv)并不高。

什么樣的(de)(de)效率更(geng)高(gao)呢(ni)?也就是現在碰(peng)到(dao)的(de)(de)問題,是不(bu)是存(cun)在一種在并行計算里面(mian)的(de)(de)通用(yong)性和性能(neng)高(gao)度(du)融合的(de)(de)東西(xi)?

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

并(bing)行(xing)計算的(de)特點(dian)是(shi)什么(me)?比(bi)(bi)如說在專用(yong)(yong)芯(xin)片(pian)里面(mian),NPU性能(neng)比(bi)(bi)較高(gao),但專用(yong)(yong)性太強,可能(neng)難以(yi)編程,GPU是(shi)一種非常通用(yong)(yong)的(de)芯(xin)片(pian)架構,但效(xiao)率并(bing)不高(gao),RPP把兩種結合在一起(qi),也就(jiu)是(shi)達到效(xiao)率很高(gao)的(de)同時,通用(yong)(yong)性也和CUDA語言兼容(rong)。

這里(li)用一(yi)個(ge)動(dong)畫(hua)來演示一(yi)下(xia)(xia)(xia)實現方式。指(zhi)(zhi)(zhi)令(ling)(ling)(ling)由SEQ進(jin)行(xing)解碼,解碼下(xia)(xia)(xia)來的指(zhi)(zhi)(zhi)令(ling)(ling)(ling)會下(xia)(xia)(xia)發給每一(yi)個(ge)計算單元,叫PE。當(dang)PE接收到(dao)指(zhi)(zhi)(zhi)令(ling)(ling)(ling)之后可(ke)以驅動(dong)數(shu)據(ju)(ju),把數(shu)據(ju)(ju)進(jin)行(xing)計算,往下(xia)(xia)(xia)一(yi)個(ge)指(zhi)(zhi)(zhi)令(ling)(ling)(ling)進(jin)行(xing)下(xia)(xia)(xia)發。指(zhi)(zhi)(zhi)令(ling)(ling)(ling)排布好以后,就形(xing)成(cheng)一(yi)個(ge)數(shu)據(ju)(ju)流(liu),這樣的數(shu)據(ju)(ju)流(liu)是有限的,我(wo)們只是使用了CUDA語言(yan)定義(yi)的所有指(zhi)(zhi)(zhi)令(ling)(ling)(ling)形(xing)成(cheng)了一(yi)個(ge)數(shu)據(ju)(ju)流(liu),在(zai)有限的數(shu)據(ju)(ju)流(liu)之中形(xing)成(cheng)一(yi)個(ge)環狀(zhuang),讓它可(ke)以無限地延伸(shen),這樣的方法可(ke)以對于任(ren)何的CUDA語言(yan)進(jin)行(xing)數(shu)據(ju)(ju)流(liu)的執(zhi)行(xing)方式,直(zhi)到(dao)它把所有指(zhi)(zhi)(zhi)令(ling)(ling)(ling)都(dou)做完,就會把數(shu)據(ju)(ju)存(cun)回內存(cun)里(li)面去。這做到(dao)和英(ying)偉達CUDA語言(yan)的指(zhi)(zhi)(zhi)令(ling)(ling)(ling)集兼容,它只是在(zai)空間(jian)的執(zhi)行(xing)方式而已。

但(dan)為了實(shi)現(xian)這么大的系統(tong),要(yao)把(ba)它做成一(yi)個后(hou)端(duan)并不容易(yi),因為它需(xu)要(yao)跑(pao)很高的頻率。動(dong)畫顯示了如(ru)何在一(yi)開始就必須得從后(hou)端(duan)進行設計(ji),把(ba)芯片(pian)由后(hou)端(duan)去(qu)設計(ji)前端(duan)驅動(dong)的方式做完(wan)。我們有(you)32個PE,這個PE放的位置(zhi)的排列組合非常多,但(dan)數(shu)據流的本身可以(yi)形(xing)成一(yi)個環狀。

我(wo)們(men)又(you)有很多的(de)SRAM來把(ba)數據進行(xing)適配,比較直接的(de)想(xiang)法就是形成一(yi)個(ge)環狀,32個(ge)PE形成一(yi)個(ge)環狀之(zhi)后,可(ke)以把(ba)數據進行(xing)很好的(de)連(lian)接,但這樣帶來的(de)問題就是內(nei)存(cun)的(de)大小被控制在內(nei)部不能變。

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

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

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

還(huan)可以(yi)(yi)看一(yi)(yi)下功(gong)耗(hao)效(xiao)(xiao)率(lv),由(you)于這個(ge)架(jia)構已經形成了(le)一(yi)(yi)條流水線,功(gong)耗(hao)效(xiao)(xiao)率(lv)也很高。拿它和(he)A100的7納(na)米(mi)的芯片效(xiao)(xiao)率(lv)進行比較,可以(yi)(yi)看到(dao),實測的效(xiao)(xiao)率(lv)遠遠超(chao)過了(le)7納(na)米(mi)芯片的功(gong)耗(hao)效(xiao)(xiao)率(lv)。利用這樣的芯片研發技術,完全可以(yi)(yi)在成熟的14納(na)米(mi)的工藝(yi)上,完成一(yi)(yi)個(ge)7納(na)米(mi)A100的等價(jia)性能(neng),完全可以(yi)(yi)做(zuo)到(dao)。

我(wo)們(men)也對它進行(xing)了(le)軟件生(sheng)態(tai)上的(de)研(yan)發(fa)。CUDA語言(yan)作為一(yi)個最底層的(de)編程(cheng)語言(yan),對它進行(xing)了(le)最基本(ben)的(de)支(zhi)持,在這(zhe)之上英偉達還做了(le)很多生(sheng)態(tai)上的(de)庫,比(bi)如說深度學習(xi)的(de)TensorRT,我(wo)們(men)做了(le)完(wan)全一(yi)樣(yang)的(de)OpenRT,在其它領域FFT、數(shu)學庫等等,我(wo)們(men)都做了(le)一(yi)樣(yang)的(de)支(zhi)持,這(zhe)里面(mian)的(de)工作比(bi)較花時間,因為不是公開(kai)的(de)數(shu)據集。

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

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

在(zai)(zai)應用場景上,我(wo)們(men)除了(le)(le)開發(fa)了(le)(le)AI,比(bi)如泛安防的(de)領域以(yi)外,也開發(fa)了(le)(le)傳統的(de)CUDA語言(yan)能(neng)涉及的(de)領域,比(bi)如信號處理、醫(yi)療(liao)影像(xiang)等(deng)等(deng),完(wan)全是非AI的(de)一些計算。我(wo)們(men)已經完(wan)全超過(guo)了(le)(le)同等(deng)的(de)DSP和FPGA的(de)性能(neng),所以(yi)在(zai)(zai)邊緣端現在(zai)(zai)得(de)到了(le)(le)很(hen)多客戶(hu)的(de)認可(ke)。

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

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