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

一種流執(zhí)行方法及裝置與流程

文檔序號:12671838閱讀:441來源:國知局
一種流執(zhí)行方法及裝置與流程

本發(fā)明涉及人工神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,更具體地涉及一種流執(zhí)行方法及裝置,用于神經(jīng)網(wǎng)絡(luò)處理器。



背景技術(shù):

深度學(xué)習(xí)是機器學(xué)習(xí)的分支,它試圖使用包含復(fù)雜結(jié)構(gòu)或由多重非線性變換構(gòu)成的多個處理層對數(shù)據(jù)進行高層抽象的算法。

深度學(xué)習(xí)是機器學(xué)習(xí)中一種基于對數(shù)據(jù)進行表征學(xué)習(xí)的方法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區(qū)域等。而使用某些特定的表示方法更容易從實例中學(xué)習(xí)任務(wù)(例如,人臉識別或面部表情識別)。

至今已有數(shù)種深度學(xué)習(xí)框架,如深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和深度信念網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)已被應(yīng)用計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學(xué)等領(lǐng)域并獲取了極好的效果。另外,深度學(xué)習(xí)已成為類似術(shù)語,或者說是神經(jīng)網(wǎng)絡(luò)的品牌重塑。

隨著深度學(xué)習(xí)(神經(jīng)網(wǎng)絡(luò))的大熱,神經(jīng)網(wǎng)絡(luò)處理器也應(yīng)運而生,通過專門的內(nèi)存和運算模塊設(shè)計,神經(jīng)網(wǎng)絡(luò)處理器在進行深度學(xué)習(xí)運算時可以獲得相比較通用處理器幾十甚是上百倍的加速比,并且面積更小,功耗更低。

為了方便應(yīng)用神經(jīng)網(wǎng)絡(luò)處理器在各種不同網(wǎng)絡(luò)結(jié)構(gòu)上進行加速運算,如何高效的實現(xiàn)對神經(jīng)網(wǎng)絡(luò)處理器的功能重構(gòu)也是一項非常重要的工作。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)處理器編程接口的編寫過程中,為了實現(xiàn)最大限度的原子性和靈活性,接口的基本功能定義都以神經(jīng)網(wǎng)絡(luò)運算中的常用原子操作作為基礎(chǔ),例如卷積(Convolution),池化(Pooling),激活(Active)等。然而神經(jīng)網(wǎng)絡(luò)處理器由于其獨特的內(nèi)部體系結(jié)構(gòu)設(shè)計,過于細小的原子操作的簡單順序拼接無法充分發(fā)揮它的硬件性能。



技術(shù)實現(xiàn)要素:

鑒于現(xiàn)有方案存在的問題,為了克服上述現(xiàn)有技術(shù)方案的不足,本發(fā)明提出了一種流執(zhí)行方法。

根據(jù)本發(fā)明的一個方面,提供了一種流執(zhí)行方法,包括:預(yù)處理步驟,獲得指令描述符流;層優(yōu)化步驟,優(yōu)化指令描述符流;以及構(gòu)建指令流,根據(jù)所述優(yōu)化后的指令描述符流構(gòu)建指令流。

根據(jù)本發(fā)明的另一個方面,提供了一種流執(zhí)行裝置,包括:預(yù)處理模塊,用于獲得指令描述符流;層優(yōu)化模塊,用于優(yōu)化指令描述符流;以及指令流構(gòu)建模塊,用于根據(jù)所述優(yōu)化后的指令描述符流構(gòu)建指令流。

從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果:

通過構(gòu)建指令描述符流并優(yōu)化實現(xiàn)了對神經(jīng)網(wǎng)絡(luò)處理器更高效的功能重構(gòu),以期望在運用神經(jīng)網(wǎng)絡(luò)加速器進行神經(jīng)網(wǎng)絡(luò)方面運算時可以獲得相比較傳統(tǒng)處理器更高的加速比;

采用層消除處理和/或?qū)尤诤咸幚韮?yōu)化指令描述符流,-克服了用卷積,池化,激活等細粒度原子操作組成完整神經(jīng)網(wǎng)絡(luò)并進行完整運算時-產(chǎn)生的意外IO開銷和-意外的冗余操作。

附圖說明

圖1為本發(fā)明一實施例流執(zhí)行方法的流程圖;

圖2為圖1中層消除處理的流程圖;

