【技術實現步驟摘要】
網算一體的芯粒間路由器及數據包聚合方法
[0001]本專利技術涉及多芯粒集成電路
,具體涉及一種網算一體的芯粒間路由器及數據包聚合方法。
技術介紹
[0002]多芯粒集成系統是把一些實現特定功能的芯粒(裸片)通過先進的封裝技術整合為特定功能的系統芯片,與傳統的單芯片集成方式相比,多芯粒集成技術在芯片性能功耗優化、成本以及商業模式多方面具有優勢和潛力。深度神經網絡(DNN)通過分割訓練數據集/模型的方式部署到多芯粒集成系統上運行。每個芯粒并行處理訓練數據中的不同子集來訓練模型的本地副本,各芯粒處理完成后匯總訓練結果,對參數進行匯總,再廣播給各個節點更新本地模型,然后進行下一輪迭代。
[0003]在上述過程中,各芯粒向同一個芯粒傳輸數據的過程稱為歸約,一個芯粒向其它所有芯粒傳輸數據的過程稱為廣播。在一個歸約過程和一個廣播過程共同組成一次all reduce。all reduce其實是一種通信過程,將不同芯粒中的數據歸約之后再把結果分發給各個芯粒。
[0004]現有技術中,即使是對于計算密集型應用,如神經網絡訓練任務,all reduce也可能成為性能瓶頸。由于多芯粒集成系統中芯粒與芯粒之間的通信帶寬受限,跨芯粒的網絡通信相較于芯粒內部通信耗時更長,深度神經網絡在參數匯總階段,如果網絡傳輸速率慢,更易造成網絡擁塞,增大網絡延遲,從而導致整體性能下降,因此網絡的通信性能成為了訓練時的性能瓶頸。
[0005]目前針對all reduce的過程優化方法主要分為軟件方法與硬件方法兩種。軟件算法有如文獻 ...
【技術保護點】
【技術特征摘要】
1.一種網算一體的芯粒間路由器,其特征在于,所述路由器包括N個輸入緩存、1個仲裁器、N個解析器、1個網內運算單元、N+1個路由計算單元、1個交叉開關和N個輸出緩存,其中,所述輸入緩存連接芯?;蛄硪粋€芯粒間路由器的輸出緩存,接收另一個芯粒間路由器的輸出緩存傳出的數據包或芯粒傳出的數據包,并將數據包緩存,等待仲裁器仲裁;其中,數據包包括源地址、目標地址、網算標志位和數據部分;所述仲裁器讀取輸入緩存中數據包的內容,對輸入緩存中的數據包進行仲裁,決定哪個輸入緩存中的數據包傳輸給解析器進行解析;所述解析器接收輸入緩存傳輸的數據包,并將數據包傳輸給路由計算單元或網內運算單元,解析器根據數據包的網算標志位判斷該數據包是否需要進行網內運算,如果數據包的網算標志位的值等于0,則表明數據包不需要進行網內運算,解析器將數據包傳輸給路由計算單元;如果數據包的網算標志位的值不為0,則表明數據包需要進行網內運算,則解析器將本數據包傳輸給網內運算單元;所述網內運算單元接收解析器傳輸的數據包,經過網內運算后將數據包傳輸給路由計算單元;所述路由計算單元從解析器或網內運算單元接收數據包,并將數據包和路由運算結果傳輸給交叉開關,路由計算單元根據數據包中的目的地址,使用路由算法計算數據包對應的輸出端口地址;對于由解析器傳入的數據包,路由計算單元采用XY路由算法,即先對數據包按列轉發,再對數據包按行轉發;對于網內運算單元傳入的數據包,路由計算單元采用歸約樹路由算法,其中,路由運算結果作為控制交叉開關狀態的電信號,指示交叉開關應該將傳入的數據包傳輸給哪一個輸出緩存;所述交叉開關從路由計算單元接收數據包和路由運算結果,該交叉開關包括N個多路復用器,每一個多路復用器與一個輸出緩存相連,根據路由運算結果,交叉開關通過多路復用器選擇一個路由計算單元傳出的數據包并將該數據包傳輸給對應的輸出緩存;所述輸出緩存接收交叉開關傳輸的數據包,根據先來先服務原則向另一個芯粒間路由器的輸入緩存或與本芯粒間路由器相連的傳輸數據包。2.根據權利要求1所述的網算一體的芯粒間路由器,其特征在于,所述數據包中源地址指示該數據包由網絡中哪一顆芯粒產生,目標地址指示該數據包由網絡中哪一顆芯粒接收,網算標志位用于區分該數據包是否需要進行網內運算,數據部分是該數據包要傳輸的具體通信內容。3.根據權利要求1所述的網算一體的芯粒間路由器,其特征在于,所述網內運算單元包括多路復用器、網算緩存、網算控制器、比較器和邏輯計算單元;網內運算單元工作過程如下:比較器對比解析器傳入的數據包的網算標志位與網算緩存中數據包的網算標志位,如果兩者不等,則網算控制器將網算緩存中的數據包傳輸給路由計算單元;如果兩者相等,則網算控制器將解析器傳入的數據包的數據部分與網算緩存中的數據包的數據部分傳輸至邏輯計算單元進行加法運算,運算結果傳輸至網算緩存,覆蓋原有的數據部分,同時,解析器傳入的數據包的源地址、目的地址和網算標志位傳輸至網算緩存。4.根據權利要求1所述的網算一體的芯粒間路由器,其特征在于,所述歸約樹路由算法工作在mesh網絡中,過程如下:T1、設mesh網絡的大小為n
×
n,共創建n2個Node集合用于表示網絡中的芯粒,所述Node
集合包括如下信息:芯粒在mesh網絡中的x坐標和y坐標、子節點數量、前驅節點,其中x坐標取值記為x,y坐標取值記為y,Node集合的位置信息指該Node集合中x坐標和y坐標取值,記作(x,y);T2、根據芯粒在mesh網絡中位置為Node集合的成員賦值,子節點數量設為0,芯粒的前驅節點設為空;T3、使用n2×
n2大小的鄰接矩陣M表示節點的連通關系,符號i和符號j表示大于等于1小于等于n之間的一個整數,對于矩陣的第(i
×
n+j)行,將第((i+1)
×
n+j)、第((i
?
1)
×
n+j)、第(i
×
n+j+1)、第(i
×
n+j
?
1)列賦值為1,表示連通,其余列賦值為0,表示不連通;T4、對于一個Node集合,鄰接矩陣M的第(i
×
n+y)行記錄了鄰接信息...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。