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

2018高清国产一区二区三区-国产黄色视频免费在线观看-欧美激情欧美精品一区二区-免费国产一级片内射老妇

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

存(cun)(cun)(cun)算(suan)(suan)(suan)一(yi)體芯片作為一(yi)種(zhong)新型架(jia)構,可以(yi)有(you)效(xiao)(xiao)解決傳(chuan)統(tong)馮(feng)·諾依曼架(jia)構在處理人工(gong)智能(neng)(neng)算(suan)(suan)(suan)法時性能(neng)(neng)和能(neng)(neng)效(xiao)(xiao)存(cun)(cun)(cun)在的(de)(de)訪存(cun)(cun)(cun)瓶頸限制。尤其是(shi)基于(yu)交叉陣(zhen)列的(de)(de)存(cun)(cun)(cun)算(suan)(suan)(suan)一(yi)體技術,通過(guo)在存(cun)(cun)(cun)儲器中原位(wei)執行(xing)矩陣(zhen)向量(liang)乘(cheng),利用存(cun)(cun)(cun)儲單元的(de)(de)固(gu)有(you)并行(xing)度(du)大(da)幅(fu)提升(sheng)計算(suan)(suan)(suan)性能(neng)(neng),并消除部分訪存(cun)(cun)(cun),能(neng)(neng)夠成百(bai)上千倍地提升(sheng)深(shen)度(du)神經網絡推理的(de)(de)性能(neng)(neng)和能(neng)(neng)效(xiao)(xiao)。

近些年來,學術界在存(cun)(cun)算一(yi)體的(de)各個方面都進行了(le)(le)(le)大(da)量探索,提出了(le)(le)(le)眾多存(cun)(cun)算一(yi)體加速器(qi)架構,中科院微(wei)電(dian)子所(suo)、清華大(da)學、斯(si)坦福(fu)大(da)學等單位也制備出了(le)(le)(le)存(cun)(cun)算一(yi)體芯片原型。國內(nei)也涌現出了(le)(le)(le)一(yi)批(pi)存(cun)(cun)算一(yi)體初(chu)創企業,包(bao)括知存(cun)(cun)科技(ji)、后摩智能、億(yi)鑄(zhu)科技(ji)、蘋芯科技(ji)等等,它們研發了(le)(le)(le)基(ji)于SRAM、閃存(cun)(cun)、RRAM等存(cun)(cun)儲器(qi)的(de)存(cun)(cun)算一(yi)體芯片,且已有產品(pin)問世。

然而,當前存算(suan)一體芯(xin)片(pian)的(de)發(fa)展還處于起步(bu)階段(duan),面臨著諸多挑戰,其中最重要一點(dian)便是生態與(yu)編(bian)程框架(jia)不完(wan)善,缺乏相應的(de)指令集與(yu)軟件工具。

一方面,各(ge)單位、公司(si)開發(fa)的(de)(de)存算(suan)(suan)一體芯片(pian)均基于自行定義的(de)(de)編程接口,缺乏統(tong)一的(de)(de)編程接口,造成了存算(suan)(suan)一體軟(ruan)件(jian)生態的(de)(de)分散,不同(tong)廠商開發(fa)的(de)(de)上(shang)層軟(ruan)件(jian)無(wu)法互相通用,極大的(de)(de)影響了存算(suan)(suan)一體芯片(pian)的(de)(de)大規模使用。

另一(yi)方面,除了高效的硬件設計(ji),神經網絡(luo)模型面向存算一(yi)體架構時,計(ji)算任務如何(he)映(ying)射、調度,也是(shi)發揮神經網絡(luo)加速(su)器(qi)性能(neng)和能(neng)效的關鍵(jian)。

總體而言,現階段,行業內尚缺乏神(shen)經網絡面向存算一體芯片(pian)的自動化(hua)部署(shu)方法(fa)和工具(ju)。

存算一體芯片有了(le)開源指(zhi)令集(ji)和編譯器

