3月15日,由智東西主辦,AWE和極果聯(lián)合主辦的AI芯片創(chuàng)新峰會,在上海成功舉辦!本次峰會報名參會的觀眾覆蓋了近4500家企業(yè),到會觀眾極為專業(yè),其中總監(jiān)以上級別占比超過62%,現(xiàn)場實際到會人數(shù)超過1800位。
大會現(xiàn)場,20位人工智能及AI芯片業(yè)界翹楚共聚一堂,系統(tǒng)的探討了AI芯片在架構(gòu)創(chuàng)新、生態(tài)構(gòu)建、場景落地等方面的技術(shù)前景和產(chǎn)業(yè)趨勢。
憑借其創(chuàng)新的存儲優(yōu)先架構(gòu)(SFA),探境科技去年完成A輪上億元融資,是中國新崛起的AI芯片新生力量之一。大會現(xiàn)場,探境科技創(chuàng)始人兼CEO魯勇進行了主題為《基于存儲優(yōu)先架構(gòu)的AI芯片使能前端智能》的演講。
由于AI神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)量較大,具有高并發(fā)、高耦合等特性,引發(fā)了AI芯片高帶寬存取、以及數(shù)據(jù)間的相關(guān)耦合性等問題,所以在馮諾伊曼架構(gòu)之下,目前AI芯片普遍面臨了“存儲墻”問題——AI計算資源豐富,但存儲及數(shù)據(jù)搬運效率低下。
魯勇認(rèn)為,本質(zhì)上AI計算的核心問題是“如何更高效地將數(shù)據(jù)輸送給計算單位”,而并不是如何增加更多AI計算資源。
因此,去年探境發(fā)布了存儲優(yōu)先架構(gòu)(Storage First Architecture,簡稱SFA),這是一套不同于馮諾伊曼的AI芯片架構(gòu),它這套架構(gòu)從數(shù)據(jù)層和計算層中間,通過數(shù)據(jù)航線,進行節(jié)點間的數(shù)據(jù)搬移。
這套架構(gòu)的本質(zhì)是圖計算,控制器通過知道在動態(tài)運行過程中,哪些數(shù)據(jù)和哪些算子需要有一定的相關(guān)性,從而構(gòu)建更加合理的網(wǎng)絡(luò)路徑。
SFA架構(gòu)由此帶來的優(yōu)勢包括:數(shù)據(jù)訪問量能降低10到100倍、存儲子系統(tǒng)的功耗能下降10倍以上、28nm條件下計算資源利用率高達80%、芯片面積極大縮小。
魯勇還表示,SFA還可以做到通用型的AI芯片,不僅可以支持任意已知的神經(jīng)網(wǎng)絡(luò),等同于GPU的兼容性,還對神經(jīng)網(wǎng)絡(luò)的參數(shù)、數(shù)據(jù)類型沒有限制,能夠支持多種應(yīng)用場景,可以真正符合商業(yè)應(yīng)用。
附探境科技創(chuàng)始人兼CEO魯勇演講實錄
魯勇:大家好!剛才眾多演講者給大家分享了很多AI在各種應(yīng)用場景的例子,包括從云端的替代GPU作為提高能效比的工具,從云端到終端的延展,終端包括從小到可穿戴,大到安防、自動駕駛等應(yīng)用場景。所以我在這里就不重復(fù)這些應(yīng)用場景的情況。
最近有很多AI芯片層出不窮地往這個領(lǐng)域在進展,這里有很多機會,目的是能讓AI芯片更加強大、更加易用、更加低功耗。今天上午魏老師提到了AI芯片從0.5到2.0的演進,這當(dāng)中有大量的創(chuàng)新需要做,基于非?;A(chǔ)層的芯片底層架構(gòu),我在這里分享一些探境科技在這方面的創(chuàng)新。
去年探境發(fā)布了存儲優(yōu)先架構(gòu)(Storage First Architecture,簡稱SFA),這一架構(gòu)有非常高的領(lǐng)先度,由于很多朋友比較關(guān)心和關(guān)注,我們今天會先簡單回顧一下SFA是什么。
先預(yù)告一下,下面的內(nèi)容可能會比較偏硬核一些,會談到比較深的技術(shù)要點。深度學(xué)習(xí)給芯片設(shè)計帶來了很大挑戰(zhàn),深度學(xué)習(xí)的數(shù)據(jù)量非常大,包括訓(xùn)練好的權(quán)重和運行的動態(tài)中間數(shù)據(jù)。
神經(jīng)網(wǎng)絡(luò)的運算主要看到的是卷積,左邊是單層的卷積,但實際上在神經(jīng)網(wǎng)絡(luò)上真正被用到的是右邊的立體卷積。立體卷積是多個通道的二維卷積,有非常強的耦合性,其數(shù)據(jù)的連接關(guān)系以及重復(fù)的使用給我們帶來很大的問題。
通常做卷積運算的第一種方法是直接進行卷積運算,設(shè)計一個比較硬核的加速器,這種方式在傳統(tǒng)的通信芯片設(shè)計里會采用,還有一種方法是采用數(shù)學(xué)變換的方式,把卷積轉(zhuǎn)化為矩陣,這樣可以更加通用地應(yīng)對不同卷積的尺寸。
在這幾種常見的方法中,我們提到的問題都存在,包括高并發(fā)、高耦合,大量的數(shù)據(jù)引發(fā)了高帶寬存取、以及數(shù)據(jù)間的相關(guān)耦合性,帶來了一個“存儲墻”的問題。
在現(xiàn)在的學(xué)術(shù)界、工業(yè)界,“存儲墻”都是熱點的話題,我們也看到了很多使用試圖破解“存儲墻”的不同方法?!按鎯Α睅淼钠款i是性能跟功耗兩方面的。最開始需要通過外存和內(nèi)存之間交換數(shù)據(jù),這一步功耗比較大,第二步是在存儲器的數(shù)據(jù)排序,如何高效地填入到計算單元,這是第二個非常重要的難點。
這個問題我們可以簡化抽象成用EU是計算單元,Memory是所有的存儲。本質(zhì)上AI計算的核心問題是“如何更高效地將數(shù)據(jù)輸送給計算單位”,而計算并不重要。
我們看到之前很多的解決方案在計算上做了很多文章,包括把計算單位EU升級,從小規(guī)模的計算,比如將乘法器升級到更高規(guī)格的卷積、三維卷積、矩陣等方式。這種方式并不真正地破解瓶頸,瓶頸是在數(shù)據(jù)供給方面。
這里有幾個具體的困難大家可以探討一下:
1、數(shù)據(jù)量大,帶寬要求高,數(shù)據(jù)是不能完全存在片內(nèi)的,存在片外會有DDR不僅會有功耗問題,我們做SoC的知道,DDR帶寬一向是大家爭奪的重點,所以系統(tǒng)瓶頸會產(chǎn)生。
2、數(shù)據(jù)耦合性比較高,很大程度上數(shù)據(jù)是重復(fù)使用的,重復(fù)使用的數(shù)據(jù)會進一步加大功耗。
3、其實更大的困難是第三點,數(shù)據(jù)的使用復(fù)雜度很高,很多朋友在設(shè)計AI芯片的時候,數(shù)據(jù)的排序從不同的網(wǎng)絡(luò)層之間切換的是非常困難的。
我們總結(jié)一下現(xiàn)在常見解決方式:
1、增加計算資源。剛才提到了,這一方法只能增加計算的效率,但是沒有辦法破解“存儲墻”。
2、通過軟件的方式編輯數(shù)據(jù),讓數(shù)據(jù)的存儲方式利于硬件直接調(diào)取。但是這種方法對于中間的動態(tài)數(shù)據(jù)流是無法應(yīng)對的。
3、通過硬件整合更大規(guī)模的算子。這一方法有些困難,剛才講到神經(jīng)網(wǎng)絡(luò)有很多不同的配置,這些配置對神經(jīng)網(wǎng)絡(luò)很難做到全部兼容。
4、在計算資源內(nèi)部放入少量的存儲資源。但是存儲資源仍然有瓶頸,少量的存儲資源放不了太多的數(shù)據(jù)。
5、還有現(xiàn)在比較火的一種方式是把計算資源放到存儲器內(nèi)部,一般叫“存算一體化”,這當(dāng)中也有很多問題沒有被解決,首先它需要非常大的片上存儲,只有大量的片上存儲才能夠把整個神經(jīng)網(wǎng)絡(luò)模型都放進去;第二基本上做存算一體的大部分都還是針對全聯(lián)接層構(gòu)成的DNN或feature map非常小的卷積層進行設(shè)計,對這些比較復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)是否能夠支持,也是要打問號的。
6、還有一種方法是在算法上設(shè)計低精度的網(wǎng)絡(luò),降低對存儲的需求。這種方式看上去是解決了一定問題,但也有場景受限的情況。
總結(jié)一下,如果主要關(guān)注在計算方面,即使芯片提高了再大的并行度,它對AI計算的效能提升也是有限的。這種架構(gòu)我們稱之為“類CPU架構(gòu),或者“馮諾伊曼架構(gòu)”。這種架構(gòu)是由計算驅(qū)動存儲。因為這種計算資源在神經(jīng)網(wǎng)絡(luò)上是比較富余的,用富余的資源驅(qū)動稀缺的存儲資源,顯然沒有辦法帶來很好的收益。
探境科技重新思考了存儲和計算的關(guān)系,以存儲來驅(qū)動計算,做了一套完全不同于馮諾伊曼的架構(gòu)。
這套架構(gòu)從數(shù)據(jù)層和計算層中間,通過數(shù)據(jù)航線,數(shù)據(jù)作為節(jié)點和計算節(jié)點,這個過程是一個數(shù)據(jù)搬移的過程,因為我們可以認(rèn)為所有的數(shù)據(jù)都有自己的生命周期,它在生命周期里可能會和其他數(shù)據(jù)發(fā)生相應(yīng)關(guān)系,我們以數(shù)據(jù)作為優(yōu)先可以考慮到數(shù)據(jù)帶動算子,而非由算子找數(shù)據(jù)的關(guān)系。
這套關(guān)系是由Scheduler控制器來控制的,這樣一個CPU可以知道在動態(tài)運行過程中哪些數(shù)據(jù)和哪些算子需要有一定的相關(guān)性,從而構(gòu)建出一張相對比較合理的網(wǎng)絡(luò)。
所以這里本質(zhì)上來講深度學(xué)習(xí)的計算是圖計算,這個方向上我們對此有很高的認(rèn)知。
舉個例子,像曾經(jīng)大家做通信算法的時候都會做到傅里葉變換,做時域和頻域的變化,很多問題在時域里無法解決的時候,你走到頻域里就迎刃而解。所以神經(jīng)網(wǎng)絡(luò)的本質(zhì)問題是圖計算問題,當(dāng)你走到圖計算的高度的時候,很多問題會迎刃而解。
SFA能帶來什么好處呢?首先數(shù)據(jù)訪問量能降低10到100倍,所以存儲子系統(tǒng)的功耗能下降10倍以上;在28nm條件下,系統(tǒng)能效比超過4 TOPS/W,計算資源利用率也很高,超過80%,我們可以看到現(xiàn)在公開的很多AI架構(gòu)芯片資源利用率都只在50%上下浮動。另外SFA面積非常小,在28nm工藝條件下的Post Layout面積是每TOPS 0.5平方毫米。
同時,SFA可以做到通用型的AI芯片,可以支持任意已知的神經(jīng)網(wǎng)絡(luò),等同于GPU的兼容性。很多設(shè)計芯片的朋友都知道,想要做一款通用型的AI芯片非常非常困難,有的只能支持幾個神經(jīng)網(wǎng)絡(luò),有的會在神經(jīng)網(wǎng)絡(luò)的參數(shù)上有非常大的限制,只能支持一些,有些可能就不支持了。
SFA對所有的神經(jīng)網(wǎng)絡(luò)參數(shù)、架構(gòu)沒有任何限制,對數(shù)據(jù)類型也任何限制,包括INT8、INT16、浮點16、浮點32、甚至包括一些自定義的浮點,全都可以支持;并且對于深度學(xué)習(xí)里所講到的稀疏化的數(shù)據(jù),也是可以自適應(yīng)去支持,不用事先做任何的預(yù)處理。我們知道通用型對芯片設(shè)計是非常重要的,因為我們做芯片設(shè)計的人通常所面臨的場景是非常廣泛的,只為一個場景做一個具體的芯片可能成本就太高了。
SFA的易用性也非常高,工具鏈?zhǔn)褂煤芎唵危瑢τ脩魜碚f網(wǎng)絡(luò)不需要重新訓(xùn)練,這也是真正用戶使用上的頭疼問題,需要拿著網(wǎng)絡(luò)重新訓(xùn)練,但是SFA的網(wǎng)絡(luò)可以直接拿來使用不用訓(xùn)練,數(shù)據(jù)的精度設(shè)置靈活度非常大,甚至可以做到每層做自己的定義數(shù)據(jù)精度。
因此,有這樣的一些優(yōu)點,所以可以考慮做出當(dāng)前沒有實現(xiàn)的功能,我們既可以做一些訓(xùn)練,也可以做推理,終端能看到更多的是推理的芯片,SFA也可以做云端的訓(xùn)練和推理,無縫銜接,更重要的事情是在終端可以做到終端推理和終端的一些本地訓(xùn)練。
最近大家對隱私的要求也越來越高,很多用戶本地所拍攝的圖像是不太愿意上傳到云端,但他又希望能夠在自己不斷地使用過程中通過自己的訓(xùn)練能夠讓自己的模型變的更加精確、更加適合場景。這樣的話需要一些本地訓(xùn)練,或者是需要一些協(xié)同性的訓(xùn)練,和其他用戶一同訓(xùn)練更好的模型,采用這樣的架構(gòu)功能就可以完成。
我們認(rèn)為這是真正可以符合商業(yè)應(yīng)用的AI芯片,其他大量的AI芯片會有局限性于固定場景的使用。
基于SFA對所有終端的應(yīng)用場景都可以支持,語音芯片、機器視覺芯片、自動駕駛芯片等,這些場景的核心點都在于AI計算,如果AI計算能夠超出現(xiàn)有的水平達到更高的能效比、更好的成本控制,在半導(dǎo)體方向上創(chuàng)新永遠(yuǎn)是推動行業(yè)發(fā)展的原動力,并且能夠帶來源源不斷的提升。有這樣的SFA的架構(gòu)應(yīng)該能夠給所有終端芯片都有新的收獲,包括從成本上、功能上、易用性上,都會有新的創(chuàng)新。
評論
查看更多