午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種逐塊計算的向量-零值稀疏感知卷積神經(jīng)網(wǎng)絡(luò)加速器

文檔序號:39721527發(fā)布日期:2024-10-22 13:13閱讀:3來源:國知局
一種逐塊計算的向量-零值稀疏感知卷積神經(jīng)網(wǎng)絡(luò)加速器

本發(fā)明涉及神經(jīng)網(wǎng)絡(luò),尤其涉及一種逐塊計算的向量-零值稀疏感知的卷積神經(jīng)網(wǎng)絡(luò)加速器。


背景技術(shù):

1、卷積神經(jīng)網(wǎng)絡(luò)是一種強大的算法,其通過一系列卷積層來提取特征,然后將特征送到具體的任務(wù)頭,完成分類、檢測等任務(wù)。卷積神經(jīng)網(wǎng)絡(luò)在圖像數(shù)據(jù)上實現(xiàn)了非常好的效果,近幾年,卷積神經(jīng)網(wǎng)絡(luò)開始用于從點云數(shù)據(jù)中提取有效信息,給定輸入特征圖中的一個特征向量和權(quán)重,基本的卷積操作可用公式表示為:

2、

3、其中,表示輸入通道數(shù),為輸入特征圖在方向的大小,為卷積核在方向的大小,表述輸出通道數(shù),表示輸出特征向量的第個值,表示向下取整,表示權(quán)重或特征在方向上的偏移。在現(xiàn)有神經(jīng)網(wǎng)絡(luò)中,常用的卷積核大小為),然后,每一層的輸出特征在經(jīng)過批歸一化和激活函數(shù)之后,作為下一層的輸入特征,權(quán)重通過訓(xùn)練得到,這里的都是整數(shù)。

4、卷積神經(jīng)網(wǎng)絡(luò)廣泛使用relu作為激活函數(shù),公式表示如下:

5、

6、公式(1)卷積計算的結(jié)果有正有負,經(jīng)過relu激活函數(shù)計算后所有負數(shù)將變?yōu)?,這導(dǎo)致神經(jīng)網(wǎng)絡(luò)特征圖中存在大量的零值稀疏性。對于權(quán)重,無顯式的零值稀疏性,即權(quán)重中顯式的零很少,或者幾乎沒有。但一般而言,神經(jīng)網(wǎng)絡(luò)中的權(quán)重存在不少冗余,使用網(wǎng)絡(luò)剪枝技術(shù)去掉這些冗余權(quán)重,模型準確率等性能指標幾乎不變的同時,也能產(chǎn)生較強的稀疏性。此外,點云在空間中的分布范圍很大(典型的激光雷達掃描范圍為50-100m),空間中只有少量的位置存在點,這導(dǎo)致輸入特征圖中只有少數(shù)位置存在特征向量,絕大部分位置為空(即沒有特征向量),稱之為向量稀疏性,對應(yīng)的特征圖也稱為稀疏特征圖。相反,圖像數(shù)據(jù)無顯式的向量稀疏性。具體來說,給定一張圖片,其圖片大小是固定的,圖片中每個位置對應(yīng)一個像素,但通常情況下,圖片中有很大一部分像素為背景,去掉后對具體的分類、檢測等任務(wù)的準確率影響不大。在這種情況下,圖片中像素的分布也將變得稀疏,對應(yīng)的特征圖成為稀疏特征圖,包含大量的向量稀疏性。

7、同時,神經(jīng)網(wǎng)絡(luò)的計算需要消耗大量的資源,為了讓神經(jīng)網(wǎng)絡(luò)能夠在資源受限的環(huán)境實現(xiàn)部署,如移動設(shè)備、嵌入式系統(tǒng)等,需要設(shè)計專用的神經(jīng)網(wǎng)絡(luò)加速器,如果可以利用零值稀疏性和向量稀疏性,減少不必要的計算,那硬件的性能就能夠得到提升。然而,考慮了稀疏性之后,特征圖和權(quán)重將變得不規(guī)整,其加載、計算、存儲方式變得復(fù)雜。gpu等通用ai處理器無法利用稀疏性,因為它們只能處理規(guī)整的數(shù)據(jù)。

