[發明專利]神經網絡處理裝置及其執行矩陣相乘指令的方法在審
| 申請號: | 201810912879.5 | 申請日: | 2018-08-08 |
| 公開(公告)號: | CN109101272A | 公開(公告)日: | 2018-12-28 |
| 發明(設計)人: | 王秉睿;周聖元;張堯 | 申請(專利權)人: | 上海寒武紀信息科技有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06N3/063 |
| 代理公司: | 廣州三環專利商標代理有限公司 44202 | 代理人: | 郝傳鑫;熊永強 |
| 地址: | 201306 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 矩陣相乘 指令 矩陣相乘運算 寄存器單元 存儲器 運算單元 操作碼 相乘 神經網絡處理 存儲器存儲 處理裝置 存儲矩陣 計算開銷 運算數據 操作域 功耗 向量 解析 | ||
本發明提供一種處理裝置,包括:存儲器、寄存器單元、運算單元和控制單元;存儲器存儲向量;寄存器單元存儲矩陣相乘指令,控制單元獲取矩陣相乘指令,解析所述矩陣相乘指令得到操作碼和操作域;根據所述操作碼從存儲器中獲取參與運算數據;運算單元對參與矩陣相乘運算的數據進行矩陣相乘運算。本發明提供的技術方案具有功耗低、計算開銷小的優點。
技術領域
本發明涉及通信技術領域,具體涉及一種神經網絡處理裝置及其執行矩陣相乘指令的方法。
背景技術
現代的通用和專用處理器中,越來越多地引入計算指令(例如向量指令)進行運算。向量指令是使處理器進行向量或者矩陣運算的指令,例如向量的加減、向量的內積、矩陣乘法、矩陣卷積等。向量指令中至少有一個輸入為向量或者矩陣或運算結果是向量或矩陣。向量指令可以通過調用處理器內部的向量處理部件來進行并行計算,提高運算速度。現有的向量指令中,其操作數或結果中的向量或矩陣一般是固定規模的,例如ARM處理器中的向量擴展結構Neon中的向量指令一次可以處理長為4的32位浮點向量或者長為8的16位定點向量。所以現有的向量運算指令無法實現可變規模的向量或矩陣的運算。
另一方面,神經網絡作為一個高計算量和高訪存的算法,權值越多,計算量和訪存量都會增大。為了減小計算量和權值數量,從而降低訪存量,因此提出了稀疏神經網絡。稀疏神經網絡的定義為:在神經網絡中,值為0的權值的數目很多,并且值為非0的權值分布沒有規律,則稱該神經網絡為稀疏神經網絡。定義權值為0的元素數量與神經網絡所有權值元素數量的比值為神經網絡的稀疏度,如圖1a所示。
而現有的向量運算指令無法支持稀疏神經網絡中的稀疏向量或稀疏矩陣的運算,更無法實現可變規模的稀疏向量或稀疏矩陣的運算,并且現在的向量運算指令只能實現一種運算,例如一條向量指令只能實現乘法、加法中的一種運算,一條向量指令無法實現二種以上的運算,所以現有的向量運算的運算開銷大,能耗高。
發明內容
本發明實施例提供了一種神經網絡處理裝置及其執行矩陣相乘指令的方法,可實現單條矩陣相乘指令實現多種運算的目的,有利于減少運算開銷,降低模塊的功耗。
第一方面,本發明實施例提供一種處理裝置,該處理裝置用于根據矩陣相乘指令執行運算,所述處理裝置包括:存儲器、運算單元、控制單元和寄存器單元;
所述寄存器單元,用于存儲矩陣相乘指令;所述矩陣相乘指令包括操作碼和操作域,所述操作碼用于指示進行矩陣相乘運算;所述操作域包括所述參與矩陣相乘運算的數據的首地址和所述參與矩陣相乘運算的數據中部分數據或者全部數據的索引的地址;
所述存儲器,用于存儲參與矩陣相乘運算的數據;
所述控制單元,用于從所述寄存器單元中獲取所述矩陣相乘指令,解析所述矩陣相乘指令,以得到所述操作碼和操作域;根據所述操作域從所述存儲器中獲取所述參與矩陣相乘運算的數據和所述參與矩陣相乘運算的數據中部分數據或者全部數據的索引;并將所述參與矩陣相乘運算的數據傳輸至所述運算單元;
所述運算單元,用于對所述參與矩陣相乘運算的數據進行矩陣相乘運算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海寒武紀信息科技有限公司,未經上海寒武紀信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810912879.5/2.html,轉載請聲明來源鉆瓜專利網。





