作為后摩爾時(shí)代發(fā)展的必然趨勢(shì)之一,存算一體越來越受到行業(yè)的關(guān)注。在存算十問的前六問中,我們梳理了存算一體的技術(shù)路線、挑戰(zhàn)和通用性等問題,這一次我們從技術(shù)的壁壘入手,邀請(qǐng)后摩智能的幾位研發(fā)人員來談?wù)劊瑥膶W(xué)術(shù)到商用,存算一體的技術(shù)壁壘體現(xiàn)在哪里,后摩智能又是如何從IP、電路設(shè)計(jì)、架構(gòu)設(shè)計(jì)等層面突破技術(shù)難題,形成自己獨(dú)有的技術(shù)壁壘。
Q1?? 存算一體芯片是一個(gè)壁壘比較高的技術(shù)方向嗎?它的壁壘體現(xiàn)在哪些方面?
存算一體芯片是技術(shù)壁壘很高的一個(gè)方向。從芯片底層到軟件劃分的話,主要體現(xiàn)在以下幾個(gè)方面:
(1)CIM的基本運(yùn)算單元(即MACRO)的設(shè)計(jì)是第一個(gè)難點(diǎn)。作為存算一體芯片的基石,存內(nèi)計(jì)算IP的功能和性能直接影響存算一體芯片的整體表現(xiàn)。存內(nèi)計(jì)算IP依托的存儲(chǔ)介質(zhì)和所采用的計(jì)算范式繁多且呈“百花齊放”。
以SRAM CIM MACRO為例,因?yàn)樾枰薷拇鎯?chǔ)陣列以加入計(jì)算的邏輯單元、支持“存儲(chǔ)-計(jì)算”雙工作模 ? 式,并且在滿足計(jì)算性能的同時(shí)還需要保證陣列的規(guī)整性來優(yōu)化面積效率、保證陣列的可靠性、可測(cè)試性等。需要SRAM專家針對(duì)性的進(jìn)行設(shè)計(jì)。值得強(qiáng)調(diào)的是,當(dāng)前的EDA工具不支持設(shè)計(jì)流程,必須自主設(shè)計(jì)相應(yīng)的EDA工具來配合整個(gè)過程,包括margin, aging, EMIR, PPA的分析、Sign-off、PI/S等工具。
(2)當(dāng)完成CIM MACRO設(shè)計(jì)后,需要將大量的MACRO高效的組織在一起來處理形式多樣的Tensor運(yùn)算,同時(shí)配合一定的通用算力來滿足各種長尾算子(通常指計(jì)算量較小的非Tensor算子)的處理能力。這里涉及到多個(gè)MACRO之間的數(shù)據(jù)流組織方式,即如何將一個(gè)Tensor的運(yùn)算分配到多個(gè)MACRO協(xié)同處理,完成這個(gè)目標(biāo)需要精心進(jìn)行架構(gòu)設(shè)計(jì),并且通常需要一個(gè)高效的片上網(wǎng)絡(luò)(NoC)來支持。
另外,通常需要在芯片內(nèi)配置大容量的SRAM來減少片外DRAM的訪存需求,如何組織SRAM,并且配合上述計(jì)算流程,也是一個(gè)重要的設(shè)計(jì)內(nèi)容。
(3)存算一體AI核和SoC的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn):存內(nèi)計(jì)算IP提供了高能效的并行計(jì)算模式,但同樣受限于其支持運(yùn)算類型的局限性,因而對(duì)于存算一體AI核和SoC的架構(gòu)設(shè)計(jì)的難度和復(fù)雜度要求急劇上升,既要充分利用存內(nèi)計(jì)算IP本身運(yùn)算的高效性,又要減少存內(nèi)計(jì)算IP之間的數(shù)據(jù)傳輸,同時(shí)還要兼顧支持網(wǎng)絡(luò)算子的通用性和物理實(shí)現(xiàn)的可行性。
(4)存算一體軟件編譯器的快速部署和實(shí)現(xiàn):軟件工具鏈對(duì)于發(fā)揮存算芯片的效率也至關(guān)重要。軟件需要將模型切分成合適的Tensor算子,然后生成相應(yīng)的指令調(diào)用底層硬件來處理。
在后端算子性能優(yōu)化時(shí),需要打破算子的邊界,要解決層間流水,多模型流水并行,結(jié)合存算架構(gòu)的特點(diǎn)完成優(yōu)化。業(yè)界有很多開源框架的 IR 可以參考,像 MLIR 和 TVM 的 Relay 和 TIR,這些開源的 IR 無法很好地處理上述優(yōu)化需求,我們根據(jù)存算架構(gòu) AI Core 的特點(diǎn),設(shè)計(jì)了一層 IR ,更好地解決了數(shù)據(jù)流分析、數(shù)據(jù)依賴分析,可以更方便地進(jìn)行層間調(diào)度和切分等優(yōu)化。
同時(shí),對(duì)于自動(dòng)駕駛等場(chǎng)景,通過算子融合來提升計(jì)算和訪存效率是非常關(guān)鍵的一個(gè)優(yōu)化目標(biāo),需要工具鏈自動(dòng)化的完成算子的融合、調(diào)度及對(duì)大容量SRAM的高效管理,以同時(shí)提升芯片的利用率和應(yīng)用的開發(fā)效率等。
Q2?相較于傳統(tǒng)的芯片電路設(shè)計(jì),后摩智能的存算電路架構(gòu)設(shè)計(jì)和電路設(shè)計(jì)有何特殊性和優(yōu)點(diǎn)?
(1)電路方面:自主設(shè)計(jì)的定制CIM MACRO,包括定制的乘法單元、加法樹、讀寫電路、累加器等,進(jìn)一步拉近計(jì)算和存儲(chǔ)的距離顯著提升性能和能效,通過SRAM單元替代寄存器實(shí)現(xiàn)更高的計(jì)算密度、更低的讀寫功耗。相比傳統(tǒng)電路設(shè)計(jì)面效提升2倍左右、能效提升一個(gè)量級(jí)左右;
(2)架構(gòu):層次化的架構(gòu)設(shè)計(jì),將大量MACRO有效組織在一起;CIM MACRO負(fù)責(zé)Tensor計(jì)算,自主設(shè)計(jì)的RISC-V Vector擴(kuò)展架構(gòu)配合定制的SFU負(fù)責(zé)長尾算子處理,同時(shí)滿足處理效率和通用性的需求;定制化的NoC,滿足多個(gè)MACRO和SRAM之間的數(shù)據(jù)通信需求等
后摩智能的存算電路主要采用了基于全數(shù)字域的存算路徑,通過對(duì)存儲(chǔ)單元和計(jì)算單元的深度定制來實(shí)現(xiàn)高能效的計(jì)算目的,從而減少訪存開銷,打破存儲(chǔ)墻瓶頸,這種從SPEC到signoff的全定制化流程研發(fā)周期長,且對(duì)于研發(fā)迭代效率要求極高。
同時(shí),還需要兼顧大規(guī)模量產(chǎn)和車規(guī)需求,開發(fā)特有的CIM BIST和硬件修復(fù)電路,保障芯片良率和車規(guī)認(rèn)證。
Q3??后摩智能自研的芯片IPU架構(gòu),從一代到二代的天樞、天璣,相對(duì)于傳統(tǒng)架構(gòu)的優(yōu)點(diǎn)和創(chuàng)新之處是什么?
這張圖就是我們已經(jīng)推出的H30芯片天樞架構(gòu)IPU圖。
我們的芯片里有4個(gè)IPU核,都掛在系統(tǒng)總線NoC上。這4個(gè)核是完全一樣的設(shè)計(jì)。對(duì)于每一個(gè)Core,又由4個(gè)Tile組成,每個(gè)Tile就對(duì)應(yīng)了一個(gè)硬件線程,它們可以獨(dú)立進(jìn)行不同的計(jì)算,也可以聯(lián)合起來做同一個(gè)計(jì)算。
每個(gè)Tile內(nèi)部有CPU、Tensor Engine,Special Function Unit,Vector Processor和多通道DMA,這些計(jì)算單元可以直接共享一個(gè)多Bank的共享存儲(chǔ)資源。這樣的架構(gòu)使得AI計(jì)算不但不用在多個(gè)處理器,例如CPU,GPU,DSP之間分配任務(wù),甚至數(shù)據(jù)不用出AI核,就可以高效的完成全部端到端的AI計(jì)算。
這個(gè)架構(gòu)里還有一個(gè)重要的部分就是數(shù)據(jù)的傳輸。就像我們?nèi)撕腿酥g需要更好的溝通一樣,我們的計(jì)算單元之間,也需要很好的共享數(shù)據(jù)和消息。
我們?cè)O(shè)計(jì)了專用的數(shù)據(jù)傳輸總線,可以靈活的在各個(gè)Tile,以及各個(gè)Core之間建立高速的直接的數(shù)據(jù)傳輸通道,而不需要通過系統(tǒng)總線和緩存。
CIM macro有計(jì)算形式單一、需求輸入數(shù)據(jù)整齊、沒有累加器等缺點(diǎn)。第一代天樞架構(gòu)為這些功能上的缺點(diǎn)做了相應(yīng)的補(bǔ)充,使得CIM macro能夠真正的應(yīng)用在大規(guī)模AI計(jì)算中,而不只停留在paper上;另一方面,將CIM macro用于工程上,有BIST,yield,PI/SI等問題需要摸索解決,第一代架構(gòu)也在這方面做了規(guī)劃和適配。
我們下一代的天璇架構(gòu)IPU設(shè)計(jì)理念將會(huì)是:基于Mesh互聯(lián)的AI cluster。采用Mesh的互聯(lián)結(jié)構(gòu),可以將計(jì)算單元的數(shù)量靈活的配置成M行N列,根據(jù)場(chǎng)景需求,AI算力規(guī)??纱罂尚?。
編輯:黃飛
評(píng)論
查看更多