48409 開源之風吹向存算一體芯片
服務熱線:400-858-9000 咨詢/投訴熱線:18658148790
國內(nèi)專業(yè)的一站式創(chuàng)業(yè)服務平臺
開源之風吹向存算一體芯片
隨著開源理念在存算一體領域的拓展,將有助于行業(yè)建立統(tǒng)一的編程和接口標準,從而使來自不同廠商和研究機構的產(chǎn)品實現(xiàn)互通。
本文來自于微信公眾號“半導體行業(yè)觀察”(ID:icbank),投融界經(jīng)授權發(fā)布。

存算一體芯片作為一種新型架構,可以有效解決傳統(tǒng)馮·諾依曼架構在處理人工智能算法時性能和能效存在的訪存瓶頸限制。尤其是基于交叉陣列的存算一體技術,通過在存儲器中原位執(zhí)行矩陣向量乘,利用存儲單元的固有并行度大幅提升計算性能,并消除部分訪存,能夠成百上千倍地提升深度神經(jīng)網(wǎng)絡推理的性能和能效。

近些年來,學術界在存算一體的各個方面都進行了大量探索,提出了眾多存算一體加速器架構,中科院微電子所、清華大學、斯坦福大學等單位也制備出了存算一體芯片原型。國內(nèi)也涌現(xiàn)出了一批存算一體初創(chuàng)企業(yè),包括知存科技、后摩智能、億鑄科技、蘋芯科技等等,它們研發(fā)了基于SRAM、閃存、RRAM等存儲器的存算一體芯片,且已有產(chǎn)品問世。

然而,當前存算一體芯片的發(fā)展還處于起步階段,面臨著諸多挑戰(zhàn),其中最重要一點便是生態(tài)與編程框架不完善,缺乏相應的指令集與軟件工具。

一方面,各單位、公司開發(fā)的存算一體芯片均基于自行定義的編程接口,缺乏統(tǒng)一的編程接口,造成了存算一體軟件生態(tài)的分散,不同廠商開發(fā)的上層軟件無法互相通用,極大的影響了存算一體芯片的大規(guī)模使用。

另一方面,除了高效的硬件設計,神經(jīng)網(wǎng)絡模型面向存算一體架構時,計算任務如何映射、調(diào)度,也是發(fā)揮神經(jīng)網(wǎng)絡加速器性能和能效的關鍵。

總體而言,現(xiàn)階段,行業(yè)內(nèi)尚缺乏神經(jīng)網(wǎng)絡面向存算一體芯片的自動化部署方法和工具。

存算一體芯片有了開源指令集和編譯器

我們注意到,在今年的集成電路EDA領域頂級會議IEEE/ACMDesignAutomationConference(DAC)上,中國科學院計算技術研究所智能計算機中心陳曉明和韓銀和研究員團隊發(fā)表論文,公布了一項新的研究成果:PIMCOMP-NN存算一體通用編譯器和PIMSIM-NN——存算一體通用模擬器,二者基于一套之前該團隊開源的存算一體指令集,構成了完整的開源存算一體工具鏈,該項工作或將為存算一體芯片建立統(tǒng)一的生態(tài)做出一定的貢獻。

下面讓我們來分析下他們的這項研究。

該論文詳細描述了一整套面向神經(jīng)網(wǎng)絡的存算一體工具鏈,框架如圖1所示。這套工具鏈的核心由兩部分組成:

編譯器PIMCOMP-NN:編譯器PIMCOMP-NN接收ONNX格式的神經(jīng)網(wǎng)絡描述和一組存算一體架構配置參數(shù)作為輸入,通過編譯優(yōu)化生成指令序列。

模擬器PIMSIM-NN接收編譯器:模擬器PIMSIM-NN接收編譯器生成的指令序列和架構配置參數(shù)(與編譯器所用相同)作為輸入,通過行為級模擬,得到神經(jīng)網(wǎng)絡在存算一體架構上運行的性能、能耗和功耗。

該套工具基于統(tǒng)一的對軟硬件抽象建模而開發(fā),不針對具體的存算一體芯片,也不限制存算一體器件,因此可向上對接不同的神經(jīng)網(wǎng)絡算法,向下屏蔽存算一體芯片硬件細節(jié)。

開源之風吹向存算一體芯片