我(wo)們注(zhu)意(yi)到,在今年的(de)(de)集(ji)(ji)成(cheng)電路EDA領域頂級(ji)會議(yi)IEEE/ACMDesignAutomationConference(DAC)上,中國(guo)科(ke)學院計(ji)算(suan)(suan)技術研(yan)究所智(zhi)能(neng)計(ji)算(suan)(suan)機中心陳曉明(ming)和(he)韓銀和(he)研(yan)究員團隊(dui)發(fa)表論文(wen),公布了一(yi)(yi)項新(xin)的(de)(de)研(yan)究成(cheng)果:PIMCOMP-NN存(cun)算(suan)(suan)一(yi)(yi)體通用編譯器和(he)PIMSIM-NN——存(cun)算(suan)(suan)一(yi)(yi)體通用模擬器,二者基于一(yi)(yi)套(tao)之前該團隊(dui)開源的(de)(de)存(cun)算(suan)(suan)一(yi)(yi)體指令集(ji)(ji),構(gou)成(cheng)了完(wan)整的(de)(de)開源存(cun)算(suan)(suan)一(yi)(yi)體工(gong)具鏈,該項工(gong)作(zuo)或(huo)將為存(cun)算(suan)(suan)一(yi)(yi)體芯片建(jian)立(li)統一(yi)(yi)的(de)(de)生態做出一(yi)(yi)定的(de)(de)貢獻(xian)。

下面讓我們來(lai)分(fen)析(xi)下他們的這項研(yan)究。

該論文詳細描述了一(yi)整套(tao)面向神經(jing)網絡的存算一(yi)體工(gong)具鏈,框架如圖1所示。這(zhe)套(tao)工(gong)具鏈的核心由兩(liang)部分組(zu)成(cheng):

編(bian)譯(yi)器PIMCOMP-NN:編(bian)譯(yi)器PIMCOMP-NN接收ONNX格式的神經(jing)網絡描(miao)述和一組(zu)存算一體架構配置參數作為(wei)輸入,通過(guo)編(bian)譯(yi)優(you)化(hua)生(sheng)成指(zhi)令序列。

模擬器(qi)PIMSIM-NN接收編譯器(qi):模擬器(qi)PIMSIM-NN接收編譯器(qi)生成的(de)指令序列和(he)架構(gou)配(pei)置參數(shu)(與編譯器(qi)所用相同)作為輸(shu)入,通(tong)過行為級模擬,得到神(shen)經網絡在(zai)存算一體(ti)架構(gou)上運行的(de)性能、能耗和(he)功(gong)耗。

該套工(gong)具基于統一(yi)的(de)對(dui)軟硬件(jian)抽象(xiang)建模而開發,不針對(dui)具體的(de)存(cun)算(suan)(suan)一(yi)體芯(xin)片,也不限制存(cun)算(suan)(suan)一(yi)體器件(jian),因此可向(xiang)上對(dui)接不同的(de)神經(jing)網絡算(suan)(suan)法,向(xiang)下(xia)屏蔽存(cun)算(suan)(suan)一(yi)體芯(xin)片硬件(jian)細節。

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

圖1面向神經網絡的存算一(yi)體工具鏈

該(gai)工具(ju)(ju)(ju)鏈(lian)建立在(zai)一(yi)(yi)套面向神(shen)經(jing)網絡(luo)的(de)(de)存(cun)算(suan)一(yi)(yi)體指(zhi)令集基(ji)(ji)礎上。指(zhi)令集作為芯片軟硬件(jian)設計的(de)(de)接口,對于(yu)軟件(jian)生態有著(zhu)舉足經(jing)重的(de)(de)作用,為了使工具(ju)(ju)(ju)鏈(lian)對多(duo)種多(duo)樣(yang)的(de)(de)存(cun)算(suan)一(yi)(yi)體芯片的(de)(de)底(di)層操作具(ju)(ju)(ju)有通用性(xing),該(gai)課題組首先抽象(xiang)了存(cun)算(suan)一(yi)(yi)體架(jia)構(gou)支持的(de)(de)基(ji)(ji)本算(suan)子(zi),定(ding)義了一(yi)(yi)套統一(yi)(yi)的(de)(de)面向神(shen)經(jing)網絡(luo)的(de)(de)存(cun)算(suan)一(yi)(yi)體指(zhi)令集。

