[發(fā)明專利]運算方法及裝置在審
| 申請?zhí)枺?/td> | 201910318642.9 | 申請日: | 2019-04-19 |
| 公開(公告)號: | CN111832714A | 公開(公告)日: | 2020-10-27 |
| 發(fā)明(設(shè)計)人: | 不公告發(fā)明人 | 申請(專利權(quán))人: | 上海寒武紀(jì)信息科技有限公司 |
| 主分類號: | G06N3/063 | 分類號: | G06N3/063 |
| 代理公司: | 北京林達(dá)劉知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11277 | 代理人: | 劉新宇 |
| 地址: | 201306 上海*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 運算 方法 裝置 | ||
本公開涉及一種運算方法及裝置,所述方法包括:獲取待執(zhí)行的神經(jīng)網(wǎng)絡(luò)運算,所述神經(jīng)網(wǎng)絡(luò)運算包括多個運算操作;基于所述多個運算操作劃分出滿足第一要求的多個運算子圖,每個所述運算子圖包括至少一個運算操作,所述第一要求包括劃分出的多個運算子圖中不存在孤立的運算子圖,并且劃分出的運算子圖在與其余的運算操作和運算子圖不形成循環(huán)運算的情況下,能夠包括最多的運算操作;基于劃分的所述多個運算子圖并行執(zhí)行所述神經(jīng)網(wǎng)絡(luò)運算。本公開實施例可以實現(xiàn)神經(jīng)網(wǎng)絡(luò)運算的并行運算。
技術(shù)領(lǐng)域
本公開涉及機(jī)器學(xué)習(xí)領(lǐng)域,尤其涉及一種神經(jīng)網(wǎng)絡(luò)運算方法、加速器、芯片、電子設(shè)備和存儲介質(zhì)。
背景技術(shù)
目前,越來越多針對神經(jīng)網(wǎng)絡(luò)加速器(如深度學(xué)習(xí)加速器)的硬件設(shè)計被提出,這些加速器在設(shè)計上有著各自不同的特點。盡管神經(jīng)網(wǎng)絡(luò)框架(如Caffe2,TensorFlow,MXNet)可以通過調(diào)用硬件設(shè)計者提供的高性能計算庫來充分利用底層設(shè)備的性能,但同樣很難打破算子之間的界限在更大的范圍內(nèi)進(jìn)一步優(yōu)化,這需要對底層硬件具備足夠充分的知識,更需要底層設(shè)備本身具有非常良好的可編程性,而這兩點對于快速發(fā)展的神經(jīng)網(wǎng)絡(luò)加速器都是不實際的。
相關(guān)技術(shù)中,可以采用上層框架進(jìn)行神經(jīng)網(wǎng)絡(luò)運算的優(yōu)化工作,例如MXNet中使用CUDA的在線編譯方法在運行階段生成多個算子整體優(yōu)化后的臨時kernel代碼。這種方法的問題在于,只能進(jìn)行簡單的優(yōu)化,并且對于缺乏足夠可編程性的加速器難以實現(xiàn)。
發(fā)明內(nèi)容
有鑒于此,本公開提出了一種神經(jīng)網(wǎng)絡(luò)運算方法、加速器、芯片、電子設(shè)備和存儲介質(zhì)。
根據(jù)本公開的一方面,提供了一種神經(jīng)網(wǎng)絡(luò)運算方法,包括:
獲取待執(zhí)行的神經(jīng)網(wǎng)絡(luò)運算,所述神經(jīng)網(wǎng)絡(luò)運算包括多個運算操作;
基于所述多個運算操作劃分出滿足第一要求的多個運算子圖,每個所述運算子圖包括至少一個運算操作,所述第一要求包括劃分出的多個運算子圖中不存在孤立的運算子圖,并且劃分出的各運算子圖在與其余的運算操作和運算子圖不形成循環(huán)運算的情況下,能夠包括最多的運算操作;
基于劃分的所述多個運算子圖并行執(zhí)行所述神經(jīng)網(wǎng)絡(luò)運算。
在一些可能的實施方式中,所述基于所述多個運算操作劃分出滿足第一要求的多個運算子圖,包括:
基于所述神經(jīng)網(wǎng)絡(luò)運算的反向運算順序,將第一個運算操作確定為初始子圖,按照其余運算操作與該初始子圖的連接順序,依次向所述初始子圖中加入運算操作;
如果將待加入的運算操作加入至所述初始子圖所形成的新的子圖與其他運算操作以及運算子圖不存在循環(huán)運算,則將該待加入的運算操作加入至所述初始子圖中形成新的子圖,并繼續(xù)向所述新的子圖中加入下一運算操作,直至將待加入的運算操作加入至新的子圖后所形成的新的子圖與其他運算操作或者運算子圖之間存在循環(huán)運算,則終止該新的子圖的擴(kuò)展,并將未加入該形成循環(huán)運算的待加入運算操作的子圖作為一個滿足第一要求的第一運算子圖;
將與得到的第一運算子圖連接的運算操作作為下一個初始子圖,并基于該下一個初始子圖確定其余滿足第一要求的第一運算子圖;
基于各第一運算子圖確定劃分的所述多個運算子圖。
在一些可能的實施方式中,在所述基于所述多個運算操作劃分出滿足第一要求的多個運算子圖之前,所述方法還包括:
將所述神經(jīng)網(wǎng)絡(luò)運算的多個運算操作中通過加速器以外的電子器件執(zhí)行的運算操,作為一個第一運算子圖。
在一些可能的實施方式中,所述基于所述多個運算操作劃分出滿足第一要求的多個運算子圖,還包括:
將所述多個第一運算子圖進(jìn)一步劃分成滿足第二要求的多個第二運算子圖,所述第二要求包括劃分出的第二運算子圖中的各運算操作的輸入路徑和輸出路徑最多為一個。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海寒武紀(jì)信息科技有限公司,未經(jīng)上海寒武紀(jì)信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910318642.9/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





