[發明專利]一種基于FPGA實現稀疏化GRU神經網絡的硬件加速器及方法有效
| 申請號: | 201611105597.1 | 申請日: | 2016-12-05 |
| 公開(公告)號: | CN107229967B | 公開(公告)日: | 2021-06-15 |
| 發明(設計)人: | 謝東亮;韓松;單羿 | 申請(專利權)人: | 賽靈思公司 |
| 主分類號: | G06N3/04 | 分類號: | G06N3/04;G06N3/063 |
| 代理公司: | 北京卓孚律師事務所 11821 | 代理人: | 任宇 |
| 地址: | 美國加利福尼亞*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 fpga 實現 稀疏 gru 神經網絡 硬件 加速器 方法 | ||
1.一種用于實現稀疏化GRU神經網絡的裝置,包括:
輸入接收單元,用于接收多個輸入向量,并將多個輸入向量分配到多個計算單元;
多個計算單元,從所述輸入接收單元獲取輸入向量,讀取神經網絡權值矩陣數據,將其解碼后與輸入向量進行矩陣運算,并將矩陣運算結果輸出至隱含層狀態計算模塊;
隱含層狀態計算模塊,從所述計算單元PE獲取矩陣運算結果,計算出隱含層狀態;
控制單元,用于進行全局控制,
其中,所述隱含層狀態計算模塊進一步包括:
數據組合單元,用于接收從各個計算單元中的緩存單元輸出的矩陣運算的結果,并將其組合成一個完整的運算結果輸出至加法器;
選擇器,從數據組合單元模塊和從點乘器接收數據,選擇其中之一輸入到加法器;
Wx緩存單元,接收并存儲從數據組合單元中輸出的矩陣運算計算結果,再根據控制單元的指令將相應運算結果輸出至加法器進行計算;
加法器,針對分配到所述多個計算單元的各個輸入向量,完成GRU神經網絡算法中的向量累加操作;
函數單元,與所述加法器連接,用于實現激活函數;
點乘器,從數據組合單元和函數單元接收數據,進行點乘運算,并將運算結果輸出至選擇器。
2.根據權利要求1所述的裝置,所述每個計算單元進一步包括:
稀疏矩陣讀取單元,用于讀取所述神經網絡的權重矩陣W,其中所述權重矩陣W被用于表示所述神經網絡中的權重;
運算單元,用于執行所述神經網絡的乘法運算和加法運算;
運算緩存單元,用于存儲從所述運算單元中輸出的矩陣運算的中間結果以及最終計算結果,并將矩陣運算中間結果輸出至運算單元,并且將矩陣運算最終計算結果輸出至數據組合單元。
3.根據權利要求1或2所述的裝置,輸入接收單元還包括:
多個先進先出緩存單元,各個先進先出緩存單元與各個計算單元相對應。
4.根據權利要求2所述的裝置,其中所述稀疏矩陣讀取單元包括:
位置單元,用于讀取存儲稀疏權重矩陣W中的各個非零權重值的位置信息;
解碼單元,用于編碼權重矩陣進行解碼,以獲得稀疏矩陣中的非零權重值。
5.根據權利要求2所述的裝置,其中所述運算單元包括:
乘法器,其中所述乘法器讀取輸入向量和權重值以進行對應的乘法計算;
加法器,對所述乘法運算的結果進行加法計算。
6.根據權利要求2所述的裝置,所述運算緩存單元還包括:
第一輸出緩沖器和第二輸出緩沖器,所述第一、第二輸出緩沖器交替地接收并輸出各個計算結果,其中在一個輸出緩沖器接收當前計算結果時,另一個輸出緩沖器輸出前一個計算結果。
7.根據權利要求1或2所述的裝置,還包括:
緩存單元,接收并存儲函數單元輸出的結果,并將其輸出至點乘加單元,用于計算隱含層狀態;
Zt緩存單元,接收并存儲函數單元輸出的結果,并將其輸出至點乘加單元,用于計算隱含層狀態;
點乘加單元,從緩存單元,Zt緩存單元以及向量緩存單元讀取向量進行點乘及加法運算,計算出隱含層狀態;
向量緩存單元,用于存儲各個隱含層狀態的計算結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于賽靈思公司,未經賽靈思公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611105597.1/1.html,轉載請聲明來源鉆瓜專利網。