圖1面向神經(jīng)網(wǎng)絡的存算一體工具鏈

該工具鏈建立在一套面向神經(jīng)網(wǎng)絡的存算一體指令集基礎上。指令集作為芯片軟硬件設計的接口,對于軟件生態(tài)有著舉足經(jīng)重的作用,為了使工具鏈對多種多樣的存算一體芯片的底層操作具有通用性,該課題組首先抽象了存算一體架構支持的基本算子,定義了一套統(tǒng)一的面向神經(jīng)網(wǎng)絡的存算一體指令集。

這些指令有四類,分別是矩陣指令(例如矩陣向量乘)、向量指令(例如向量加)、標量指令(主要是傳統(tǒng)寄存器操作)和傳輸指令(主要是各級存儲間的數(shù)據(jù)傳輸指令),其中每個指令對應硬件的一個抽象操作。面對具體存算一體芯片時,可通過轉化程序方便地翻譯到具體的硬件指令上。

進一步來看,PIMCOMP-NN是一個面向存算陣列架構的神經(jīng)網(wǎng)絡通用編譯框架,它建立在對硬件架構和算子的統(tǒng)一抽象基礎之上。為實現(xiàn)對上層算法的通用性,PIMCOMP-NN采用ONNX格式的神經(jīng)網(wǎng)絡描述作為輸入,因而可以處理多種多樣的神經(jīng)網(wǎng)絡模型。為實現(xiàn)對硬件架構的通用性,PIMCOMP-NN建立在一個抽象的存算架構之上,如圖2所示。該抽象架構由多個核心構成,每個核心包括存算一體矩陣單元來完成矩陣-向量乘法運算和向量計算單元來完成向量計算。課題組定義了一組統(tǒng)一的參數(shù)來描述該抽象架構。該架構可適配已有研究中廣泛采用的多層次Crossbar/PE/Tile/Chip結構,包括發(fā)表在ISCA、ASPLOS、ISSCC等多個頂會上的多種存算一體加速器。

開源之風吹向存算一體芯片

圖2抽象存算一體架構

PIMCOMP-NN實現(xiàn)了從神經(jīng)網(wǎng)絡結構描述到指令流的自動化生成,并在編譯過程中優(yōu)化任務映射和調(diào)度,其框架如圖3所示。編譯器前端將讀取用戶提供的抽象架構配置參數(shù)(陣列尺寸、核心數(shù)目、芯片數(shù)目等),同時加載基于ONNX的神經(jīng)網(wǎng)絡模型,通過預處理得到神經(jīng)網(wǎng)絡模型的拓撲關系和參數(shù)信息。編譯器后端包括四個通用編譯優(yōu)化階段:節(jié)點劃分、權重復制、核心映射和數(shù)據(jù)流調(diào)度,這四個階段均在所定義的偽指令集基礎上實施。通過節(jié)點劃分,靈活地將權重數(shù)據(jù)進行拆分以適應陣列尺寸。通過權重復制,充分利用存算陣列資源。通過核心映射,高效分配計算任務。通過數(shù)據(jù)流調(diào)度,產(chǎn)生運行完整神經(jīng)網(wǎng)絡的指令流。此外,為了適應不同應用場景,論文設計了兩種具有不同層間流水線粒度的編譯模式,分別具有高吞吐量和低延遲的特點,在編譯過程中分別優(yōu)化整體吞吐量和推理延遲。

開源之風吹向存算一體芯片

圖3PIMCOMP-NN編譯器框架