8、稀疏壓縮編碼是利用零值稀疏性來減少存儲需求的一種方法,常見的稀疏數(shù)據(jù)壓縮方式包括行程長度編碼(rlc,run?length?code)、頻繁值壓縮(fvc,frequent?valuecompression),零值壓縮(zvc,?zero?value?compression)。行程長度編碼在特征或權(quán)重不規(guī)則時,編碼長度不可控,需要設(shè)計切分組裝的存儲方式,這給數(shù)據(jù)讀取帶來了困難,也需要額外的切分位置信息記錄。而頻繁值壓縮采用哈夫曼樹編碼同樣存在編碼長度不固定的數(shù)據(jù)存儲問題,并且哈夫曼編碼的壓縮和解壓縮過程相對復(fù)雜,需要較多的時間,不適用于實時數(shù)據(jù)傳輸。零值壓縮用0-1索引表示特征向量中零值和非零值的位置,實現(xiàn)方式簡單高效,不需要單獨的碼表,有利于硬件實現(xiàn)。

9、此外,一般而言,神經(jīng)網(wǎng)絡(luò)特征圖較大,遠超一個加速器內(nèi)部的存儲容量。一種做法是,先將特征圖分為多個小塊,然后按塊將特征加載到片上,執(zhí)行對應(yīng)的卷積運算,如圖1所示。在分塊時,若某些塊無特征向量,則可直接刪除,從而提高加速器的工作效率。但是,將特征圖分塊存在如下問題:(1)卷積計算存在數(shù)據(jù)依賴性,計算當前位置輸出特征需要用到鄰近的多個輸入特征,這導(dǎo)致計算塊邊界的輸出特征時需要用到鄰近塊的輸入特征,加速器計算完每個塊的輸出特征圖后,需要將邊界特征同時更新到鄰近特征塊中;(2)對于稀疏的神經(jīng)網(wǎng)絡(luò)特征圖,每個塊有多少特征,邊界是否有特征,是隨機的,無法事先知曉,這些問題使得分塊計算變得困難,不做針對性的考慮的情況下很容易導(dǎo)致加速器的存儲和計算資源利用率低,計算延時大等問題。因而當前尚沒有能很好地支持對稀疏神經(jīng)網(wǎng)絡(luò)特征圖進行逐塊計算的神經(jīng)網(wǎng)絡(luò)加速器。


技術(shù)實現(xiàn)思路

1、為了解決上述問題,本發(fā)明提供一種逐塊計算的向量-零值稀疏感知卷積神經(jīng)網(wǎng)絡(luò)加速器,該加速器能較好的支持稀疏神經(jīng)網(wǎng)絡(luò)特征圖的逐塊計算,能有效利用稀疏特征圖中的向量稀疏性和零值稀疏性來提高特征圖的計算效率,減少了資源和能量消耗。

2、本發(fā)明提供一種逐塊計算的向量-零值稀疏感知的卷積神經(jīng)網(wǎng)絡(luò)加速器,包括:整體控制器、特征搜索單元、輸入特征管理單元、權(quán)重管理單元、卷積計算陣列、輸出特征管理單元和內(nèi)存管理單元,整體控制器負責控制整個加速器的運行;特征搜索單元用于確定輸出特征向量與輸入特征的映射關(guān)系,即計算每個輸出特征向量都需要哪些特征向量的參與;輸入特征管理單元用于暫存即將用到的輸入特征向量,并根據(jù)特征搜索單元搜索到的映射關(guān)系將對應(yīng)的特征向量中的非零值加載到卷積計算陣列,以執(zhí)行具體的卷積運算;卷積計算陣列包含多個卷積計算單元,每個卷積計算單元包含乘法器、加法樹、累加器和批歸一化單元,用以執(zhí)行卷積運算中的乘法、加法操作,以及后續(xù)的批歸一化操作;權(quán)重管理單元用于暫存權(quán)重,并根據(jù)需要將權(quán)重輸出到卷積計算陣列;輸出特征管理單元暫存輸出特征向量,并采用零值壓縮算法將特征向量壓縮;內(nèi)存管理單元將壓縮后的特征寫回片外存儲器,如ddr4等,完成特征塊的更新。

