
AI計算面臨三大現(xiàn)狀,存算一體顛覆性重塑AI芯片。編輯 | GACS
9月14日~15日,2023全球AI芯片峰會(GACS 2023)在深圳南山圓滿舉行。在首日開幕式上,后摩智能聯(lián)合創(chuàng)始人、研發(fā)副總裁陳亮分享了題為《存算一體:顛覆性架構(gòu)重塑AI芯片》的主題演講。陳亮談道,面向大模型時代的新需求,后模智能正計劃推出擴展大模型應(yīng)用邊界的第二代天璇架構(gòu),以及基于這一整體性能、效率與靈活性更強架構(gòu)的后摩鴻途H50芯片,預計在2024年正式推出。創(chuàng)立于2020年的后摩智能是存算一體芯片公司之一。公司于2023年5月正式推出存算一體智駕芯片后摩鴻途?H30,物理算力達到256TOPS,典型功耗達到35W。根據(jù)后摩實驗室及MLPerf公開測試結(jié)果,在ResNet50性能功耗對比上,采取12nm制程的H30相比某國際芯片巨頭的7nm同類芯片性能提升超2倍,功耗減少超50%。H30和H50系列背后是后摩智能自研的IPU架構(gòu),陳亮談道,該架構(gòu)設(shè)計遵循“中庸之道”。如果將集中式計算架構(gòu)比作居住面積和擴展性有限的“中式庭院”,那么分布式計算架構(gòu)類似于“高層公寓”,容納性好但溝通性不足。后摩智能的IPU架構(gòu)選擇在兩者之間尋求平衡點:在計算方面,通過多核、多硬件線程實現(xiàn)計算效率與算力靈活擴展;在存儲方面,通過多級數(shù)據(jù)緩存實現(xiàn)高效數(shù)據(jù)搬運與復用;在數(shù)據(jù)傳輸方面,通過雙環(huán)拓撲專用總線實現(xiàn)靈活數(shù)據(jù)傳輸與共享。以下為陳亮的演講實錄:尊敬的各位嘉賓、各位老師:大家下午好!后摩智能是一家做存算一體AI芯片的初創(chuàng)公司。我們在創(chuàng)業(yè)過程中,經(jīng)常會被大家問到一個問題:既然存算一體技術(shù)優(yōu)點這么多,那為什么國內(nèi)或者國外的成熟大公司他們不做呢?我們的同事們也從不同的角度給出了一些解答。
01.AI計算面臨三大現(xiàn)狀,存算一體技術(shù)帶來新探索
從我的角度來看,我們希望從真正的客戶需求、產(chǎn)業(yè)的痛點,以及結(jié)合自身的特點出發(fā),做出一些真正有意義、有價值的創(chuàng)新。我們看到AI計算的現(xiàn)狀:首先是算法對算力的要求越來越高,但是AI芯片的計算效率還不夠,這個效率包括了能效比和面效比,也就是單位功耗所能提供的算力和性能,以及單位面積能提供的性能。第二,系統(tǒng)的帶寬瓶頸會導致計算資源的利用效率降低,如何有效地利用帶寬,提高計算資源的利用效率,會成為更大的挑戰(zhàn)。第三,算法還遠未達到收斂的程度。各種各樣新的算法還層出不窮,雖然最近Transformer類的計算有一統(tǒng)江湖之勢,但是大家知道,真正端到端的AI計算所涉及到的計算范式還是非常豐富的。如何能夠在一個處理器內(nèi)部完成端到端的AI計算,從而避免AI計算在不同的處理器核乃至不同芯片之間的數(shù)據(jù)傳輸,進而減少數(shù)據(jù)的搬運和存儲的開銷也是一個難題。基于此,我們希望借助獨特的存算一體技術(shù),給大家?guī)硪恍〢I計算的不同探索。先簡單介紹一下我們公司,后摩智能是2020年底成立,2021年初正式運營。2021年8月,我們首款技術(shù)樣片完成了設(shè)計和流片,并且完成了首款量產(chǎn)產(chǎn)品的產(chǎn)品定義。2022年3月,我們的技術(shù)樣片回片跑通了自動駕駛的算法,完成了存算一體的技術(shù)驗證。同年10月,我們首款量產(chǎn)產(chǎn)品后摩鴻途?H30設(shè)計完成,進行投片,2023年5月發(fā)布了第一個量產(chǎn)產(chǎn)品,后摩鴻途?H30。這就是我們今年5月份發(fā)布的后摩鴻途?H30存算一體的大算力AI芯片,大家在外面展臺也可以看到它的實物,它的算力是256TOPS。這里面說的算力是物理算力,而不是稀疏化的算力,典型的功耗只有35W,這個功耗也是在跑實際算法過程中實測出來的。以上是對我們公司和產(chǎn)品的簡單介紹,下面從存算一體技術(shù)、AI處理器架構(gòu)和軟件工具鏈這三個方面來介紹一下我們公司成立兩年多來的工作。
02.基于定制化電路結(jié)構(gòu),實現(xiàn)高效存內(nèi)并行計算
首先介紹一下什么是存算一體。概念上講,存算一體就是在存儲單元的內(nèi)部,完成部分或者全部的計算,它是解決芯片性能瓶頸,提高能效比的有效技術(shù)手段。大家知道,在AI計算過程中,大量的數(shù)據(jù)在存儲單元和計算單元之間交互,數(shù)據(jù)一行一行地從存儲器中讀取出來,送到計算單元中進行計算,再一行行地把結(jié)果寫到存儲單元當中。這樣做的話,訪存的功耗會急劇增加,并且會發(fā)生計算單元等待輸入數(shù)據(jù)的情況,從而降低了計算單元的利用效率。相比于卷積為主的神經(jīng)網(wǎng)絡(luò)模型,以矩陣乘為主的Transformer類的計算,它的訪存和計算比例更大,這個問題會更加嚴重。這張圖就是我們存算一體電路的架構(gòu)框圖。淺色的部分是標準的SRAM電路,深色的部分是我們在它旁邊加入了一些定制化的電路結(jié)構(gòu),包括Activation Driver、乘法器、加法樹和累加器等等。這些定制化的電路結(jié)構(gòu)和傳統(tǒng)的SRAM電路整合在一起,就可以實現(xiàn)高效的存內(nèi)并行計算。存儲單元內(nèi)部的數(shù)據(jù)可以在同一時刻一起讀出,這相比于一行一行的讀取方式,極大地提高了并行性。
計算電路緊挨著存儲單元,數(shù)據(jù)被讀取出來之后,馬上就可以在原地參與乘加計算,數(shù)據(jù)在存儲單元和計算單元之間的傳輸開銷也就相應(yīng)地減少了。計算單元方面,我們的定制化電路和存儲單元的Bit Cell(存儲單元)電路完全融合在一起,帶來了更規(guī)整的電路結(jié)構(gòu),因而有更緊湊的電路設(shè)計,電路面積也就相應(yīng)減少了。這里面的定制化電路,不管是存儲電路,還是乘法、加法、累加等等,都是純數(shù)字的設(shè)計,不會有任何計算的誤差。因為我們面向的市場是自動駕駛,所以自然少不了車規(guī)方面的考慮,除了標準SRAM模式下的Memory BIST,我們還設(shè)計了用于計算模式的CIM BIST機制,CIM是Computing In Memory的首字母簡稱。我們還通過冗余設(shè)計,以及加入行和列修復電路,提高量產(chǎn)良率和可靠性。有了錯誤檢測機制和冗余設(shè)計,還可以在電路空閑時,通過軟件的方式檢測并修復電路中可能出現(xiàn)的錯誤。我們還改變了傳統(tǒng)SRAM中Bit Cell的電路,消除了6T Bit Cell里的競爭現(xiàn)象,進一步提高了可靠性和穩(wěn)定性。這就是我們已經(jīng)發(fā)布的后摩鴻途?H30芯片里所采用的存算一體電路的一些規(guī)格參數(shù),采用的是12nm工藝,單個AI核內(nèi)的存儲容量已經(jīng)到了MB級別,在INT8全精度條件下能效比是30到150TOPS/W,30到150TOPS/W有一個范圍,是因為跟輸入數(shù)據(jù)相關(guān)的pattern 。面效比大于4TOPS每平方毫米,這是傳統(tǒng)電路的3倍以上。我們還支持軟硬件修復功能。目前我們已經(jīng)在12nm、16nm、22nm、28nm工藝下進行過流片測試,7nm的測試樣片也已經(jīng)流片,明年會推出量產(chǎn)產(chǎn)品。
03.自研IPU架構(gòu),探尋集中式與分布式計算的“中庸之道”
有了這么好的存算IP核,怎么把它充分利用好,就是考驗AI處理器架構(gòu)和芯片設(shè)計能力的問題了。為此,后摩智能基于存算一體,專為萬物智能而設(shè)計了IPU(Intelligence Processing Unit),并規(guī)劃了三代IPU架構(gòu):第一代命名為天樞架構(gòu),專門為智能駕駛打造的;第二代天璇架構(gòu),可以覆蓋更多的場景,從成本、面積、功耗都非常敏感的終端場景,到自動駕駛,再到大模型等云端場景都可以覆蓋;第三代天璣架構(gòu)的IPU,為通用人工智能打造的IPU。下面我將帶大家了解一下我們的IPU架構(gòu)設(shè)計。首先是我們怎么思考AI處理器這件事的。在早期的時候,AI芯片通過堆積大量的計算資源,以提高并行性,從而提高性能。其典型的代表是左圖中特斯拉的FSD,采用集中式的存儲和計算架構(gòu),可以達到很好的性能提升。但是對于算力要求更大,靈活性要求更高的場景,如果只靠單純的堆砌更多的計算資源,到了一定程度后,由于物理實現(xiàn)的限制,或者輸入輸出數(shù)據(jù)的規(guī)模等方面的限制,計算資源的利用效率會急劇降低,因為單個任務(wù)計算并行性已經(jīng)無法匹配計算資源的并行性了。我把集中式計算和存儲架構(gòu)類似為建筑設(shè)計里面的中式庭院,向內(nèi)圍合形成一個小院子,各種功能集于一身,使得人與人、人與自然可以高效地溝通,但問題是院落面積終究是有限的,能容納的居住者數(shù)量也就有限,而且設(shè)計建造這樣的庭院開銷和難度很大,因此可擴展性差。這時候一個自然的想法就是利用多核,或者硬件多線程的方式,如右中間的這個Tenstorrent Wormhole所示,這張圖和特斯拉的FST都出于一個人之手,這個人叫Jim Keller。他把算力很大的核拆成若干個小核。這樣做到極致,就是用眾多的CPU小核,在旁邊配上小塊的SRAM,組成一個二維陣列,業(yè)界也有人稱這種架構(gòu)為“近存計算”。
這樣做的好處是對物理實現(xiàn)非常友好,并且提供了非常靈活的編程性。但一個問題就是對于終端推理,尤其是自動駕駛這樣相對特定的應(yīng)用場景,能效比和面效比比大核的形式差一些。這種分布式的計算和存儲結(jié)構(gòu),可以類比為建筑設(shè)計里面西方的高層公寓,采用獨立簡單的小單元,在三維空間上可以很好的擴展,能夠容納更多的人,但因為單元相對封閉,人和人之間的溝通就會比較差了。所以我們認為在單核或單線程可以調(diào)度的計算資源,與真實的可以利用的計算資源之間,存在一條Roofline的曲線關(guān)系。我們的設(shè)計邏輯就是找到這條Roofline曲線的拐點,當遇到拐點的時候,再通過多核或者多線程的方式來擴展算力。這樣的設(shè)計理念類似于融合了東西方建筑的特點,先設(shè)計一個簡單優(yōu)美的庭院,再保障了計算資源利用效率的同時,再通過高層公寓的方式,在三維空間上靈活擴展算力。這張圖就是我們已經(jīng)推出的H30芯片里天樞架構(gòu)IPU的架構(gòu)框圖。大家可以看到我們的芯片里有4個IPU核,都掛在系統(tǒng)總線NoC上,每個核是完全一樣的設(shè)計。每個核又由4個Tile組成,每個Tile就對應(yīng)了一個硬件線程。在Tile內(nèi)部,包括了一個CPU、Tensor Engine、Special Function Unit、Vector Processor和多通道DMA。其中Tensor Engine就是由我們的存算電路和一個Feature Buffer,還有相應(yīng)的控制電路組成。這些計算單元全部在CPU的調(diào)度之下進行運行,CPU除了可以調(diào)度不同的計算單元之外,還可以進行一些簡單的靈活的,但是算力要求不高的計算。
這樣的架構(gòu)使得AI計算不但不用在多個處理器,例如CPU、GPU、DSP之間分配任務(wù),甚至數(shù)據(jù)不用出AI核,就可以完成端到端的AI計算。從Memory Hierarchy的結(jié)構(gòu)來看,整個系統(tǒng)包括了4級緩存,最外的緩存是片外的DDR,片內(nèi)的第一級緩存我們叫L2緩存,是所有的CPU芯片都可以共享的緩存。L1的緩存就是Core內(nèi)部一個共享存儲資源,Core內(nèi)部所有的計算資源都可以共享這個Shared Memory。L0的緩存就是CIM,也就是存算單元。這四級的緩存都是可以被軟件分配和管理,這樣的設(shè)計使得軟件有更大的空間對不同類型的任務(wù)進行存儲空間的分配,從而減少數(shù)據(jù)搬運,并且更好地利用數(shù)據(jù)復用性。說過了存和算,這個架構(gòu)里還有一個重要的部分就是數(shù)據(jù)的傳輸。就像我們?nèi)撕腿酥g需要更好的溝通一樣,計算單元之間,也需要非常靈活的共享數(shù)據(jù)和消息。因此,我們設(shè)計了專用的數(shù)據(jù)傳輸總線,有了這個傳輸數(shù)據(jù)總線,就可以靈活的在各個Tile,以及各個Core之間建立高速的直接的數(shù)據(jù)傳輸通道,而不需要通過系統(tǒng)的總線和緩存了。通過自定義的總線,各Tile和各Core之間,可以非常靈活地組成不同的拓撲結(jié)構(gòu)。我們的天樞架構(gòu)IPU采用雙環(huán)的拓撲結(jié)構(gòu),四個Tile組成第一級的環(huán),四個核又組成第二級的環(huán)。AI計算里數(shù)據(jù)復用是一個很重要的特性,利用數(shù)據(jù)的復用性可以減少片外帶寬的壓力。因此我們設(shè)計了多播的傳輸機制,也就是說一個Tile里的數(shù)據(jù),可以通過一次DMA傳輸,廣播給需要這個Tile數(shù)據(jù)的所有的其他的Tile,而不需要多次重復地從同一個地址去讀取同樣的數(shù)據(jù)。多核加多播的傳輸機制,帶來的一個問題就是數(shù)據(jù)和消息的同步問題。例如Tile 0把數(shù)據(jù)傳給Tile1、2、3,然后四個Tile一起開始一次計算,這類的數(shù)據(jù)同步問題其實是多線程編程里面經(jīng)常會遇到的問題。我們通過專用的消息傳遞通道和同步機制,可以讓四個Tile乃至四個核(Core)在收到消息的同一時間一起開始工作。大家看到,因為我們第一代IPU和H30芯片所用的核數(shù)和Tile的數(shù)量都比較少,14個,它形成了環(huán)形拓撲結(jié)構(gòu)。但如果我們根據(jù)算力的需要,把這個核的力度切得更小,或者當算力需要更多的核的時候怎么辦呢?在這里提前預告一下我們下一代的天璇架構(gòu)的IPU設(shè)計:基于Mesh互聯(lián)的AI Cluster,它可以將計算單元靈活的配置成M行N列,根據(jù)場景需求,AI算力規(guī)模可大可小。除了互聯(lián)拓撲外,存算電路CIM核的改進,我們自研的CPU和向量處理器的性能提升,針對AI算法更高效,尤其是大模型的計算,更加高效的SFU和數(shù)據(jù)傳輸機制,最終體現(xiàn)在更好的整體性能和靈活性。大家可以想象一下,如果這個二維陣列在二維空間甚至三維空間上繼續(xù)擴展下去,那么我們的芯片可以做些什么?總之,敬請期待。
04.提供2倍以上的真實算力,功耗可以降低50%
當然,H30 這樣一個大芯片,再加上純自研的存算一體電路,很多工程實現(xiàn)方面的挑戰(zhàn)需要解決,其中最關(guān)鍵的就是存算一體電路的特有驗證問題、仿真加速及FPGA原型問題以及電源完整性問題。為了實現(xiàn)大算力存算一體電路的仿真驗證,我們打造了一個存算電路的行為模型,使其與真實的電路的行為完全一致,也就是做Formal 驗證。這么大算力大規(guī)模的電路,加速仿真驗證也是一大考驗。我們單核的 IPU 規(guī)模就已經(jīng)超過能找到的任何一款 FPGA 規(guī)模,所以我們團隊巧妙地將設(shè)計裁剪、分割 Partition 到多塊 FPGA。至于電源完整性的問題,大算力AI芯片需要考慮動態(tài)IR drop對性能的影響,特別是對于定制化存算電路,計算密度巨大,需處理IR drop問題及其對周邊電路的影響。我們采取多種方法降低峰值電流影響,因為存算電路與標準電路不同,無法按標準電路要求進行Sign-off。這是我們H30芯片的架構(gòu)框圖和芯片規(guī)格。主要的規(guī)格參數(shù)包括256TOPS INT8精度的物理算力,DDR帶寬128GB/s,16路FHD的編解碼,8x PCIe4.0接口。典型功耗35W,采用12nm工藝。
我們通過底層的存算電路和AI處理器架構(gòu)的創(chuàng)新,帶來性能指標上的突破。這是我們12nm芯片和某國際巨頭7nm芯片的性能和功耗對比,在同樣功耗下,我們的H30芯片可以提供2倍以上的真實算力,端到端的AI計算能力;在同樣的性能條件下,我們的功耗可以降低50%。上面講完了硬件架構(gòu)設(shè)計,相當于我們的芯片有了一個強健的身體,下面介紹一下我們芯片的靈魂:編譯器和工具鏈。我們的芯片采用HDPL語言編程,即Houmo Data Parallel Language的縮寫,它是我們對主流并行編程模型的擴展,能高效的解決數(shù)據(jù)并行問題,并且支持消息傳遞機制。我們的Tile內(nèi)部是由異構(gòu)的計算單元組成的,采用SIMD的編程模型,而Tile間以及IPU核間是同構(gòu)的,采用SIMT的編程模型。我們出色的軟件工具鏈工程師已經(jīng)把剛才講到的Tile間和核間數(shù)據(jù)共享和消息傳輸?shù)膹碗s機制都封裝了起來,用戶可以很容易地用我們的模型開發(fā)SDK,或者算子開發(fā)SDK,在我們的IPU上進行軟件和算法的開發(fā)。其中模型開發(fā)SDK允許用戶使用我們的算子庫進行模型和算法的開發(fā)。算子開發(fā)SDK則允許用戶開發(fā)自己的定制化算子。編譯優(yōu)化方面,除了常用的不同計算單元之間可以以流水的方式并行以外,我們的每個Tile,以及每個Core之間,也可以獨立并行執(zhí)行不同的任務(wù),也可以將一個任務(wù)切分到不同的Tile,或者不同的核上,并且以Pipeline的形式并行。例如對CV類的處理,在追求Throughput,也就是高吞吐率的場景下,可以讓一張輸入圖片,同時進行多個網(wǎng)絡(luò)的計算,也可以讓多張圖片在多個Title或者多個核上,同時進行同一個網(wǎng)絡(luò)的計算。在追求低延時的場景下,可以將一張大圖拆成若干份,同時利用多個Tile,或者多個Core的算力進行計算。在2D Mesh的拓撲結(jié)構(gòu)下,任務(wù)的流水線是在2維空間,甚至未來會在3維空間上進行流水,這也就是類似Spatial Computing(空間計算)的概念。H30芯片在一些現(xiàn)在最先進網(wǎng)絡(luò)已經(jīng)有視頻效果呈現(xiàn),包括激光雷達的一個處理網(wǎng)絡(luò)、BEV的網(wǎng)絡(luò)。我們的第一代量產(chǎn)產(chǎn)品后摩鴻途?H30現(xiàn)在已經(jīng)可以提供給客戶送測了;第二代產(chǎn)品預計2024年可以提供給客戶。以上就是我分享的全部內(nèi)容,謝謝大家!以上是陳亮演講內(nèi)容的完整整理。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。