這些指(zhi)令(ling)(ling)有四類(lei),分別是(shi)矩陣(zhen)(zhen)指(zhi)令(ling)(ling)(例如(ru)矩陣(zhen)(zhen)向量(liang)乘)、向量(liang)指(zhi)令(ling)(ling)(例如(ru)向量(liang)加)、標量(liang)指(zhi)令(ling)(ling)(主(zhu)要(yao)(yao)是(shi)傳(chuan)統寄存器操作(zuo))和傳(chuan)輸指(zhi)令(ling)(ling)(主(zhu)要(yao)(yao)是(shi)各級(ji)存儲間的數據傳(chuan)輸指(zhi)令(ling)(ling)),其中每個指(zhi)令(ling)(ling)對應(ying)硬件的一個抽象操作(zuo)。面對具(ju)體存算一體芯片時,可通過轉化程序方便地(di)翻譯到具(ju)體的硬件指(zhi)令(ling)(ling)上。

進一(yi)(yi)步來看,PIMCOMP-NN是一(yi)(yi)個(ge)面向(xiang)存(cun)(cun)算(suan)陣列架(jia)構(gou)的(de)神(shen)經(jing)(jing)網(wang)絡通用(yong)編譯框(kuang)架(jia),它建立(li)在(zai)對硬件(jian)架(jia)構(gou)和(he)算(suan)子的(de)統一(yi)(yi)抽象基礎之(zhi)上(shang)。為(wei)實現對上(shang)層(ceng)算(suan)法的(de)通用(yong)性,PIMCOMP-NN采(cai)用(yong)ONNX格式的(de)神(shen)經(jing)(jing)網(wang)絡描(miao)述(shu)作(zuo)為(wei)輸入,因而可(ke)以(yi)處理(li)多(duo)(duo)種多(duo)(duo)樣的(de)神(shen)經(jing)(jing)網(wang)絡模(mo)型。為(wei)實現對硬件(jian)架(jia)構(gou)的(de)通用(yong)性,PIMCOMP-NN建立(li)在(zai)一(yi)(yi)個(ge)抽象的(de)存(cun)(cun)算(suan)架(jia)構(gou)之(zhi)上(shang),如(ru)圖2所示。該(gai)抽象架(jia)構(gou)由多(duo)(duo)個(ge)核(he)心構(gou)成,每個(ge)核(he)心包括存(cun)(cun)算(suan)一(yi)(yi)體矩陣單元來完成矩陣-向(xiang)量(liang)乘法運算(suan)和(he)向(xiang)量(liang)計算(suan)單元來完成向(xiang)量(liang)計算(suan)。課題組(zu)定義了一(yi)(yi)組(zu)統一(yi)(yi)的(de)參數來描(miao)述(shu)該(gai)抽象架(jia)構(gou)。該(gai)架(jia)構(gou)可(ke)適配已有研究中廣(guang)泛采(cai)用(yong)的(de)多(duo)(duo)層(ceng)次Crossbar/PE/Tile/Chip結構(gou),包括發表在(zai)ISCA、ASPLOS、ISSCC等多(duo)(duo)個(ge)頂會上(shang)的(de)多(duo)(duo)種存(cun)(cun)算(suan)一(yi)(yi)體加速器。

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

圖2抽象存(cun)算(suan)一體(ti)架構