3、特征搜索單元包括坐標緩沖區(qū)和特征搜索器,坐標緩沖區(qū)用于存儲特征塊中每個特征向量的坐標;特征搜索器用于搜索有效特征,首先將特征塊轉(zhuǎn)化為空間位圖,然后用卷積核按照從左到右,從上到下遍歷空間位圖,從而得到輸入特征和輸出特征的映射關(guān)系,通過這種方式,加速器避免了向量稀疏性相關(guān)的冗余計算。

4、輸入特征管理單元包括特征譯碼器,坐標緩沖區(qū),0-1索引緩沖區(qū),非零值緩沖區(qū),坐標匹配單元和特征聚合器;特征譯碼器首先從片外存儲器讀取壓縮過的特征向量,并對讀入的特征向量進行解碼,解碼后得到特征向量的坐標、0-1索引和非零值三部分,并將這三部分存入對應(yīng)的緩沖區(qū);然后,坐標匹配單元讀坐標緩沖區(qū),并判斷讀取的特征向量的坐標與特征搜索單元的搜索結(jié)果是否匹配,若匹配,則特征聚合器將檢查該特征向量對應(yīng)的權(quán)重是否已經(jīng)被剪掉,如果沒有剪掉,特征聚合器將該特征向量中的非零值和對應(yīng)的權(quán)重加載到卷積計算陣列,具體方式為:讀0-1索引緩沖區(qū),遍歷該索引并計數(shù),每遍歷到索引1,則從非零值緩沖區(qū)中讀一個非零值,并送到卷積計算陣列中,執(zhí)行卷積運算,計數(shù)值將轉(zhuǎn)化為該特征對應(yīng)卷積權(quán)重的讀取地址,送到權(quán)重管理單元中,讀取對應(yīng)的權(quán)重值。加速器通過這種匹配-聚合的特征讀取方式,能有效利用特征向量和權(quán)重中的零值稀疏性,避免了零值相關(guān)的卷積運算,有助于提高硬件性能。

5、權(quán)重管理單元包括剪枝標志寄存器和權(quán)重緩沖區(qū),給定神經(jīng)網(wǎng)絡(luò)中的權(quán)重數(shù)據(jù),采用網(wǎng)絡(luò)剪枝技術(shù)去掉權(quán)重中的冗余部分,具體為:根據(jù)權(quán)重絕對值大小按從大到小的順序排序,取前r%個對網(wǎng)絡(luò)性能影響較大的權(quán)重存入權(quán)重緩沖區(qū),r根據(jù)實際需求設(shè)置,同時,將權(quán)重剪枝標志存入剪枝標志寄存器中,所謂權(quán)重剪枝標志,用來指示權(quán)重數(shù)據(jù)中,哪些權(quán)重已經(jīng)被剪掉,哪些權(quán)重保存在權(quán)重緩沖區(qū)的標志位。

6、卷積計算陣列包括32個卷積計算單元,每個卷積計算單元包含8個乘法器,一個加法樹,一個累加器和一個批歸一化單元,卷積計算陣列一次能計算32個輸出通道,每個卷積計算單元對應(yīng)一個輸出通道,這32個輸出通道稱為一組,若輸出通道數(shù)為,則將劃分為個組,這里表示向上取整,每個卷積計算單元一個周期能計算8個輸入通道的乘法,并將乘法結(jié)果累加,累加的結(jié)果(即輸出特征)經(jīng)過批歸一化和relu函數(shù)激活后,將送往輸出特征管理單元的輸出緩沖區(qū)暫存,等待進一步的處理,為提高片上權(quán)重重用率,減少權(quán)重管理單元的存儲資源消耗,先沿坐標維度遍歷輸入特征,計算完所有特征的一組(32個)輸出通道后,再更新權(quán)重,計算下一組輸出通道。

7、輸出特征管理單元包括輸出緩沖區(qū)、特征編碼器、坐標緩沖區(qū)、0-1索引緩沖區(qū)、非零值緩沖區(qū)、特征組裝器和邊界檢測單元。輸出緩沖區(qū)用于緩沖卷積計算陣列的輸出結(jié)果,該結(jié)果尚未壓縮。特征編碼器對輸出特征進行零值壓縮編碼,并將編碼結(jié)果分別存入對應(yīng)的坐標緩沖區(qū)、0-1索引緩沖區(qū)和非零值緩沖區(qū)中,特征組裝器將壓縮編碼結(jié)果組裝成固定長度的標準幀,邊界檢測單元用于檢測當前輸出特征向量是否位于塊邊界,并將檢測結(jié)果送往內(nèi)存管理單元。

