[發明專利]一種向量運算裝置及運算方法在審
| 申請號: | 202010317170.8 | 申請日: | 2016-01-20 |
| 公開(公告)號: | CN111580863A | 公開(公告)日: | 2020-08-25 |
| 發明(設計)人: | 陳天石;張瀟;劉少禮;陳云霽 | 申請(專利權)人: | 中科寒武紀科技股份有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F17/16 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100191 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 向量 運算 裝置 方法 | ||
本披露提供了一種向量運算裝置和計算方法,其中向量運算裝置包括存儲單元和向量運算單元,存儲單元中存儲有向量,向量運算單元根據向量運算指令獲取向量地址,然后,根據該向量地址在存儲單元中獲取相應的向量,接著,根據獲取的向量進行向量運算,得到向量運算結果。本披露將參與計算的向量數據暫存在高速暫存存儲器上,使得向量運算過程中可以更加靈活有效地支持不同寬度的數據,提升包含大量向量計算任務的執行性能。
技術領域
本披露涉及一種向量運算裝置和方法,用于根據向量運算指令執行向量運算,能夠很好地解決當前計算機領域越來越多的算法包含大量向量運算的問題。
背景技術
當前計算機領域有越來越多的算法涉及到向量運算,以人工神經網絡算法為例,多種神經網絡算法中都含有大量的向量運算。在神經網絡中,輸出神經元的運算表達式為y=f(wx+b),其中w是矩陣,x、b是向量,計算輸出向量y的過程為矩陣w與向量x相乘,加上向量b,然后對得到的向量進行激活函數運算(即對向量中的每個元素進行激活函數運算)。因此,向量運算成為目前各種計算裝置在設計之初都需要考慮的一個重要問題。
在現有技術中,一種進行向量運算的已知方案是使用通用處理器,該方法通過通用寄存器堆和通用功能部件來執行通用指令,從而執行向量運算。然而,該方法的缺點之一是單個通用處理器多用于標量計算,在進行向量運算時運算性能較低。而使用多個通用處理器并行執行時,通用處理器之間的相互通訊又有可能成為性能瓶頸。
在另一種現有技術中,使用圖形處理器(GPU)來進行向量計算,其中,通過使用通用寄存器堆和通用流處理單元執行通用SIMD指令來進行向量運算。然而,上述方案中,GPU片上緩存太小,在進行大規模向量運算時需要不斷進行片外數據搬運,片外帶寬成為了主要性能瓶頸。
在另一種現有技術中,使用專門定制的向量運算裝置來進行向量計算,其中,使用定制的寄存器堆和定制的處理單元進行向量運算。然而,目前已有的專用向量運算裝置受限于寄存器堆,不能夠靈活地支持不同長度的向量運算。
發明內容
(一)要解決的技術問題
本披露的目的在于,提供一種向量運算裝置,解決現有技術中存在的受限于片間通訊、片上緩存不夠、支持的向量長度不夠靈活等問題。
(二)技術方案
本披露提供一種向量運算裝置,用于根據向量運算指令執行向量運算,包括:
存儲單元,用于存儲向量;
向量運算單元,用于獲取向量運算指令,根據向量運算指令在所述寄存器單元中獲取向量地址,然后,根據該向量地址在存儲單元中獲取相應的向量,接著,根據獲取的向量進行向量運算,得到向量運算結果。
進一步的,還包括:寄存器單元,用于存儲向量地址,其中,所述向量地址為向量在所述存儲單元中存儲的地址。
進一步的,還包括:指令緩存單元,用于存儲待執行的向量運算指令。
進一步的,還包括:指令處理單元,用于從所述指令緩存單元獲取向量運算指令,并對該向量運算指令進行處理后,提供給所述向量運算單元。
進一步的,所述指令處理單元包括:取指模塊,用于從所述指令緩存單元中獲取向量運算指令;譯碼模塊,用于對獲取的向量運算指令進行譯碼;指令隊列,用于對譯碼后的向量運算指令進行順序存儲。
進一步的,還包括:依賴關系處理單元,用于在所述向量運算單元獲取向量運算指令前,判斷該向量運算指令與前一向量運算指令是否訪問相同的向量,若是,則等待前一向量運算指令執行完畢后,將該向量運算指令提供給所述向量運算單元;否則,直接將該向量運算指令提供給所述向量運算單元。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中科寒武紀科技股份有限公司,未經中科寒武紀科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010317170.8/2.html,轉載請聲明來源鉆瓜專利網。