圖3為圖1中層融合處理的流程圖;

圖4為本發(fā)明另一實施例流執(zhí)行裝置的示意圖。

具體實施方式

本發(fā)明某些實施例于后方將參照所附附圖做更全面性地描述,其中一些但并非全部的實施例將被示出。實際上,本發(fā)明的各種實施例可以許多不同形式實現(xiàn),而不應(yīng)被解釋為限于此數(shù)所闡述的實施例;相對地,提供這些實施例使得本發(fā)明滿足適用的法律要求。

在本說明書中,下述用于描述本發(fā)明原理的各種實施例只是說明,不應(yīng)該以任何方式解釋為限制發(fā)明的范圍。參照附圖的下述描述用于幫助全面理解由權(quán)利要求及其等同物限定的本發(fā)明的示例性實施例。下述描述包括多種具體細節(jié)來幫助理解,但這些細節(jié)應(yīng)認為僅僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)認識到,在不悖離本發(fā)明的范圍和精神的情況下,可以對本文中描述的實施例進行多種改變和修改。此外,為了清楚和簡潔起見,省略了公知功能和結(jié)構(gòu)的描述。此外,貫穿附圖,相同附圖標記用于相似功能和操作。

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。

本發(fā)明實施例提供了一種流執(zhí)行方法,用于神經(jīng)網(wǎng)絡(luò)處理器,實現(xiàn)了對神經(jīng)網(wǎng)絡(luò)處理器更高效的功能重構(gòu),獲得比傳統(tǒng)處理器更高的加速比。

該流執(zhí)行方法,包括預(yù)處理步驟,層優(yōu)化步驟及構(gòu)建指令流的步驟。

圖1為本發(fā)明實施例流執(zhí)行方法的示意圖,如圖1所示,本實施例中的流執(zhí)行方法包括以下步驟:

S1:預(yù)處理步驟,用于獲得指令描述符流,即用于生成指令的指令描述符序列;

該預(yù)處理步驟包括:

S11:構(gòu)建設(shè)備流,即構(gòu)建神經(jīng)網(wǎng)絡(luò)基本操作序列;

具體的,基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、輸入神經(jīng)元及權(quán)值等基礎(chǔ)數(shù)據(jù)構(gòu)建神經(jīng)網(wǎng)絡(luò)基本操作序列,例如,利用網(wǎng)絡(luò)結(jié)構(gòu)A對輸入數(shù)據(jù)集合B進行處理,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)A可以分為一系列的基本操作,例如卷積(Convolution),池化(Pooling),激活(Active)等,細化所有的操作,并排序形成流的形式。

S12:構(gòu)建指令描述符流,即構(gòu)建指令描述符序列;

根據(jù)S11形成的設(shè)備流構(gòu)建指令描述符流,指令描述符流用于生成指令流。

S2:層優(yōu)化步驟,優(yōu)化指令描述符流,包括層消除處理S21和/或?qū)尤诤咸幚鞸22;

所述層消除處理S21用于消除指令描述符流中的冗余操作,如圖2所示,具體包括:

S211:遍歷指令描述符流中指令描述符;

S212:判斷指令描述符是否為冗余操作;若判斷結(jié)果為Y,則執(zhí)行S213,否則執(zhí)行S214;

S213:去除冗余操作的指令描述符;

S214:保留指令描述符;

S215:輸出無冗余操作的指令描述符流。

所述冗余操作例如連續(xù)兩層相同輸入數(shù)據(jù)格式時的無效拆分等。以下為具體例子。

設(shè)存在連續(xù)的兩個卷積層(Convolution Layer)C和D,并且C和D中均設(shè)置參數(shù)group為2。由于硬件限制,在單獨處理C和D的運算時,需要進行輸入時對數(shù)據(jù)拆分,輸出時對數(shù)據(jù)合并。而當C和D中的卷積操作在設(shè)備緩存中連續(xù)依次存在時,C的輸出作為D的輸入,中間可以省去輸入數(shù)據(jù)的合并和拆分操作。

所述層融合處理S22用于融合指令描述符流中一些操作,如圖3所示,具體包括:

S221:遍歷指令描述符流中指令描述符;

S222:判斷指令描述符流代表的網(wǎng)絡(luò)結(jié)構(gòu)中是否存在可融合的層;若判斷結(jié)果為Y,則執(zhí)行S223,否則執(zhí)行S224;