8、為便于特征塊在片外存儲器中的存放和讀取,首先對片外存儲器進行分段,每個特征塊獨占片外存儲器的一段,加速器與片外存儲器的交互由內(nèi)存管理單元完成,內(nèi)存管理單元包含內(nèi)存讀寫控制器和特征塊存放表,內(nèi)存讀寫控制器用于執(zhí)行具體的片外存儲器讀寫操作,特征塊存放表用于記錄每個特征塊在內(nèi)存中的存放地址以及完成特征塊更新。特征塊存放表中包含四項內(nèi)容:塊標簽、塊對應(yīng)的內(nèi)存段起始地址、每段已經(jīng)使用的空間、每個特征塊內(nèi)特征向量的數(shù)量,內(nèi)存管理單元在將輸出特征向量寫回片外存儲器時,將同步更新表中對應(yīng)特征塊的第三列和第四列,即已使用空間和特征向量數(shù)量,此外,內(nèi)存管理單元還將檢測輸出特征向量是否為塊邊界,如果是,則該特征向量將同時寫入包含該邊界特征向量的多個特征塊,并同步更新特征塊存放表中對應(yīng)項,從而完成每個塊內(nèi)特征向量的更新。

9、在實際應(yīng)用中,首先主處理器,如cpu,將神經(jīng)網(wǎng)絡(luò)第一層的輸入特征圖分塊、壓縮,將壓縮后的特征塊存放在內(nèi)存中,并初始化特征塊存放表,然后加速器開始工作。加速器的工作流程為:首先將特征向量坐標、權(quán)重、按塊壓縮后的特征向量等數(shù)據(jù)從片外內(nèi)存加載到片上,其中,坐標將存放到特征搜索單元,權(quán)重存放到權(quán)重管理單元,特征向量解壓縮后存放到輸入特征管理單元,壓縮后的特征向量也包含坐標;接著特征搜索單元搜索有效的輸入特征向量,然后特征聚合器先判斷該特征向量對應(yīng)的權(quán)重是否被剪掉,若否,則讀取搜索到的輸入特征向量,并通過遍歷0-1索引的方式過濾掉特征向量中的零值,只將非零值加載到卷積計算陣列;隨后讀取卷積計算需要的權(quán)重,進行卷積計算;接著對卷積計算結(jié)果進行壓縮編碼,將輸出特征向量重新壓縮回坐標、0-1索引、非零值三項,并將壓縮后的特征組裝為固定長度的標準幀,如512比特;然后將壓縮后的標準幀寫回片外存儲器;最后更新特征塊存放表。

10、相對于現(xiàn)有技術(shù),本發(fā)明具有如下的有益技術(shù)效果:

11、(1)將片外存儲器分段,每段存儲一個特征塊,并使用一種基于特征塊存放表的內(nèi)存管理方式來更新特征塊中的數(shù)據(jù),這樣只需要對神經(jīng)網(wǎng)絡(luò)的第一層的輸入特征進行顯式的分塊操作(由cpu等通用處理器完成),加速器計算得到輸出特征向量后,只需要更新每個特征塊中的數(shù)據(jù)(由加速器完成),不再需要顯式的重新分塊操作,顯著地提高了特征塊存儲和加載效率;

12、(2)通過將分塊后的稀疏特征圖轉(zhuǎn)化為空間位圖,對位圖進行遍歷的方式來搜索計算所需的輸入特征向量,極大降低了特征向量的搜索復(fù)雜度,也間接提高了卷積計算效率;

13、(3)采用零值壓縮算法來減少存儲需求,并使用匹配-聚合的輸入特征讀取方式,能有效利用特征向量和權(quán)重中的零值稀疏性,避免了向量稀疏和零值稀疏相關(guān)的冗余卷據(jù)運算,極大地提升了加速器算力。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1