PIMCOMP-NN實(shi)現了(le)從神(shen)經網絡(luo)結構(gou)描述到(dao)指令(ling)(ling)流(liu)的(de)(de)自動化(hua)(hua)生成,并在(zai)(zai)編譯(yi)過程(cheng)中(zhong)優(you)(you)化(hua)(hua)任務映(ying)射(she)(she)和(he)(he)調(diao)(diao)度(du),其框架如(ru)圖3所示。編譯(yi)器(qi)前端將讀取用戶提供的(de)(de)抽象(xiang)架構(gou)配置參數(shu)(shu)(陣(zhen)列(lie)(lie)尺(chi)寸、核(he)心數(shu)(shu)目(mu)、芯片數(shu)(shu)目(mu)等(deng)),同時加載基于ONNX的(de)(de)神(shen)經網絡(luo)模型(xing)(xing),通(tong)過預處(chu)理(li)得到(dao)神(shen)經網絡(luo)模型(xing)(xing)的(de)(de)拓撲(pu)關系和(he)(he)參數(shu)(shu)信息。編譯(yi)器(qi)后端包括四個通(tong)用編譯(yi)優(you)(you)化(hua)(hua)階段(duan):節(jie)點劃(hua)分(fen)(fen)、權(quan)重(zhong)復(fu)(fu)制(zhi)、核(he)心映(ying)射(she)(she)和(he)(he)數(shu)(shu)據流(liu)調(diao)(diao)度(du),這四個階段(duan)均在(zai)(zai)所定義的(de)(de)偽指令(ling)(ling)集基礎上(shang)實(shi)施。通(tong)過節(jie)點劃(hua)分(fen)(fen),靈活地(di)將權(quan)重(zhong)數(shu)(shu)據進行拆分(fen)(fen)以適(shi)應(ying)陣(zhen)列(lie)(lie)尺(chi)寸。通(tong)過權(quan)重(zhong)復(fu)(fu)制(zhi),充分(fen)(fen)利(li)用存算陣(zhen)列(lie)(lie)資源。通(tong)過核(he)心映(ying)射(she)(she),高效分(fen)(fen)配計算任務。通(tong)過數(shu)(shu)據流(liu)調(diao)(diao)度(du),產生運(yun)行完整神(shen)經網絡(luo)的(de)(de)指令(ling)(ling)流(liu)。此外,為了(le)適(shi)應(ying)不(bu)同應(ying)用場景,論文(wen)設(she)計了(le)兩種具有不(bu)同層間流(liu)水線粒(li)度(du)的(de)(de)編譯(yi)模式,分(fen)(fen)別具有高吞吐量和(he)(he)低延遲(chi)的(de)(de)特點,在(zai)(zai)編譯(yi)過程(cheng)中(zhong)分(fen)(fen)別優(you)(you)化(hua)(hua)整體吞吐量和(he)(he)推理(li)延遲(chi)。

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

圖3PIMCOMP-NN編(bian)譯器框架

