System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數字信號處理,尤其涉及一種加速單元及片上系統。
技術介紹
1、近年來,基于transformer(變換器)的大型語言模型在解碼階段主要依賴矩陣和向量乘法操作來生成單詞輸出,這導致對話任務需執行大量此類運算。在處理大規模數據的任務中,矩陣和向量乘法涉及龐大輸入數據,無法在計算中重復使用,使其成為數據密集型應用。因此,優化存儲帶寬的利用至關重要。此外,設計專用加速單元能有效提升計算效率。
2、相關技術中,fpga(field-programmablegatearray,現場可編程門陣列)因其可編程性常被用于加速矩陣和向量的乘法。然而,在fpga系統中,如何同時最大化存儲帶寬和dsp(digitalsignalprocessor,數字信號處理器)資源使用效率,同時降低功耗,是設計的關鍵挑戰。此外,批量處理多個向量是常見需求,而dsp倍頻技術能提升計算性能以滿足這一需求。
3、另外,對于不同數據類型的乘累加計算,如同時支持int8(8位整型)和int4(4位整型),進一步增加了設計的復雜性。因此,在定制硬件解決方案時,需要綜合考慮存儲帶寬、dsp資源、功耗和計算性能等多個因素,以優化大型語言模型中解碼階段的矩陣和向量的乘法操作。
4、但是,相關技術中的fpga矩陣計算加速系統在設計數據流控制時較為復雜,涉及多層次的數據傳輸與存儲緩沖機制,導致數據傳輸能效不盡如人意。
5、盡管在最大化fpga訪存帶寬利用率的條件下,相關技術能夠實現片上dsp單元的2倍頻操作,然而對于混合精度計算,
技術實現思路
1、本申請提供一種加速單元及片上系統,解決了現有技術中,數據流控制較為復雜,計算系統包含多個層次的數據傳輸和存儲緩沖,數據傳輸能效較低,并且不能很好地支持混合精度如int8、int4等數據類型的計算的問題。
2、為達到上述目的,本申請采用如下技術方案:
3、第一方面,提供一種加速單元,其特征在于,所述加速單元包括:
4、存儲器,用于存儲矩陣數據;
5、乘加模塊,每個乘加模塊均包括至少兩個乘加單元和一個兩級累加器,用于完成矩陣和向量的乘加運算;
6、控制器,用于將所述矩陣數據按照所述矩陣的列順序依次從所述存儲器加載到所述乘加模塊中的乘加單元;
7、數據輸出單元,用于輸出矩陣和向量乘加運算結果。
8、可選的,將所述矩陣中同一列數據中的元素按照順序依次輸入到所述一個乘加模塊中同一列的不同乘加單元。
9、可選的,不同乘加模塊的乘法器的輸入端存儲的向量數據不同。
10、可選的,所述矩陣中同一列數據的不同行延遲不同的周期后輸入到對應的所述乘加單元中;所述不同的延遲周期根據所述矩陣和向量的乘加運算延遲來確定。
11、可選的,所述多個加速單元級聯為一組,一組內的一個所述加速單元的乘加運算結果作為另外一個所述加速單元的輸入。
12、可選的,所述一組加速單元的最終乘加運算結果輸入到累加器。
13、可選的,所述乘加單元包括至少兩個數字信號處理單元。
14、所述至少兩個數字信號處理單元中的每個包括:第一寄存器、第三寄存器和第四寄存器,用于存儲向量數據;
15、其中,所述第一寄存器連接到第三寄存器和第四寄存器;
16、矩陣數據寄存器和第二寄存器,用于保存從矩陣的存儲器中讀取的矩陣數據;
17、所述至少兩個數字信號處理單元的矩陣數據寄存器相互連接。
18、可選的,在所述至少兩個數字信號處理單元中的一個中,所述第三寄存器和所述第四寄存器存儲不同的向量數據;
19、在一個時鐘周期內計算第三寄存器中的向量數據與所述第二寄存器中的所述矩陣數據的乘加運算;
20、在下一個時鐘周期內計算所述第四寄存器中的向量數據與第二寄存器中的所述矩陣數據的乘加運算。
21、可選的,所述至少兩個數字信號處理單元中的矩陣數據相同,其中,第一數字信號處理單元的矩陣數據經過延遲后進入到第二數字信號處理單元。
22、可選的,所述至少兩個數字信號處理單元中的矩陣數據不同,其中,第一數字信號處理單元的矩陣數據為一列數據中的低位數據,第二數字信號處理單元的矩陣數據為所述一列數據中的高位數據;
23、所述第一數字信號處理單元的第一寄存器與所述第二數字信號處理單元的第一寄存器中存儲的為同一個向量數據的不同部分數據。
24、第二方面,提供一種片上系統,所述片上系統包括如第一方面任一所述的加速單元,用于執行矩陣與向量的乘加運算。
25、本申請實施例提供的一種加速單元,通過加載一次矩陣數據可以完成4組向量的計算,提高了系統批處理的計算的效率,充分利用了乘加單元的計算位寬,降低了乘加單元輸入端口的硬件連線開銷;通過兩列乘加單元構成一組,可以同時處理一個int8的矩陣數據與2個向量的乘加,或者復用數據通路,處理兩個int4矩陣數據與1個向量的乘加計算,減少fpga系統的布線開銷,提升系統計算效率;并且通過兩級累加結構,使得系統可以支持不同規模、不同批處理數量的矩陣向量乘法計算。
本文檔來自技高網...【技術保護點】
1.一種加速單元,其特征在于,所述加速單元包括:
2.根據權利要求1所述的加速單元,其特征在于,將所述矩陣中同一列數據中的元素按照順序依次輸入到所述一個乘加模塊中同一列的不同乘加單元。
3.根據權利要求1或2所述的加速單元,其特征在于,不同乘加模塊的乘法器的輸入端存儲的向量數據不同。
4.根據權利要求1或2所述的加速單元,其特征在于,所述矩陣中同一列數據的不同行延遲不同周期后輸入到對應的所述乘加單元中;所述不同的延遲周期根據所述矩陣和向量的乘加運算延遲來確定。
5.根據權利要求1或2所述的加速單元,其特征在于,所述多個加速單元級聯為一組,一組內的一個所述加速單元的乘加運算結果作為另外一個所述加速單元的輸入;
6.根據權利要求1或2所述的加速單元,其特征在于,所述乘加單元包括至少兩個數字信號處理單元;
7.根據權利要求6所述的加速單元,其特征在于,在所述至少兩個數字信號處理單元中的一個中,所述第三寄存器和所述第四寄存器存儲不同的向量數據;
8.根據權利要求6所述的加速單元,其特征在于,所述至少兩個數
9.根據權利要求6所述的加速單元,其特征在于,所述至少兩個數字信號處理單元中的矩陣數據不同,其中,第一數字信號處理單元的矩陣數據為一列數據中的低位數據,第二數字信號處理單元的矩陣數據為所述一列數據中的高位數據;
10.一種片上系統,其特征在于,所述片上系統包括如權利要求1-9任一所述的加速單元,用于執行矩陣與向量的乘加運算。
...【技術特征摘要】
1.一種加速單元,其特征在于,所述加速單元包括:
2.根據權利要求1所述的加速單元,其特征在于,將所述矩陣中同一列數據中的元素按照順序依次輸入到所述一個乘加模塊中同一列的不同乘加單元。
3.根據權利要求1或2所述的加速單元,其特征在于,不同乘加模塊的乘法器的輸入端存儲的向量數據不同。
4.根據權利要求1或2所述的加速單元,其特征在于,所述矩陣中同一列數據的不同行延遲不同周期后輸入到對應的所述乘加單元中;所述不同的延遲周期根據所述矩陣和向量的乘加運算延遲來確定。
5.根據權利要求1或2所述的加速單元,其特征在于,所述多個加速單元級聯為一組,一組內的一個所述加速單元的乘加運算結果作為另外一個所述加速單元的輸入;
6.根據權利要求1或2所述的加速單元,其特征在于,...
【專利技術屬性】
技術研發人員:請求不公布姓名,請求不公布姓名,請求不公布姓名,請求不公布姓名,
申請(專利權)人:北京無問芯穹科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。