S223:根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)中可融合的層簡化指令描述符序;

S224:保留指令描述符;

S225:輸出無可融合網(wǎng)絡(luò)結(jié)構(gòu)的指令描述符流。

所述層融合處理例如對其中可以一次性生成指令的多個連續(xù)網(wǎng)絡(luò)層做融合處理(如可以作為基本模塊的簡單三層操作卷積,池化,激活)等。以下為具體例子,

網(wǎng)絡(luò)結(jié)構(gòu)中包括了連續(xù)的三層,卷積層(Convolution),歸一化層(BatchNorm),激活層(Active)。生成了相應(yīng)的指令描述符后,層融合處理模塊判斷到這三層可以進行融合,則對指令描述符序列進行處理,融合相關(guān)指令描述符,用一條指令描述符表示這樣的三層網(wǎng)絡(luò)結(jié)構(gòu)。

本實施例中,層優(yōu)化步驟S2中,層消除處理S21和層融合處理S22可以選用其中一種,或者兩者同時存在,兩者同時存在時,層消除處理S21和層融合處理S22可以順序執(zhí)行,也可以同時執(zhí)行,兩者順序執(zhí)行時,先執(zhí)行其中任一步驟均是可行的。

S3:構(gòu)建指令流,即用于執(zhí)行的指令序列。

具體的根據(jù)S2中獲得的優(yōu)化后的指令描述符流,構(gòu)建可被神經(jīng)網(wǎng)絡(luò)處理器執(zhí)行的指令流。該指令流可以直接傳輸給神經(jīng)網(wǎng)絡(luò)處理器來執(zhí)行。

本發(fā)明的另一實施例提供了一種流執(zhí)行裝置,如圖4所示,包括:預(yù)處理模塊10、層優(yōu)化模塊20及指令流構(gòu)建模塊30。

預(yù)處理模塊10,用于獲得指令描述符流,即用于生成指令的指令描述符序列,包括設(shè)備流構(gòu)建模塊11及指令描述符流構(gòu)建模塊12。

設(shè)備流構(gòu)建模塊11,用于構(gòu)建設(shè)備流,即構(gòu)建神經(jīng)網(wǎng)絡(luò)基本操作序列,其基于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、輸入神經(jīng)元及權(quán)值等基礎(chǔ)數(shù)據(jù)構(gòu)建神經(jīng)網(wǎng)絡(luò)基本操作序列;

指令描述符流構(gòu)建模塊12用于構(gòu)建指令描述符流,即構(gòu)建指令描述符序列,根據(jù)形成的設(shè)備流構(gòu)建指令描述符流,指令描述符流用于生成指令流。

層優(yōu)化模塊20用于優(yōu)化指令描述符流,包括層消除模塊21和/或?qū)尤诤夏K22;

層消除模塊21用于消除指令描述符流中的冗余操作,其遍歷指令描述符流中描述符,去除冗余操作的指令描述符,輸出無冗余操作的指令描述符流。

層融合模塊22用于融合指令描述符流中一些操作,其遍歷指令描述符流中描述符,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)和預(yù)先定義的模式融合指令描述符流中的相關(guān)指令描述符,輸出層融合后的指令描述符流。

本實施例中,層消除模塊21和層融合模塊22可以選用其中一種,或者兩者同時存在,兩者同時存在時,層消除模塊21和層融合模塊22可以順序工作,也可以同時工作,兩者順序工作時,先后順序可以調(diào)換。

前面的附圖中所描繪的進程或方法可通過包括硬件(例如,電路、專用邏輯等)、固件、軟件(例如,被承載在非瞬態(tài)計算機可讀介質(zhì)上的軟件),或兩者的組合的處理邏輯來執(zhí)行。雖然上文按照某些順序操作描述了進程或方法,但是,應(yīng)該理解,所描述的某些操作能以不同順序來執(zhí)行。此外,可并行地而非順序地執(zhí)行一些操作。

需要說明的是,在附圖或說明書正文中,未繪示或描述的實現(xiàn)方式,均為所屬技術(shù)領(lǐng)域中普通技術(shù)人員所知的形式,并未進行詳細說明。此外,上述對各元件和方法的定義并不僅限于實施例中提到的各種具體結(jié)構(gòu)、形狀或方式,本領(lǐng)域普通技術(shù)人員可對其進行簡單地更改或替換。

以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

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