PIMSIM-NN是(shi)一(yi)個(ge)基(ji)于指(zhi)(zhi)令的(de)(de)(de)(de)存(cun)算(suan)一(yi)體(ti)系(xi)統模(mo)(mo)擬(ni)器(qi),PIMSIM-NN的(de)(de)(de)(de)整體(ti)架(jia)構(gou)如圖(tu)4所示,從(cong)上到(dao)(dao)下分(fen)別是(shi)芯片-核心(xin)(xin)-基(ji)礎模(mo)(mo)塊(kuai)-模(mo)(mo)擬(ni)引擎SystemC,整個(ge)芯片由多(duo)個(ge)核心(xin)(xin)通過(guo)片上互連(lian)網絡連(lian)接形成(cheng),核心(xin)(xin)則由多(duo)個(ge)內(nei)部(bu)模(mo)(mo)塊(kuai)構(gou)成(cheng),核心(xin)(xin)內(nei)部(bu)模(mo)(mo)塊(kuai)使用(yong)基(ji)礎模(mo)(mo)塊(kuai)搭建,最終(zhong)在(zai)SystemC的(de)(de)(de)(de)框架(jia)下運行(xing)。PIMSIM-NN接收指(zhi)(zhi)令序列(lie)文件和(he)(he)(he)架(jia)構(gou)配(pei)置文件作(zuo)為(wei)輸入。指(zhi)(zhi)令序列(lie)文件包含每個(ge)核心(xin)(xin)的(de)(de)(de)(de)指(zhi)(zhi)令序列(lie),由編譯器(qi)PIMCOMP-NN生成(cheng)。架(jia)構(gou)配(pei)置文件則對存(cun)算(suan)一(yi)體(ti)架(jia)構(gou)的(de)(de)(de)(de)各(ge)項參(can)數進(jin)(jin)行(xing)配(pei)置,使模(mo)(mo)擬(ni)器(qi)能(neng)夠仿真(zhen)不同的(de)(de)(de)(de)存(cun)算(suan)一(yi)體(ti)架(jia)構(gou)。核心(xin)(xin)設計是(shi)PIMSIM-NN的(de)(de)(de)(de)重(zhong)點,主要有4個(ge)處理單(dan)(dan)元(yuan)(yuan),分(fen)別是(shi)矩陣單(dan)(dan)元(yuan)(yuan)、向(xiang)量單(dan)(dan)元(yuan)(yuan)、傳(chuan)輸單(dan)(dan)元(yuan)(yuan)和(he)(he)(he)標量單(dan)(dan)元(yuan)(yuan)。矩陣單(dan)(dan)元(yuan)(yuan)的(de)(de)(de)(de)核心(xin)(xin)是(shi)存(cun)算(suan)陣列(lie)單(dan)(dan)元(yuan)(yuan),其會預先寫(xie)入權(quan)重(zhong)數據,在(zai)運行(xing)時原(yuan)地執行(xing)矩陣-向(xiang)量乘運算(suan),避免權(quan)重(zhong)數據的(de)(de)(de)(de)搬(ban)運,降低(di)延遲和(he)(he)(he)功耗(hao)。向(xiang)量單(dan)(dan)元(yuan)(yuan)則負(fu)(fu)責(ze)激活(huo)函(han)數和(he)(he)(he)池化(hua)等操(cao)作(zuo),完成(cheng)一(yi)些非線(xian)性操(cao)作(zuo)。傳(chuan)輸模(mo)(mo)塊(kuai)則負(fu)(fu)責(ze)核間(jian)的(de)(de)(de)(de)數據交換,傳(chuan)輸少(shao)量的(de)(de)(de)(de)中(zhong)間(jian)結果(guo),并(bing)負(fu)(fu)責(ze)核間(jian)同步操(cao)作(zuo)。PIMSIM-NN采用(yong)了事(shi)(shi)件驅動仿真(zhen)模(mo)(mo)型,基(ji)于開源的(de)(de)(de)(de)事(shi)(shi)件驅動引擎SystemC編寫(xie),擁有良好的(de)(de)(de)(de)擴展性并(bing)能(neng)得(de)到(dao)(dao)精確(que)的(de)(de)(de)(de)仿真(zhen)結果(guo)。PIMSIM-NN基(ji)于圖(tu)5所示的(de)(de)(de)(de)抽象流水(shui)線(xian)架(jia)構(gou)進(jin)(jin)行(xing)仿真(zhen),各(ge)模(mo)(mo)塊(kuai)通過(guo)SystemC建模(mo)(mo),在(zai)事(shi)(shi)件驅動的(de)(de)(de)(de)引擎中(zhong),在(zai)仿真(zhen)過(guo)程中(zhong)高效地進(jin)(jin)行(xing)交互。

利用該套工(gong)(gong)具(ju)(ju)鏈,可(ke)實(shi)現(xian)(xian)深度神經網絡(luo)在存算(suan)(suan)(suan)一(yi)(yi)體(ti)架(jia)構(gou)(gou)(gou)上的(de)快(kuai)速(su)自動(dong)化(hua)部署(shu),它不僅在部署(shu)過程中優(you)(you)(you)(you)化(hua)了(le)任務(wu)映(ying)射和(he)調度,還對(dui)生成的(de)指(zhi)令序(xu)列進(jin)行相關性能(neng)(neng)指(zhi)標的(de)評(ping)估。與此同(tong)時(shi),該套工(gong)(gong)具(ju)(ju)鏈相較(jiao)于(yu)之前的(de)存算(suan)(suan)(suan)一(yi)(yi)體(ti)架(jia)構(gou)(gou)(gou)模擬器(qi)有(you)了(le)較(jiao)大(da)(da)的(de)改進(jin)。先前的(de)模擬器(qi)大(da)(da)多(duo)采用數據流架(jia)構(gou)(gou)(gou),能(neng)(neng)夠支持(chi)的(de)網絡(luo)結(jie)(jie)構(gou)(gou)(gou)固定(ding),網絡(luo)映(ying)射方式(shi)(shi)單一(yi)(yi),而該工(gong)(gong)具(ju)(ju)鏈基(ji)于(yu)抽象的(de)存算(suan)(suan)(suan)一(yi)(yi)體(ti)指(zhi)令集架(jia)構(gou)(gou)(gou),在編(bian)譯器(qi)的(de)支持(chi)下能(neng)(neng)夠處理更多(duo)的(de)網絡(luo)結(jie)(jie)構(gou)(gou)(gou),并(bing)支持(chi)更靈活的(de)計(ji)算(suan)(suan)(suan)任務(wu)映(ying)射方式(shi)(shi)。編(bian)譯器(qi)提供(gong)了(le)多(duo)種預設的(de)編(bian)譯優(you)(you)(you)(you)化(hua)方案可(ke)供(gong)選擇(ze),同(tong)時(shi)也(ye)可(ke)以修改編(bian)譯器(qi)代碼實(shi)現(xian)(xian)其它編(bian)譯優(you)(you)(you)(you)化(hua)方案,通過結(jie)(jie)合模擬結(jie)(jie)果的(de)迭代反饋可(ke)進(jin)一(yi)(yi)步(bu)實(shi)現(xian)(xian)編(bian)譯空間探索,尋找針(zhen)對(dui)給定(ding)存算(suan)(suan)(suan)一(yi)(yi)體(ti)架(jia)構(gou)(gou)(gou)的(de)最優(you)(you)(you)(you)的(de)編(bian)譯優(you)(you)(you)(you)化(hua)策略(lve),甚至是(shi)編(bian)譯優(you)(you)(you)(you)化(hua)與架(jia)構(gou)(gou)(gou)設計(ji)結(jie)(jie)合的(de)軟硬件(jian)協同(tong)設計(ji)。

