国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種支持卷積神經(jīng)網(wǎng)絡(luò)稀疏計算的方法

2021-04-11 14:56中興通訊股份有限公司余金清賀小龍
電子世界 2021年6期
關(guān)鍵詞:表項乘法運算

中興通訊股份有限公司 余金清 章 偉 賀小龍

本文提出一種對神經(jīng)網(wǎng)絡(luò)權(quán)重進行編排方法,根據(jù)量化的權(quán)重值的稀疏特性,通過只編排權(quán)重非0值,從而減少權(quán)重帶寬;同時,提出一種硬件實現(xiàn)架構(gòu),結(jié)合編排好的權(quán)重,能夠有效減少卷積網(wǎng)絡(luò)的乘法運算,特別是在網(wǎng)絡(luò)權(quán)重稀疏情況下,可以進一步減少卷積計算,從而提升神經(jīng)網(wǎng)絡(luò)處理能力。

1 背景分析

近些年來,人工智能技術(shù)在在全世界范圍內(nèi)得到了迅猛的發(fā)展,與此同時神經(jīng)網(wǎng)絡(luò)的規(guī)模不斷增長,典型的神經(jīng)網(wǎng)絡(luò)動輒幾十層甚至上百層,計算量不斷的增加造成推理需要的時間也需來越長。

但實際應(yīng)用中,在如此高的運算量中并不是所有的計算都是有效計算,特別是對于算法經(jīng)過定點化或是稀疏化后,出現(xiàn)的權(quán)重為零的點,實際運行中,是不需要計算的。因此,神經(jīng)網(wǎng)絡(luò)的硬件加速器利用權(quán)重的稀疏特性減少計算量,且在此基礎(chǔ)上進一步降低處理時間,提高效能,目前業(yè)界都在關(guān)注的重點技術(shù)問題。

2 設(shè)計思路

本設(shè)計采用兩種方法來提升神經(jīng)網(wǎng)絡(luò)設(shè)計:

(1)權(quán)重編排:通過離線方式,對提前訓(xùn)練好的權(quán)重( weights)進行特別編排,去掉值為0的權(quán)重,完成對非0權(quán)重的編排。

(2)計算加速:卷積網(wǎng)絡(luò)加速器,完成神經(jīng)網(wǎng)絡(luò)稀疏計算(只計算非0權(quán)重)提升網(wǎng)絡(luò)處理能力。

2.1 權(quán)重編排

權(quán)重編排,通過編譯器對每個積核中點化后的權(quán)重值重新編排,編排后的權(quán)重變?yōu)橹甘痉?映射表的形式。如圖1所示,通過代運算將一個R*S*CH大小的卷積核切分成多個R*S*CH的卷積核(其中R為卷積核的列寬,S為卷積核的行寬,CH為子卷積核的通道數(shù),假設(shè)層的卷積核通道數(shù)尾C,存在C<=CH),并對每個子卷積核中定點化后的權(quán)重值重新編排,編排后的權(quán)重變?yōu)橹甘痉?映射表的形式。

權(quán)重編排的實施方式,把相同規(guī)律的權(quán)重編排(即分類,對于8bit定點處理,如將1,2,4,8分為一類,3,6,12,24分為一類)在一起,先排正數(shù)權(quán)重,之后排負(fù)數(shù)權(quán)重。使用本文的方式,可以使原來需要R*S*C次乘加作,而編排后最多只需要R*S*C+256次加法操作和256次乘法操作同時,當(dāng)卷積計算的累加和小于偏置時,可以提前停止卷積運算。

圖1 權(quán)重編排流程

根據(jù)激活函數(shù) ReLU(Rectified Linear Unit)特性,設(shè)置提前停止功能,正數(shù)權(quán)重和負(fù)數(shù)權(quán)重分開組合,正數(shù)權(quán)重類型排在向量前面,負(fù)數(shù)排在后面。

將離線編排好的權(quán)重數(shù)據(jù),提前存儲在存儲單元中。

(1)對于權(quán)重為0的數(shù)據(jù),由于其運算結(jié)果也為0,則不需要存儲,包括對應(yīng)索引信;后續(xù)運算直接跳過。

(2)對于特征數(shù)據(jù),順序存儲在存儲單元中。

