System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于硬件系統架構領域,尤其涉及一種基于risc-v指令集的高性能ai多核處理器架構。
技術介紹
1、隨著人工智能,大模型以及物聯網的發展,應用場景對數據處理的硬件性能的要求越來越高,通過專用加速器雖然可以解決計算速度的要求,但帶來了巨大的硬件開銷。同時,由于ai相關場景中的算法更新迭代速度飛快,而硬件從設計到量產的周期較長,僅使用專用加速器很難完全適用場景算法迭代,因而通過大規模陣列通用處理器來處理算法,不僅降低了專用加速器所帶來的硬件開銷,同時可以更好的兼容全新的場景算法。
2、在處理器架構方面,相比于傳統的arm、x86等,riscv通過模塊化指令集,使得處理器更加可定制化,同時其指令集開源,且可根據需要求擴展所需指令,因而以riscv架構為基礎的高性能處理器架構便成為了ai相關場景處理器陣列的最佳方案。
技術實現思路
1、本專利技術提供一種基于risc-v指令集的高性能ai多核處理器架構,該架構將每個cpu的向量處理單元作為ai場景中cnn的計算單元,通過增加基于卷積運算的數據搬運以及排列模塊,同時將每一個cpu擴展出向量模式下的非線性計算指令,使得整個cnn涉及到的計算可以在該架構中高速運行。
2、本專利技術為實現上述目的所采用的技術方案是:基于risc-v指令集的高性能ai多核處理器架構,包括:
3、多核處理器,為包含若干對稱的risc-v指令集的同構處理器;包括cpu0、以及其他多個cpu;
4、直接數據訪問單元
5、非線性運算單元,對應一個cpu,用于對向量處理單元vpu進行批量數據的非線性運算,并將計算結果存儲回cpu內部的dtcm中。
6、所述cpu0和其他多個cpu中的任一個cpu,包括:
7、向量處理單元vpu,用于將數據批量寫入到向量寄存器中,并對向量數據進行乘法累加的向量積計算,并將計算的結果通過加法指令與之前向量積計算結果相加并暫存到通用寄存器;將各組向量寄存器計算得到的完整的向量積運算結果批量加載到向量寄存器中,并通過非線性運算指令送入非線性運算單元,dtcm,用于實現cpu對數據的訪問;
8、通用寄存器,用于存儲卷積運算中累加過程產生的中間數據;
9、向量寄存器,用于存儲卷積計算中的向量數據以及存儲非線性計算中的卷積結果數據。
10、基于risc-v指令集的高性能ai多核處理器架構實現方法,包括以下步驟:
11、1)當多核處理器識別到cnn計算時,cpu0作為主控內核,識別待計算的數據,并根據cpu的數量對計算進行分配;
12、2)cpu0分配結束后,convdma根據分配情況對數據進行搬運;同時,其他cpu開始進行計算;
13、3)判斷cpu0分配至當前cpu的計算是否全部計算完畢;如果未完畢,返回步驟2)其他cpu開始進行計算,使未計算的數據完成數據的運算,直到分配的所有數據全部計算完畢,此時發送給cpu0一個掛起信號,等待cpu0的命令;
14、4)cpu0等待所有其他cpu發送過來的掛起信號,即當前層計算結束;
15、5)cpu0判斷當前層是否為最后一層;
16、如果不是最后一層,cpu0向各個cpu發送命令,返回步驟2)其他cpu開始進行計算,繼續進行下一層的計算;
17、如果當前層是最后一層,cpu0將各個cpu的計算結果整合,并按順序發送至片外存儲器中。
18、所述根據cpu的數量對計算進行分配,包括以下步驟:
19、在計算分配時,以cnn輸出層單通道像素點為劃分基準,將單通道像素點以塊為單位,按照cpu的數量進行劃分,cnn輸出層各個通道同一位置的像素點劃分為一組;cnn輸出層的每一個通道對應輸入層的每一組權重數據,對于權重數據不同組的同一位置要盡可能地劃分到一起;
20、當cnn輸出層單通道像素點的數據小于cpu的個數時,將cnn輸出層同一位置的不同通道平均分配給各個cpu;在實際計算時,每個cpu的一組向量寄存器用于計算一個完整的乘法累加操作,即對應cnn輸出層的一個像素點的值。
21、所述cpu0分配結束后,convdma根據分配情況對數據進行搬運,包括以下步驟:
22、對于權重數據,所有的權重數據均存儲在存儲單元中,每次進行對應層的卷積運算時,將數據通過convdma從存儲單元中讀出至buffer中,并按照分配的卷積運算形式通過convsc將數據按順序發送至dtcm中;
23、對于特征數據,第一層的特征數據存儲在存儲單元內中,對于其他層的數據,數據存儲在dtcm中,convdma根據層數選擇特征數據讀取位置。
24、所述其他cpu開始進行計算,包括以下步驟:
25、在dtcm數據寫入的同時,當前cpu識別待進行向量計算的數據,通過vpu的向量加載指令將數據批量寫入到向量寄存器中;加載結束后,通過vpu的vmac對向量數據進行乘法累加的向量積計算,并將計算的結果通過加法指令與之前向量積計算結果相加并暫存到通用寄存器中,直到一個完整的向量積運算結束;然后,通過vpu的向量加載指令將各組向量寄存器計算得到的完整的向量積運算結果批量加載到向量寄存器中,并通過非線性運算指令送入非線性運算單元,批量完成數據的非線性運算,并將計算結果存儲回dtcm中,完成當前cpu的計算
26、本專利技術具有以下有益效果及優點:
27、本專利技術通過將ai場景中涉及到的cnn計算通過該多核處理器完成,在保證cpu基本功能的前提下,利用risc-v模塊化指令集的優勢,在cpu基本指令集的基礎上,拓展出cnn計算加速所需要的指令集模塊,即緩解了cnn中大規模數據計算所帶來的算力瓶頸,又充分利用了cpu中的核心運算單元,同時減少了專用的加速器所帶來的硬件開銷冗余問題。
本文檔來自技高網...【技術保護點】
1.基于RISC-V指令集的高性能AI多核處理器架構,其特征在于,包括:
2.根據權利要求1所述的基于RISC-V指令集的高性能AI多核處理器架構,其特征在于,所述CPU0和其他多個CPU中的任一個CPU,包括:
3.基于RISC-V指令集的高性能AI多核處理器架構實現方法,其特征在于,包括以下步驟:
4.根據權利要求3所述的基于RISC-V指令集的高性能AI多核處理器架構實現方法,其特征在于,所述根據CPU的數量對計算進行分配,包括以下步驟:
5.根據權利要求3所述的基于RISC-V指令集的高性能AI多核處理器架構實現方法,其特征在于,所述CPU0分配結束后,ConvDMA根據分配情況對數據進行搬運,包括以下步驟:
6.根據權利要求3所述的基于RISC-V指令集的高性能AI多核處理器架構實現方法,其特征在于,所述其他CPU開始進行計算,包括以下步驟:
【技術特征摘要】
1.基于risc-v指令集的高性能ai多核處理器架構,其特征在于,包括:
2.根據權利要求1所述的基于risc-v指令集的高性能ai多核處理器架構,其特征在于,所述cpu0和其他多個cpu中的任一個cpu,包括:
3.基于risc-v指令集的高性能ai多核處理器架構實現方法,其特征在于,包括以下步驟:
4.根據權利要求3所述的基于risc-v指令集的高性能ai多核處理器架構...
【專利技術屬性】
技術研發人員:朱智彧,郭銳,張可,楊東,
申請(專利權)人:中國電子科技集團公司第四十七研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。