結語(yu)

中國科學院計(ji)算(suan)技術研(yan)究(jiu)所智能計(ji)算(suan)機(ji)中心所推出的完整開(kai)源存(cun)算(suan)一體(ti)(ti)(ti)工具鏈,可以(yi)說(shuo)是存(cun)算(suan)一體(ti)(ti)(ti)領(ling)域的一項重要(yao)突破(po)。這一工具鏈不僅增(zeng)強了存(cun)算(suan)一體(ti)(ti)(ti)架構的定制(zhi)化和靈活(huo)性,還促進(jin)了深(shen)度神經網(wang)絡在存(cun)算(suan)一體(ti)(ti)(ti)架構上的高效自動(dong)化部署。

隨著開(kai)源理(li)念(nian)在(zai)存(cun)算一體(ti)領(ling)域(yu)的(de)(de)拓展,將有助(zhu)于(yu)行業建立統一的(de)(de)編程和(he)接(jie)口(kou)標(biao)準(zhun),從而使來自不(bu)同廠商和(he)研究機構的(de)(de)產品實現互通。這一標(biao)準(zhun)化進(jin)程將有助(zhu)于(yu)解決目前存(cun)算一體(ti)芯(xin)片(pian)(pian)領(ling)域(yu)的(de)(de)碎片(pian)(pian)化問題,提高生態系統的(de)(de)協(xie)同效率。進(jin)一步推(tui)動存(cun)算一體(ti)芯(xin)片(pian)(pian)更容易與人工智能(neng)、大數據、物聯(lian)網等產業相(xiang)結合,形成更加豐富和(he)復雜的(de)(de)應用(yong)場(chang)景。

芯片 存算(suan)一體 開源
評論
還可輸入300個字
專欄介紹
半導體行業觀察
43篇文章
最有深度的半導體新媒體,實訊、專業、原創、深度,50萬半導體精英關注!專注觀察全球半導體最新資訊、技術前沿、發展趨勢。《摩爾精英》《中國集成電路》共同出品,歡迎訂閱摩爾旗下公眾號:摩爾精英MooreElite、摩爾芯聞、摩爾芯球
+關注
400-858-9000
免費服務熱線
郵箱
09:00--20:00
服務時間
投訴電話
投融界App下載
官方微信公眾號
官方微信小程序
Copyright ? 2024 浙江投融界科技有限公司(xxccv.cn) 版權所有 | ICP經營許可證:浙B2-20190547 | | 浙公網安備330號
地址:浙江省杭州市西湖區留下街道西溪路740號7號樓301室
浙江投融界科技有限公司xxccv.cn版權所有 | 用戶協議 | 隱私條款 | 用戶權限
應用版本:V2.7.8 | 更新日期:2022-01-21
 
在線客服
微信訂閱