[發(fā)明專利]基于GPU的計(jì)算二值神經(jīng)網(wǎng)絡(luò)卷積的方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201611001971.3 | 申請(qǐng)日: | 2016-11-11 |
| 公開(kāi)(公告)號(hào): | CN106779057B | 公開(kāi)(公告)日: | 2020-04-17 |
| 發(fā)明(設(shè)計(jì))人: | 魏銘 | 申請(qǐng)(專利權(quán))人: | 北京曠視科技有限公司;北京邁格威科技有限公司 |
| 主分類號(hào): | G06N3/063 | 分類號(hào): | G06N3/063;G06F9/38;G06F9/305;G06F9/308 |
| 代理公司: | 北京市磐華律師事務(wù)所 11336 | 代理人: | 董巍;高偉 |
| 地址: | 100190 北京*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 gpu 計(jì)算 神經(jīng)網(wǎng)絡(luò) 卷積 方法 裝置 | ||
本發(fā)明實(shí)施例提供了一種基于GPU的計(jì)算二值神經(jīng)網(wǎng)絡(luò)卷積的處理方法,包括:獲取根據(jù)二值神經(jīng)網(wǎng)絡(luò)執(zhí)行卷積操作的計(jì)算請(qǐng)求;根據(jù)所述計(jì)算請(qǐng)求,開(kāi)啟GPU上的至少一個(gè)線程塊,其中,每個(gè)線程塊包括多個(gè)線程;基于兩級(jí)分塊策略,確定所述至少一個(gè)線程塊中每個(gè)線程塊的計(jì)算區(qū)域范圍,并確定每個(gè)線程塊所包括的線程的計(jì)算區(qū)域范圍;所述至少一個(gè)線程塊中的每個(gè)線程塊內(nèi)的各個(gè)線程執(zhí)行計(jì)算過(guò)程,得到計(jì)算結(jié)果;根據(jù)每個(gè)線程塊內(nèi)的各個(gè)線程得到的所述計(jì)算結(jié)果,確定相應(yīng)的線程塊的輸出結(jié)果。本發(fā)明設(shè)計(jì)了基于GPU線程塊的兩級(jí)分塊策略,充分利用了GPU的訪存特性,從而能夠在GPU設(shè)備上實(shí)現(xiàn)二值神經(jīng)網(wǎng)絡(luò)卷積計(jì)算,并且計(jì)算速度得到了提升,內(nèi)存消耗得到了減少。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)視覺(jué)領(lǐng)域,更具體地涉及一種基于GPU的計(jì)算二值神經(jīng)網(wǎng)絡(luò)卷積的方法及裝置。
背景技術(shù)
深度學(xué)習(xí)(Deep Learning)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)通過(guò)組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。在計(jì)算機(jī)視覺(jué)及相關(guān)領(lǐng)域,新興的深度學(xué)習(xí)方法相比過(guò)去傳統(tǒng)方法有了長(zhǎng)足的進(jìn)步。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,簡(jiǎn)稱CNNs)是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型,是深度學(xué)習(xí)的核心操作,它將卷積核(Kernel)與原圖像輸入進(jìn)行卷積操作得到輸出。一般而言,卷積操作是一個(gè)深度學(xué)習(xí)模型中計(jì)算量最大、也是內(nèi)存開(kāi)銷最多的部分,例如目前的CNN中卷積操作會(huì)占用70%以上的計(jì)算時(shí)間,因此優(yōu)化卷積操作是很有必要的。為解決卷積計(jì)算量大、內(nèi)存開(kāi)銷多的問(wèn)題,二值神經(jīng)網(wǎng)絡(luò)(Binary NeuralNetwork,簡(jiǎn)稱BNN)能夠?qū)⒕矸e中32比特(bit)浮點(diǎn)數(shù)存儲(chǔ)改為1bit二值存儲(chǔ),并將浮點(diǎn)計(jì)算替換成整數(shù)位運(yùn)算,例如將浮點(diǎn)數(shù)乘法映射為按位的同或(XNOR)操作。然而,二值神經(jīng)網(wǎng)絡(luò)如何在圖形處理單元(Graphics Processing Unit,簡(jiǎn)稱GPU)設(shè)備上實(shí)現(xiàn)卷積的計(jì)算是急需解決的技術(shù)瓶頸。
發(fā)明內(nèi)容
考慮到上述問(wèn)題而提出了本發(fā)明。本發(fā)明提供了一種基于GPU的計(jì)算二值神經(jīng)網(wǎng)絡(luò)卷積的方法,使得二值神經(jīng)網(wǎng)絡(luò)卷積的計(jì)算能夠在GPU上實(shí)現(xiàn),且能夠?qū)崿F(xiàn)計(jì)算速度的提升。
根據(jù)本發(fā)明一方面,提供了一種基于GPU的計(jì)算二值神經(jīng)網(wǎng)絡(luò)卷積的方法,包括:
獲取根據(jù)二值神經(jīng)網(wǎng)絡(luò)執(zhí)行卷積操作的計(jì)算請(qǐng)求;
根據(jù)所述計(jì)算請(qǐng)求,開(kāi)啟GPU上的至少一個(gè)線程塊,其中,每個(gè)線程塊包括多個(gè)線程;
基于兩級(jí)分塊策略,確定所述至少一個(gè)線程塊中每個(gè)線程塊的計(jì)算區(qū)域范圍,并確定每個(gè)線程塊所包括的線程的計(jì)算區(qū)域范圍;
所述至少一個(gè)線程塊中的每個(gè)線程塊內(nèi)的各個(gè)線程執(zhí)行計(jì)算過(guò)程,得到計(jì)算結(jié)果;
根據(jù)每個(gè)線程塊內(nèi)的各個(gè)線程得到的所述計(jì)算結(jié)果,確定相應(yīng)的線程塊的輸出結(jié)果。
示例性地,被執(zhí)行卷積操作的輸入數(shù)據(jù)的物理數(shù)據(jù)布局為:所述輸入數(shù)據(jù)在通道數(shù)維度分為多組,每組包括連續(xù)的b位,同一組中的位在物理存儲(chǔ)空間上是連續(xù)的,相鄰的組在所述物理存儲(chǔ)空間上是不相鄰的;其中b與所述GPU的顯存位寬一致。
示例性地,所述計(jì)算過(guò)程包括:使用異或操作模擬XNOR操作的行為對(duì)所述輸入數(shù)據(jù)進(jìn)行計(jì)算,并使用popcount指令計(jì)算異或操作得到的結(jié)果中為1的位的數(shù)量,作為所述計(jì)算結(jié)果。
示例性地,所述根據(jù)每個(gè)線程塊內(nèi)的各個(gè)線程得到的所述計(jì)算結(jié)果,確定相應(yīng)的線程塊的輸出結(jié)果包括:
利用投票函數(shù)對(duì)每個(gè)線程塊內(nèi)的各個(gè)線程得到的所述計(jì)算結(jié)果進(jìn)行統(tǒng)計(jì),如果所述計(jì)算結(jié)果中為1的位的數(shù)量大于為0的位的數(shù)量,則確定所述線程對(duì)應(yīng)的判定結(jié)果為正,否則所述線程對(duì)應(yīng)的判定結(jié)果為負(fù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京曠視科技有限公司;北京邁格威科技有限公司,未經(jīng)北京曠視科技有限公司;北京邁格威科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611001971.3/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 圖形處理器任務(wù)的分配方法和裝置
- 一種資源調(diào)度裝置、資源調(diào)度系統(tǒng)和資源調(diào)度方法
- 一種免工具GPU支架固定裝置
- 一種YARN集群GPU資源調(diào)度方法、裝置和介質(zhì)
- 一種服務(wù)器內(nèi)4GPU布局結(jié)構(gòu)及其安裝方法
- 一種GPU資源調(diào)度系統(tǒng)及其調(diào)度方法
- 一種GPU拓?fù)浞謪^(qū)方法與裝置
- 一種基于Kubernetes的共享GPU調(diào)度方法
- 一種數(shù)據(jù)處理的方法和裝置
- 一種GPU分配方法、系統(tǒng)、存儲(chǔ)介質(zhì)及設(shè)備
- 硬件神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法、計(jì)算裝置、軟硬件協(xié)作系統(tǒng)
- 生成較大神經(jīng)網(wǎng)絡(luò)
- 神經(jīng)網(wǎng)絡(luò)的生成方法、生成裝置和電子設(shè)備
- 一種舌診方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 脈沖神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換方法及相關(guān)轉(zhuǎn)換芯片
- 圖像處理方法、裝置、可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種適應(yīng)目標(biāo)數(shù)據(jù)集的網(wǎng)絡(luò)模型微調(diào)方法、系統(tǒng)、終端和存儲(chǔ)介質(zhì)
- 用于重構(gòu)人工神經(jīng)網(wǎng)絡(luò)的處理器及其操作方法、電氣設(shè)備
- 一種圖像神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法及裝置