權(quán)重0由于完成卷積運算結(jié)果還是0,在權(quán)重編排時就被丟棄,不參與計算,節(jié)省了存儲資源與數(shù)據(jù)讀寫帶寬,并提高了計算效率。

2.2 計算加速

圖2為本文所述稀疏卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)的方法架構(gòu),其處理流程包括:

CPU根據(jù)當(dāng)前處理的網(wǎng)絡(luò)模型下發(fā)對應(yīng)的指令給硬件加速器;同時,CPU會給DMA下發(fā)指令,讓DMA去對應(yīng)的存儲單元中讀出相應(yīng)的權(quán)重以及特性數(shù)據(jù)。硬件解析指令,分別送給對應(yīng)的控制以及輸入輸出緩存單元。

根據(jù)配置信息,需要將當(dāng)前處理進度的權(quán)數(shù)據(jù)以及特征數(shù)據(jù)提前存放在緩存單元中。先從緩存單元中獲取權(quán)重信息以及位置索引信息(權(quán)重位置信息),并根據(jù)權(quán)重對應(yīng)的索引信息,去從數(shù)據(jù)緩存單元中素引對應(yīng)的數(shù)據(jù)。

計算單元中的控制器,先將第一個指示符讀到控制器中,之后按照順序讀取權(quán)重編排后的映射表內(nèi)容,以映射表內(nèi)容為地址選擇條件,數(shù)據(jù)緩存中讀取數(shù)據(jù)。

圖2 稀疏的神經(jīng)網(wǎng)絡(luò)處理架構(gòu)

圖3 卷積計算結(jié)構(gòu)

卷積計算,如圖3所示,指示符內(nèi)的映射表項讀取時,在沒有達到結(jié)束條件,在計算單元的分類累加單元進行計算預(yù)處理和加減操作。在計算單元的分類累加單元進行計算預(yù)處理(即移位操作,移位量取決于指示符表中的配置)和加減操作(加減取決于指示符表中的配置)。

分類累加過程,當(dāng)同個指示符內(nèi)的映表項讀取完時即達到同一權(quán)重的結(jié)束條件時,查看分類結(jié)束標(biāo)志,如果分類結(jié)束標(biāo)志為未結(jié)束,則讀取下一個指示符表項,繼續(xù)完成累加操作。

分類切換控制,當(dāng)分類結(jié)束標(biāo)志為結(jié)束,則將累加后的結(jié)果,對應(yīng)的權(quán)重值和分類累加計算單元編號送到分類乘加計算單元;同時,讀取下一個指示符表項,并將分類累加處理器中的累加值清零,重新累加減操作,直到指示符表項中的分類結(jié)束標(biāo)志指示為整個卷積操作完成。

分類乘法,分類乘加計算單元完成輸入的權(quán)重和數(shù)據(jù)的乘法操作,并將乘的結(jié)果累加到部分和中。

根據(jù)該方案,配置分類乘法單元是否能提前停止運算,如果激活函數(shù)為ReLU,則使能提前停止功能,即判斷當(dāng)前卷積的部分和的值與偏置值的差值是否小于0,如果小于零,則反饋給計算單元的控制器,該計算完成處理。

該方法可以達到提前終卷積運算的結(jié)果目的,從而減少運算量,減少運算功耗,進而提高能效比。

總結(jié):采用本文所述方法,與現(xiàn)有技術(shù)相比,通過權(quán)重轉(zhuǎn)換和新計算單元相結(jié)合,提前離線對權(quán)重進行了零數(shù)據(jù)壓縮,使得卷積操作的時間只非零權(quán)重的個數(shù)有關(guān),較好的利用了權(quán)重卷積核的稀疏特性,節(jié)省了推理運行時間。與此同時,新的計算單元結(jié)構(gòu)擴展性更好,可以支持計算提前中功能,即可以利用數(shù)據(jù)的稀疏特性,進一步降低運算量。

猜你喜歡
表項乘法運算
算乘法
一種改進的TCAM路由表項管理算法及實現(xiàn)
重視運算與推理,解決數(shù)列求和題
我們一起來學(xué)習(xí)“乘法的初步認(rèn)識”
《整式的乘法與因式分解》鞏固練習(xí)
有趣的運算
基于ARMA模型預(yù)測的交換機流表更新算法
把加法變成乘法
SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項轉(zhuǎn)換的流表調(diào)度優(yōu)化
“整式的乘法與因式分解”知識歸納