PIMSIM-NN是一個基于指令的存算一體系統(tǒng)模擬器,PIMSIM-NN的整體架構如圖4所示,從上到下分別是芯片-核心-基礎模塊-模擬引擎SystemC,整個芯片由多個核心通過片上互連網(wǎng)絡連接形成,核心則由多個內(nèi)部模塊構成,核心內(nèi)部模塊使用基礎模塊搭建,最終在SystemC的框架下運行。PIMSIM-NN接收指令序列文件和架構配置文件作為輸入。指令序列文件包含每個核心的指令序列,由編譯器PIMCOMP-NN生成。架構配置文件則對存算一體架構的各項參數(shù)進行配置,使模擬器能夠仿真不同的存算一體架構。核心設計是PIMSIM-NN的重點,主要有4個處理單元,分別是矩陣單元、向量單元、傳輸單元和標量單元。矩陣單元的核心是存算陣列單元,其會預先寫入權重數(shù)據(jù),在運行時原地執(zhí)行矩陣-向量乘運算,避免權重數(shù)據(jù)的搬運,降低延遲和功耗。向量單元則負責激活函數(shù)和池化等操作,完成一些非線性操作。傳輸模塊則負責核間的數(shù)據(jù)交換,傳輸少量的中間結果,并負責核間同步操作。PIMSIM-NN采用了事件驅動仿真模型,基于開源的事件驅動引擎SystemC編寫,擁有良好的擴展性并能得到精確的仿真結果。PIMSIM-NN基于圖5所示的抽象流水線架構進行仿真,各模塊通過SystemC建模,在事件驅動的引擎中,在仿真過程中高效地進行交互。

利用該套工具鏈,可實現(xiàn)深度神經(jīng)網(wǎng)絡在存算一體架構上的快速自動化部署,它不僅在部署過程中優(yōu)化了任務映射和調(diào)度,還對生成的指令序列進行相關性能指標的評估。與此同時,該套工具鏈相較于之前的存算一體架構模擬器有了較大的改進。先前的模擬器大多采用數(shù)據(jù)流架構,能夠支持的網(wǎng)絡結構固定,網(wǎng)絡映射方式單一,而該工具鏈基于抽象的存算一體指令集架構,在編譯器的支持下能夠處理更多的網(wǎng)絡結構,并支持更靈活的計算任務映射方式。編譯器提供了多種預設的編譯優(yōu)化方案可供選擇,同時也可以修改編譯器代碼實現(xiàn)其它編譯優(yōu)化方案,通過結合模擬結果的迭代反饋可進一步實現(xiàn)編譯空間探索,尋找針對給定存算一體架構的最優(yōu)的編譯優(yōu)化策略,甚至是編譯優(yōu)化與架構設計結合的軟硬件協(xié)同設計。

結語

中國科學院計算技術研究所智能計算機中心所推出的完整開源存算一體工具鏈,可以說是存算一體領域的一項重要突破。這一工具鏈不僅增強了存算一體架構的定制化和靈活性,還促進了深度神經(jīng)網(wǎng)絡在存算一體架構上的高效自動化部署。

隨著開源理念在存算一體領域的拓展,將有助于行業(yè)建立統(tǒng)一的編程和接口標準,從而使來自不同廠商和研究機構的產(chǎn)品實現(xiàn)互通。這一標準化進程將有助于解決目前存算一體芯片領域的碎片化問題,提高生態(tài)系統(tǒng)的協(xié)同效率。進一步推動存算一體芯片更容易與人工智能、大數(shù)據(jù)、物聯(lián)網(wǎng)等產(chǎn)業(yè)相結合,形成更加豐富和復雜的應用場景。

芯片 存算一體 開源
評論
還可輸入300個字
專欄介紹
半導體行業(yè)觀察
43篇文章
最有深度的半導體新媒體,實訊、專業(yè)、原創(chuàng)、深度,50萬半導體精英關注!專注觀察全球半導體最新資訊、技術前沿、發(fā)展趨勢?!赌柧ⅰ贰吨袊呻娐贰饭餐銎?,歡迎訂閱摩爾旗下公眾號:摩爾精英MooreElite、摩爾芯聞、摩爾芯球
+關注
400-858-9000
免費服務熱線
kefu@trjcn.com
郵箱
09:00--20:00
服務時間
18658148790
投訴電話
投融界App下載
官方微信公眾號
官方微信小程序
Copyright ? 2024 浙江投融界科技有限公司(www.massiveresultsprotocol.com) 版權所有 | ICP經(jīng)營許可證:浙B2-20190547 | 浙ICP備10204252號-1 | 浙公網(wǎng)安備33010602000759號
地址:浙江省杭州市西湖區(qū)留下街道西溪路698號15號樓509室
浙江投融界科技有限公司trjcn.com版權所有 | 用戶協(xié)議 | 隱私條款 | 用戶權限
應用版本:V2.7.8 | 更新日期:2022-01-21
 安全聯(lián)盟
在線客服
手機APP
微信訂閱