TWI902585B - 三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法 - Google Patents
三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法Info
- Publication number
- TWI902585B TWI902585B TW113150647A TW113150647A TWI902585B TW I902585 B TWI902585 B TW I902585B TW 113150647 A TW113150647 A TW 113150647A TW 113150647 A TW113150647 A TW 113150647A TW I902585 B TWI902585 B TW I902585B
- Authority
- TW
- Taiwan
- Prior art keywords
- computation
- target
- units
- task
- node
- Prior art date
Links
Landscapes
- Multi Processors (AREA)
Abstract
本公開提出一種三維粗粒度可重構陣列架構系統及其控制方法。該系統包含多個第一陣列及多個第二陣列,其中每個第一陣列包含多個第一運算單元、多個第一儲存單元及多個第一切換器,每個第二陣列包含多個第二運算單元、多個第二儲存單元及多個第二切換器。該系統採用交錯堆疊方式排列第一陣列與第二陣列,並透過配置控制器動態管理各單元的啟用及禁用狀態,以執行神經網路模型的運算任務。本公開的技術方案可顯著提升資料傳輸效率、增加資源使用靈活性,並實現硬體資源的最佳化配置。
Description
本發明涉及一種處理器硬體架構,尤其是一種基於粗粒度可重構陣列(Coarse-Grained Reconfigurable Array, CGRA)處理器的三維硬體架構系統及其控制方法。
隨著人工智慧技術的快速發展,尤其是在機器學習和深度學習領域,對處理器硬體架構提出了更高的性能和彈性要求。傳統的處理器架構,如中央處理器(CPU)和圖形處理器(GPU),在面對大規模並行計算和頻繁的數據訪問時,可能會遇到性能瓶頸和能耗問題。
為了解決上述問題,研究人員提出了多種領域專用集成電路(Domain-Specific Architecture, DSA)和可重構硬體架構。其中,粗粒度可重構架構(Coarse-Grained Reconfigurable Architecture,CGRA)處理器因其靈活性和能效優勢而受到廣泛關注。CGRA通常由大量的處理單元(Processing Element, PE)和互連網絡組成,可根據不同應用的需求動態調整硬體配置,實現高效的並行計算。
然而,當前的CGRA架構大多採用二維網格(2D Mesh)拓撲,處理單元之間的互連方式較為簡單,主要與相鄰的上下左右四個方向進行數據傳輸。這種架構在處理某些具有複雜數據依賴關係的應用時,可能面臨數據訪問效率低下、處理單元利用率不高等問題。
為解決上述技術問題,本公開提出一種三維粗粒度可重構陣列架構系統及其控制方法。本公開的架構包含交錯堆疊的運算陣列與儲存陣列,透過垂直方向的互連以及靈活的資源配置機制,實現更有效率的神經網路運算。
本公開的一或多個實施例提供一種三維粗粒度可重構陣列架構系統,用於實現一神經網路模型。所述三維粗粒度可重構陣列架構系統包括:多個第一陣列,其中每個第一陣列包括:多個第一運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務;多個第一儲存單元,用以儲存對應的神經網路運算任務的資料,其中每個第一陣列的所述多個第一運算單元的數量多於所述多個第一儲存單元的數量;及多個第一切換器,用以執行對應的路由任務,其中每個第一切換器彼此不直接連接,其中所述多個第一運算單元、多個第一儲存單元以及所述多個第一切換器分布在所述第一陣列的陣列平面上;多個第二陣列,其中每個第二陣列包括:多個第二運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務;多個第二儲存單元,用以儲存對應的神經網路運算任務的資料,其中所述多個第二儲存單元的數量多於所述多個第二運算單元的數量;及多個第二切換器,用以執行對應的路由任務,其中每個第二切換器彼此不直接連接,其中所述多個第二運算單元、多個第二儲存單元以及所述多個第二切換器分布在所述第二陣列的陣列平面上;一輸入/輸出介面,用以接收輸入資料和傳送處理結果;一配置控制器,電性連接至所述多個第一陣列及所述多個第二陣列,其中每個第一陣列及每個第二陣列交錯地堆疊,其中與每個第一陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第二陣列,其中與每個第二陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第一陣列。所述配置控制器用以:監視所述多個第一陣列及所述多個第二陣列各自的工作狀態;根據對應所述神經網路模型的運算圖資訊,動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的啟用及禁用,以執行所述神經網路模型的多個神經網路運算任務。
本公開的一或多個實施例提供一種三維粗粒度可重構陣列架構系統的控制方法,其中所述三維粗粒度可重構陣列架構系統用於實現一神經網路模型。所述方法包括:經由一配置控制器,監視三維粗粒度可重構陣列架構系統的多個第一陣列及多個第二陣列各自的工作狀態,其中每個第一陣列包括:多個第一運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務;多個第一儲存單元,用以儲存對應的神經網路運算任務的資料,其中每個第一陣列的所述多個第一運算單元的數量多於所述多個第一儲存單元的數量;及多個第一切換器,用以執行對應的路由任務,其中每個第一切換器彼此不直接連接,其中所述多個第一運算單元、多個第一儲存單元以及所述多個第一切換器分布在所述第一陣列的陣列平面上;其中每個第二陣列包括:多個第二運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務;多個第二儲存單元,用以儲存對應的神經網路運算任務的資料,其中所述多個第二儲存單元的數量多於所述多個第二運算單元的數量;及多個第二切換器,用以執行對應的路由任務,其中每個第二切換器彼此不直接連接,其中所述多個第二運算單元、多個第二儲存單元以及所述多個第二切換器分布在所述第二陣列的陣列平面上,其中所述配置控制器電性連接至所述多個第一陣列及所述多個第二陣列,其中每個第一陣列及每個第二陣列交錯地堆疊,其中與每個第一陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第二陣列,其中與每個第二陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第一陣列;以及根據對應所述神經網路模型的運算圖資訊,藉由所述配置控制器動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的啟用及禁用,以執行所述神經網路模型的多個神經網路運算任務。
基於上述,本公開提供的三維粗粒度可重構陣列架構系統及其控制方法,可以達成以下技術效果:(1)透過三維堆疊的異質陣列架構,顯著縮短資料傳輸路徑,提升資料傳輸效率;(2)透過運算陣列與儲存陣列的功能區隔以及交錯堆疊配置,使系統能夠根據神經網路模型的運算特性,更有效率地分配運算資源;(3)透過配置控制器的動態管理機制,實現運算單元、儲存單元及切換器的最佳化配置,有效提升硬體資源使用率。
爲讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
現在將詳細參照本公開/揭露的實施例,在附圖中示出所述實施例的範例。盡可能地在圖式及說明中使用相同的參考編號來指代相同的元件或類似的元件。
應理解的是,本公開中所使用的術語“系統”和“控制器”常常可互換地使用。本公開中的術語“和/或”僅為描述相關聯物件的關聯關係,這意味著可能存在四種關係,例如A和/或B,這可意味著四種情形:A、B、A和B、A或B。另外,本公開中的字元“/”大體上指示相關聯物件處於“或”關係。
圖1為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的方塊示意圖。
參照圖1,在一實施例中,三維粗粒度可重構陣列架構系統100包括:輸入/輸出介面130、配置控制器110、多個第一陣列121及多個第二陣列122。所述第一陣列121與所述第二陣列122以交錯方式堆疊,以形成三維結構。
在一實施例中,本發明的三維粗粒度可重構陣列架構系統100可以實作為以下具體的半導體裝置:可重構式神經網路處理器(Reconfigurable Neural Network Processor),此處理器特別適用於邊緣運算設備(Edge Computing Devices),可動態調整其內部運算資源以處理不同規模的神經網路模型;智慧型影像處理器(Intelligent Image Processor),用於即時影像辨識與分析的場景,其可依據處理任務的需求,彈性配置運算單元與儲存單元的使用方式;人工智慧加速器(AI Accelerator),專門針對深度學習推論(Deep Learning Inference)任務進行最佳化,透過異質陣列的交錯堆疊設計,大幅提升資料存取效率;可程式化張量處理器(Programmable Tensor Processor),支援多種矩陣運算與向量運算,適合用於機器學習模型的訓練與推論階段;以及嵌入式系統協處理器(Embedded System Co-processor),作為主處理器的運算輔助單元,可針對特定應用場景進行客製化配置。
在一實施例中,本發明的三維粗粒度可重構陣列架構系統100可以被整合至以下電子裝置,例如:1.) 智慧手機及穿戴式裝置。由於需支援多樣化應用程序,如遊戲、攝影、AI 推論(影像增強、語音助理等)以及5G通訊。此類裝置可加入可重構陣列架構系統之加速晶片以針對特定工作負載(如影像處理、AI 推論)進行硬體加速,同時保持低功耗。2.) 無人機。無人載具需要進行複雜度較高之任務,如導航控制、物體追蹤、環境感知和影像處理,此類運算需求會因任務類型而變化。可重構陣列架構系統可以根據任務需求重構其計算架構,提供所需的運算能力並降低能耗。
3.)工業級自動化控制器(Industrial Automation Controllers),用於即時處理大量感測器資料並執行複雜的控制演算法;4.) 資料中心伺服器(Data Center Servers),特別是針對大規模神經網路模型訓練與推論的運算伺服器;5.) 醫療影像診斷設備(Medical Imaging Diagnostic Equipment),用於處理高解析度醫療影像的即時分析與診斷;以及6.) 車用智慧駕駛輔助系統(Advanced Driver-Assistance Systems, ADAS),整合於車載電腦中,用於處理來自多個感測器的即時資料分析與決策。應當注意的是,上述的電子裝置僅為示例性質,本公開不限於此,任何可應用粗粒度可重構陣列架構系統100的電子裝置都可適用本公開。
在本實施例中,輸入/輸出介面130用以接收外部輸入資料及輸出運算結果。所述輸入資料可以包括神經網路模型的參數、運算指令、待處理的資料或是相關於神經網路模型的任何資料。所述運算結果可以包括神經網路運算的單一節點或是整體神經網路的最終輸出結果。
配置控制器110電性連接至所述輸入/輸出介面130、所述多個第一陣列121及所述多個第二陣列122。所述配置控制器110負責監視所述多個第一陣列121及所述多個第二陣列122各自的工作狀態,並根據對應神經網路模型的運算圖資訊,動態管理每個第一陣列121、每個第二陣列中的各組件的啟用及禁用狀態。
在一實施例中(可參見圖4A-4D),每個第一陣列121包括多個第一運算單元、多個第一儲存單元及多個第一切換器,其中所述多個第一運算單元、多個第一儲存單元以及所述多個第一切換器分布在所述第一陣列的陣列平面上。具體來說,所述多個第一運算單元用以執行對應的神經網路模型的節點的神經網路運算任務,所述多個第一儲存單元用以儲存對應的神經網路運算任務的資料。值得注意的是,在本實施例中,每個第一陣列121的所述多個第一運算單元的數量多於所述多個第一儲存單元的數量,此設計特別適合處理運算密集的任務。另外,所述多個第一切換器用以執行對應的路由任務,其中每個第一切換器彼此不直接連接。
相應地,在本實施例中(可參見圖4A-4D),每個第二陣列122包括多個第二運算單元、多個第二儲存單元及多個第二切換器,其中所述多個第二運算單元、多個第二儲存單元以及所述多個第二切換器分布在所述第二陣列的陣列平面上。具體來說,所述多個第二運算單元用以執行對應的神經網路模型的節點的神經網路運算任務,所述多個第二儲存單元用以儲存對應的神經網路運算任務的資料。不同於第一陣列121,在第二陣列122中,所述多個第二儲存單元的數量多於所述多個第二運算單元的數量,此設計特別適合處理需要大量資料儲存的任務。類似於第一陣列121,所述多個第二切換器用以執行對應的路由任務,其中每個第二切換器彼此不直接連接,以最佳化資料傳輸效率。換句話說,在本實施例中,第一陣列也可稱為運算強化陣列,其節點運算的總能力較強;第二陣列也可稱為儲存強化陣列,其儲存資料的總能力較強。
在一實施例中,所述第一陣列121和第二陣列122之間採用垂直互連的資料傳輸機制。具體來說,每個第一陣列的第一切換器垂直連接到相鄰的第二陣列的第二運算單元或第二儲存單元,而每個第二陣列的第二切換器則垂直連接到相鄰的第一陣列的第一運算單元或第一儲存單元。
在本實施例中,在每個第一陣列121中,每個第一運算單元與每個第一儲存單元彼此不直接連接。相反地,每個第一運算單元與每個第一儲存單元之間至少要透過一個中介的第一切換器連接。
同理,在每個第二陣列122中,每個第二運算單元與每個第二儲存單元彼此也不直接連接。每個第二運算單元與每個第二儲存單元之間同樣至少要透過一個中介的第二切換器連接。這種設計再次強化了陣列內部的資料傳輸管理能力,使得資料傳輸路徑更加多樣化。
在垂直方向上,本公開引入了跨層用的垂直連接機制。每個第一陣列121的第一切換器垂直連接到相鄰的第二陣列122的第二運算單元或第二儲存單元。這種垂直連接允許第一陣列121的第一資料經由所述第一切換器直接傳送到相鄰第二陣列122的第二運算單元或第二儲存單元,實現較佳效率的跨層傳輸。
相似地,每個第二陣列122的第二切換器垂直連接到相鄰的第一陣列121的第一儲存單元或第一運算單元。通過這種垂直連接,第二陣列122的第二資料可以經由所述第二切換器直接傳送到相鄰第一陣列121的第一運算單元或第一儲存單元,完成跨層的資料交互。
值得一提的是,在本實施例中,跨層資料傳輸過程中始終由切換器作為發起端,將資料主動送至相鄰層的運算單元或儲存單元。
在一實施例中,所述運算單元(包含第一運算單元及第二運算單元)可採用可重構運算單元(Reconfigurable Processing Unit)來實現。具體來說,該運算單元能夠根據不同的運算需求動態調整其運算模式,例如在執行矩陣乘法運算時,可重構運算單元可配置為脈動陣列(Systolic Array)架構;在執行卷積運算時,則可重構為二維運算陣列架構。透過此種彈性配置方式,運算單元特別適合處理深度學習中的不同類型運算需求,包括高維度矩陣乘法、卷積運算及向量運算等任務。
在本實施例中,所述儲存單元(包含第一儲存單元及第二儲存單元)可採用靜態隨機存取記憶體(Static Random-Access Memory)實現。該記憶體具有高速讀寫特性,適合儲存神經網路運算任務的資料,包括權重參數、運算中間結果及運算輸入資料。進一步來說,儲存單元可依據資料存取模式劃分為多個記憶體組(Memory Bank),每個記憶體組可獨立進行讀寫操作,此設計能有效提升資料存取並行度。
在另一實施例中,所述切換器(包含第一切換器及第二切換器)採用分散式路由架構,包含多個路由節點(Routing Node)。每個路由節點具備資料緩衝功能,可暫存待轉發的資料封包,並根據目的地資訊選擇最佳傳輸路徑。透過此種分散式路由架構,系統可實現更靈活的資料傳輸調度,減少資料傳輸衝突。切換器亦可實作多層交叉開關(Multi-layer Crossbar)架構,能夠同時支援多個資料流的傳輸需求。該架構包含多個交叉開關層,每層負責特定方向的資料傳輸。透過合理配置交叉開關的連接狀態,系統可建立多條獨立的資料傳輸通道,提高資料傳輸的並行程度。
在一實施例中,所述切換器可根據配置控制器110所設定的路由任務來處理資料的傳輸。具體來說,所述路由任務包含:目的地運算單元或儲存單元的識別資訊、資料傳輸的優先等級資訊、資料封包的大小資訊,以及資料傳輸路徑的中繼點資訊。所述切換器根據這些路由資訊,建立對應的資料傳輸通道,並確保資料能夠按照指定的傳輸路徑完成傳送。
圖2為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的配置控制器的方塊示意圖。
參照圖2,在本實施例中,配置控制器110包括工作負載配置儲存電路單元112及任務控制處理器111。
在本實施例中,配置控制器110通過以下機制來控制資料在各組件間的傳輸。首先,配置控制器110根據工作負載配置儲存電路單元112中儲存的運算圖資訊,判斷各節點間的資料相依性。例如,配置控制器110的任務控制處理器111可建立一個資料傳輸規劃表,該規劃表包含:資料傳輸的時序安排、傳輸路徑的切換器配置序列,以及各個儲存單元的存取時序。
具體來說,當需要執行特定節點的運算任務時,配置控制器110首先向對應的切換器發送路由配置指令,設定切換器的路由狀態。這些路由狀態決定了資料封包在切換器網路中的轉發方向。同時,配置控制器110也會向相關的儲存單元發送讀取或寫入指令,控制資料的存取時序。當資料傳輸路徑建立完成後,配置控制器110隨即啟動對應的運算單元,使其開始執行指定的運算任務。
在資料傳輸過程中,配置控制器110持續監控各個切換器的工作狀態,包括當前的資料傳輸進度以及是否發生資料傳輸衝突。若檢測到潛在的傳輸衝突,配置控制器110可即時調整資料傳輸的優先順序,或重新規劃傳輸路徑,以確保資料傳輸的可靠性和效率。
在一實施例中,所述運算單元與所述儲存單元除了執行其主要的運算及儲存功能外,亦被配置為具備資料轉發能力。具體而言,當運算單元或儲存單元接收到非針對自身的資料時,該單元能夠自主判斷該資料的目的地資訊,並直接將該資料傳送至下一個目標單元,而無需經由切換器進行中轉處理。舉例來說,運算單元或儲存單元在執行資料轉發時,會先讀取資料中所包含的目的地標記。若該目的地標記顯示該資料並非發送給自身,該單元即會根據預先由配置控制器所設定的路由資訊,選擇最適當的傳輸方向,並將該資料完整地傳送至下一個節點。在此傳輸過程中,所述運算單元或儲存單元僅負責資料的轉發,不會對資料內容進行任何形式的修改或處理。透過此種運算單元及儲存單元的直接轉發機制,系統得以建立更直接的資料傳輸路徑。
透過上述控制機制,配置控制器110能夠確保系統中的資料傳輸既符合運算任務的相依性要求,又可達到較高的組件資源利用效率。同時,該控制機制的動態調整特性也使系統能夠適應不同規模和類型的神經網路運算需求。
值得注意的是,雖然運算單元、儲存單元及切換器在第一陣列121和第二陣列122中具有相同的功能,但其在兩種陣列中的數量配置卻有所不同。在第一陣列121中,運算單元的數量多於儲存單元的數量;而在第二陣列122中,則是儲存單元的數量多於運算單元的數量。藉由此種差異化的數量配置,系統可在執行深度學習運算時實現運算效能與記憶體存取效率的最佳平衡,同時透過配置控制器110的動態管理,實現資源利用率的最佳化。
在本實施例中,所述工作負載配置儲存電路單元112用以儲存神經網路模型的運算圖資訊。
具體來說,在一實施例中,該運算圖資訊包括:(1)多個節點各自的相依性層級資訊,用以指示所述多個節點在所述神經網路模型中的執行順序。所述相依性層級資訊使相同執行層級的節點可平行執行,而不同執行層級的節點則依序執行;(2)所述多個節點之間的連接數量資訊,用以指示每個節點所連接的相鄰節點的總個數;(3)所述多個節點之間的資料傳輸量資訊,用以指示在所述資料傳輸路徑上的資料大小;以及(4)所述多個節點各自的運算量資訊,用以指示每個節點所執行的節點運算的運算量。在另一實施例中,運算圖資訊更可包括每個節點的母節點的資訊。以下會利用圖8來說明運算圖資訊的獲取細節。
在一實施例中,所述任務控制處理器111根據所述運算圖資訊,動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的啟用及禁用狀態,以執行所述神經網路模型的多個神經網路運算任務。
在一實施例中,所述任務控制處理器111首先根據所述相依性層級資訊來決定節點的執行順序,接著根據所述連接數量資訊來選擇合適的運算單元配置(使被選擇的運算單元所連接的切換器的數量匹配對應的節點的連接數量的程度),並依據所述資料傳輸量資訊來規劃資料傳輸路徑,最後考量所述運算量資訊及每個運算單元的運算能力來分配運算資源,藉此實現運算資源的最佳化配置。
在一實施例中,所述配置控制器110可以採用專用積體電路(Application-Specific Integrated Circuit, ASIC)、現場可程式邏輯閘陣列(Field-Programmable Gate Array, FPGA)或可程式邏輯裝置(Programmable Logic Device, PLD)來實現。這些實現方式具有高效能、低延遲的特性,特別適合用於即時運算資源配置的場景。
在另一實施例中,所述工作負載配置儲存電路單元112可以採用靜態隨機存取記憶體(Static Random-Access Memory, SRAM)、動態隨機存取記憶體(Dynamic Random-Access Memory, DRAM)或快閃記憶體(Flash Memory)來實現。選擇合適的記憶體類型時,需要考慮存取速度、功耗及成本等因素。
在又一實施例中,所述任務控制處理器111可以採用精簡指令集運算(Reduced Instruction Set Computing, RISC)架構或超長指令字(Very Long Instruction Word, VLIW)架構的處理器核心來實現。這些處理器架構具有指令執行效率高、功耗較低的特點,適合用於運算資源的即時調度。
在本實施例中,資料傳輸路徑可分為兩種類型:(1)同平面路徑:當空閒運算單元與前置運算單元位於同一個陣列平面時的傳輸路徑;(2)非同平面路徑:當空閒運算單元與前置運算單元位於不同陣列平面時的傳輸路徑。
系統(如,任務控制處理器111)會優先選擇組件總個數較少的傳輸路徑。具體來說,當最短的非同平面路徑所包含的組件總個數少於最短的同平面路徑所包含的組件總個數時,系統會選擇對應最短的非同平面路徑的特定空閒運算單元作為目標運算單元。也就是說,本公開的架構提供了相較於傳統的平面傳輸路徑的其他較佳的非平面傳輸路徑,以強化資料傳輸的速度,進而改善整體神經網路運算任務的效率。
在一實施例中,任務控制處理器111例如可執行以下任務調度。
任務分析階段:根據相依性層級資訊,依照每個執行層級(相依性層級)的順序來選擇要被配置的任務節點,以開始執行對應的神經網路運算任務;確保被分配給相同任務節點的運算單元可平行執行對應的節點運算;依據相依性層級資訊對多個神經網路運算任務進行排序。
資源分配階段:評估每個目標任務節點的運算量資訊及每個空閒運算單元的運算能力;判斷空閒運算單元是否足夠被配置給目標任務節點;根據運算需求以及最短傳輸路徑,選擇並啟用合適的目標運算單元。
動態調整階段:監視每個運算單元的工作狀態;當運算單元完成節點運算時,選擇最短傳輸路徑的儲存單元儲存運算結果;將完成運算的單元重置為新的空閒運算單元;持續監視並調整,直到所有任務節點都被配置完畢。在一實施例中,當運算單元從忙碌狀態轉變為空閒運算單元時,配置控制器110會根據系統當前的工作負載狀況,決定該空閒運算單元要進入的電源管理狀態。若預測近期內該運算單元可能會被重新配置使用,則讓其進入待命狀態(Standby Mode),以確保快速的切換回運作狀態;若預測較長時間內不會被使用,則可讓其進入睡眠狀態(Sleep Mode)甚至深度禁用狀態(Deep Shutdown Mode),以降低整體系統的功耗。此種動態電源管理機制可有效平衡系統的運算效能與能源效率。更詳細來說,在一實施例中,第一種狀態為待命狀態(Standby Mode),在此狀態下系統會持續供應時脈訊號與電源,並維持運算單元的基本狀態資訊,使其能夠快速切換至運作狀態,但相對具有中等程度的功耗。第二種狀態為睡眠狀態(Sleep Mode),此狀態會關閉時脈供應並降低核心電壓,僅保留必要的組態資訊,雖然具有較低的功耗,但需要較長的喚醒時間。第三種狀態為深度禁用狀態(Deep Shutdown Mode),此狀態會完全切斷電源供應並清除所有狀態資訊,可達到最低功耗,但需要最長的重啟時間,特別適用於預期長期不會使用的運算單元。配置控制器110在決定運算單元的電源狀態時,會綜合考量多個因素,包括目前的工作負載預測、系統的功耗預算、運算單元的地理位置(考慮散熱影響)以及各狀態所需的喚醒時間要求,以在效能與功耗之間取得最佳平衡。所謂的「啟用」特定運算單元可指將特定運算單元設定到忙碌/工作狀態,以執行對應的節點運算;所謂的「禁用」特定運算單元,可指將特定運算單元從忙碌/工作狀態設定為「不啟用」狀態或設定為待命、睡眠或深度禁用狀態,以節省不同程度的功耗。
資源最佳化階段:根據節點之間的連接數量資訊選擇運算單元配置;確保連接數量較多的目標運算單元具有較多的切換器連接;動態調整資料傳輸路徑以最小化傳輸延遲。
圖3A為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一交錯堆疊方式的示意圖。圖3B為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第二交錯堆疊方式的示意圖。
參照圖3A,在一實施例中,三維粗粒度可重構陣列架構系統採用第一交錯堆疊方式排列其陣列結構。在三維座標系統(X、Y、Z)中,第一陣列121(1)位於最上層,第二陣列122(1)位於其正下方,第一陣列121(2)則位於第二陣列122(1)下方。每個陣列均平行於XY平面,沿Z軸方向進行堆疊。
參照圖3B,在另一實施例中,系統採用第二交錯堆疊方式。其中,第二陣列122(1)位於最上層,第一陣列121(1)位於其下方,第二陣列122(2)則位於第一陣列121(1)的下方。此種排列方式使相鄰層之間始終維持第一陣列121與第二陣列122的交替配置。
在本實施例中,相鄰陣列之間透過垂直互連結構建立資料傳輸路徑。當系統需要在不同層級的陣列之間傳輸資料時,可直接透過垂直路徑完成資料傳送,無需經過同層陣列的多次轉發,增進了資料傳輸效率和運算時效。
這兩種交錯堆疊方式的主要差異在於最上層陣列的類型選擇。配置控制器110可根據運算任務的需求特性,選擇合適的堆疊方式來配置系統架構。
圖4A為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一陣列及第二陣列的第一佈局的示意圖。
參照圖4A,在一實施例中,三維粗粒度可重構陣列架構系統包括第一陣列121及第二陣列122,其中各單元呈現特定的排列及互連方式。
具體來說,第一陣列121採用四單元配置,包括兩個運算單元(P)、一個儲存單元(M)及一個切換器(S)。所述兩個運算單元分別位於陣列的左上角及右下角,儲存單元位於左下角,切換器位於右上角。切換器(S)與其左側的運算單元(P)及下方的運算單元(P)形成直線連接,同時與左下角的儲存單元(M)形成斜向連接。
在第二陣列122中,同樣採用四單元配置,包括一個運算單元(P)、兩個儲存單元(M)及一個切換器(S)。其中,儲存單元分別位於左上角及右下角,運算單元位於右上角,切換器位於左下角。切換器(S)與其右側的儲存單元(M)及上方的運算單元(P)形成直線連接,同時與右上角的運算單元(P)形成斜向連接。
此種佈局設計使得每個切換器(S)均與三個其他單元建立連接,形成分支結構。所述連接包括兩條直線連接及一條斜向連接,此配置使得資料傳輸路徑具有固定且可預測的特性。
圖4B為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第二佈局的示意圖。
參照圖4B,在一實施例中,三維粗粒度可重構陣列架構系統的第一陣列121及第二陣列122採用九單元的擴展式(3x3的矩陣單元再加入4個插入單元)配置結構(也可稱,奇數陣列)。
在第一陣列121中,四個運算單元(P)分別位於左上角、右上角、左下角及右下角位置。四個儲存單元(M)則分別位於上方中央、左側中央、右側中央及下方中央位置。四個切換器(S)以十字交叉方式排列於中央區域,並在中心位置設置一個運算單元(P)。4個插入單元為切換器(S),每個切換器(S)與其相鄰的兩個運算單元(P)及兩個儲存單元(M)建立連接。此種配置使每個切換器(S)均與四個相鄰單元建立連接,形成網格式拓撲結構。中央的運算單元(P)則與四個切換器(S)形成十字型連接。
第二陣列122的放置各組件的位置採用相似的配置,但各位置的組件類型與第一陣列121不同。具體來說,四個儲存單元(M)位於陣列的四個角落,四個運算單元(P)環繞中央的儲存單元(M)配置。四個切換器(S)分別位於上方中央、左側中央、右側中央及下方中央位置。每個切換器(S)與其相鄰的兩個運算單元(P)及兩個儲存單元(M)形成連接。中央的儲存單元(M)則與四個運算單元(P)建立十字型連接。
在一實施例中,三維粗粒度可重構陣列架構系統採用奇數陣列配置,其中相鄰兩層分別為儲存陣列(如,第二陣列)及運算陣列(如,第一陣列)。每個陣列中的切換器(S)、運算單元(P)及儲存單元(M)依據特定規則進行互連。
在本實施例中,每個切換器(S)至少與一個運算單元(P)及一個儲存單元(M)建立連接。具體來說,該切換器(S)所連接的運算單元(P)及儲存單元(M)採用交錯方式進行配置,藉此形成均勻分布的連接架構。
參照儲存陣列的設計特徵,每個切換器(S)所連接的儲存單元(M)數量大於運算單元(P)的數量。此外,經由下列規則,儲存陣列的佈局可轉換為資料陣列:將切換器(S)改為儲存單元(M)、將儲存單元(M)改為運算單元(P)、將運算單元(P)改為切換器(S)。
相對地,在運算陣列中,每個切換器(S)所連接的儲存單元(M)數量不超過運算單元(P)的數量。此種連接配置使得運算陣列特別適合執行運算密集的任務,而儲存陣列則適合處理需要大量資料儲存的場景。
圖4C為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第三佈局的示意圖。
參照圖4C,在一實施例中,三維粗粒度可重構陣列架構系統的第一陣列121及第二陣列122採用中心擴展式架構配置。該配置基於4x4矩陣陣列結構,並在中心位置增設額外的組件。
第一陣列121的配置為:
矩陣邊界配置:四個運算單元(P)分別位於左側及右側的中間位置,四個儲存單元(M)位於四個角落,四個切換器(S)位於上、下、左、右四個中心點位置。
中心配置:一個額外的運算單元(P)位於陣列的正中心位置。
連接架構:每個切換器(S)分別與兩個運算單元(P)及一個儲存單元(M)建立連接,而中心運算單元(P)則與四個切換器(S)形成十字型連接。
第二陣列122的配置為:
矩陣邊界配置:四個儲存單元(M)分別位於上方及下方的中間位置,四個切換器(S)位於四個角落,四個運算單元(P)位於上、下、左、右四個中心點位置。
中心配置:一個額外的切換器(S)位於陣列的正中心位置。
連接架構:每個角落的切換器(S)分別與一個運算單元(P)及兩個儲存單元(M)建立連接,而中心切換器(S)則與四個運算單元(P)形成十字型連接。
此種配置將原有4x4矩陣架構的邊界連接與中心輻射狀連接相結合,在保持規則的連接結構的同時,提供了更多的資料傳輸路徑選擇。應注意的是,在一實施例中,由於第一陣列的中心運算單元所連接的切換器的數量最多,可將該中心運算單元的運算能力進行增強,例如N倍於其他運算單元的運算能力(N大於1),以強化消化神經網路運算任務的效率。
此外,這個佈局的其他特徵例如為:
第一陣列的外圍位置的兩個運算單元會相鄰,但不互連;第二陣列的外圍位置的兩個儲存單元會相鄰,但不互連。
圖4D為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第四佈局的示意圖。
參照圖4D,在一實施例中,三維粗粒度可重構陣列架構系統的第一陣列121及第二陣列122採用延伸式佈局配置,該配置係基於圖4A所示之基本單元佈局(第一佈局)進行延伸擴展。
第一陣列121的佈局配置包括:四組切換器(S)依矩陣方式排列,形成2x2的切換網路架構。每組切換網路架構(為2x2的單元構成)的中央的切換器(S)連接8個周邊單元,包括4個運算單元(P)及4個儲存單元(M)。具體來說,運算單元(P)與切換器(S)之間採用直線連接,而儲存單元(M)與切換器(S)之間採用斜向連接。相鄰的切換器(S)之間通過運算單元(P)建立連接,形成水平及垂直方向的資料傳輸通道。
第二陣列122實作類似的延伸式佈局,其佈局配置包括:
中央配置一個儲存單元(M),周圍環繞四個切換器(S)。每個切換器(S)與3個運算單元(P)建立直線連接,同時與兩個儲存單元(M)建立斜向連接。此外,在四個角落也配置有切換器(S),以連接到鄰近的儲存單元(M)。這些切換器(S)透過中央儲存單元(M)及周邊運算單元(P)相互連接,構成完整的資料傳輸網路。
此延伸式佈局保持了基本單元佈局的連接特性,同時通過增加單元數量擴展了系統的運算及儲存容量。
圖5為根據本公開的一實施例所繪示的對應第一佈局的第一陣列及第二陣列的立體架構的示意圖。
參照圖5,在一實施例中,三維粗粒度可重構陣列架構系統採用立體堆疊架構,該架構基於圖4A所示的第一佈局實現。系統包括相互交錯堆疊的第一陣列121及第二陣列122,並設有垂直連接架構B51、B52以實現跨層資料傳輸。
第一陣列121及第二陣列122在XY平面上各自維持其基本佈局特徵。在第一陣列121(1)中,一個切換器(S)位於右上方,與其相鄰的兩個運算單元(P)分別位於左側及下方,一個儲存單元(M)位於左下方。類似地,第一陣列121(2)保持相同的平面佈局。在第二陣列122(1)中,一個切換器(S)位於左下方,與其相鄰的兩個儲存單元(M)分別位於右側及上方,一個運算單元(P)位於右上方。
在Z軸方向上,系統實現了兩種垂直連接架構,例如:
(1) 垂直連接架構B51:包含一個上層儲存單元(M),通過垂直互連直接連接至下層切換器(S),再連接至另一個下層儲存單元(M)。也就是說,在多個堆疊的陣列中,在左下方的組件會呈現M-S-M-S…的垂直連接架構。
(2) 垂直連接架構B52:包含一個上層切換器(S),通過垂直互連直接連接至下層運算單元(P),再連接至另一個下層切換器(S)。也就是說,在多個堆疊的陣列中,在左下方的組件會呈現M-S-M-S…的垂直連接架構。
這些垂直連接架構在相鄰陣列之間建立了直接的資料傳輸通道。具體來說,當第一陣列121(1)的切換器(S)需要與第二陣列122(1)的運算單元(P)通信時,資料可以直接通過垂直連接架構B52傳輸,無需經過水平方向的多次轉發。同樣地,當需要在不同層級的儲存單元(M)之間傳輸資料時,可以通過垂直連接架構B51實現直接傳輸。
在整體架構中,相鄰的第一陣列121和第二陣列122形成功能互補的配對。通過垂直連接架構B51和B52,系統能夠在保持各陣列平面佈局特徵的同時,實現跨層資料傳輸。這種立體堆疊架構不僅維持了原有平面佈局的連接特性,還通過垂直連接架構提供了額外的資料傳輸路徑,從而強化了系統的資料傳輸效能。
值得一提的是,在本實施例中,在一個陣列要進行跨層傳輸時,會先經過該陣列的切換器,來建立跨層傳輸路徑。因為可藉由路由任務的設定,來保證資料傳輸路徑的正確性。
圖6為根據本公開的一實施例所繪示的對應第三佈局的第一陣列及第二陣列的立體架構的示意圖。
請參照圖6,在圖6所示的實施例中,垂直連接架構呈現兩種交錯排列的模式:
(1) 垂直連接架構B61:上層儲存單元(M)通過垂直互連連接至下層運算單元(P),再連接至另一個下層儲存單元(M)。在堆疊的陣列中,垂直連接架構B61呈現出M-P-M-P...的交錯排列。
(2) 垂直連接架構B62:上層切換器(S)通過垂直互連連接至下層儲存單元(M),再連接至另一個下層切換器(S)。在堆疊的陣列中,垂直連接架構B62呈現出S-M-S-M...的交錯排列。
圖6所示的堆疊結構,在垂直方向上實現了運算單元(P)、儲存單元(M)、切換器(S)的交錯排列。相鄰層之間通過垂直連接架構B61和B62直接相連,形成緊密的立體網路。
在資料傳輸過程中,當第一陣列121(1)、121(2)需要將資料傳輸至第二陣列122時,可以直接通過垂直連接架構B61實現跨層傳輸。同理,當第二陣列122(1)需要將資料傳輸至第二陣列122時,可以直接通過垂直連接架構B61實現跨層傳輸。
圖7為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的控制方法的流程圖。
參照圖7,本發明提供一種三維粗粒度可重構陣列(Three-dimensional Coarse-Grained Reconfigurable Array, 3D-CGRA)架構系統的控制方法。該方法包括以下步驟:
步驟S710,經由配置控制器,監視三維粗粒度可重構陣列架構系統的多個第一陣列及多個第二陣列各自的工作狀態。其中每個第一陣列包括多個第一運算單元、多個第一儲存單元以及多個第一切換器,而每個第二陣列則包括多個第二運算單元、多個第二儲存單元以及多個第二切換器。
具體來說,配置控制器110持續即時追蹤各陣列中的運算單元、儲存單元以及切換器的使用情況。在一實施例中,工作狀態包括:閒置、運算中、存取中、工作中、已完成節點運算。此外,儲存單元的工作狀態更可包括該儲存單元所記錄的資料/資訊。通過監視它們的工作狀態,配置控制器110能夠掌握系統內部資源的即時分配現況以及資料的儲存情況,為後續的動態配置管理提供了依據。
步驟S720,配置控制器110根據對應神經網路模型的運算圖(Computation Graph)資訊,動態管理多個第一運算單元、多個第一儲存單元、多個第一切換器、多個第二儲存單元、多個第二運算單元、多個第二切換器的啟用及禁用,以執行神經網路模型的多個神經網路運算任務。
在此步驟中,配置控制器110依據神經網路模型本身的結構和運算順序,調度系統中的各類硬體資源,以基於當前的陣列堆疊架構來決定啟用或禁用特定的運算單元、儲存單元和切換器,以使神經網路運算任務可以依照原本的神經網路架構的順序來執行。此外,透過設定切換器的路由任務,可確保跨層的資料傳輸能夠順暢進行。
圖8為根據本公開的一實施例所繪示的獲取對應神經網路模型的運算圖資訊的示意圖。
參照圖8,在一實施例中,系統基於已知的神經網路模型的架構資料及相應的各種參數(這些資料可被記錄在工作負載配置儲存電路單元112),產生對應的資料傳輸路徑CT81及運算圖資訊TB81。資料傳輸路徑CT81以有向圖形式呈現,節點間的箭頭指示資料流動方向,用以表達節點間的資料相依關係。
在本實施例中,圖中節點A至I代表神經網路模型中的運算節點。每個箭頭代表一個資料傳輸路徑,指示運算結果的傳遞方向。例如,節點A的運算結果需傳送至節點B及節點C,表示節點B和節點C的運算需依賴節點A的運算結果。
系統依據CT81所示的資料傳輸路徑,產生運算圖資訊(如,表格TB81所示)。該運算圖資訊TB81包含以下資訊:
(1) 相依性層級:指示節點在運算序列中的執行順序;(2) 節點:標記每個相依性層級內的運算節點;(3) 連接數量:記錄每個節點的相鄰節點總數;(4) 運算量:表示每個節點所處理的節點運算的運算複雜度;(5) 資料傳輸量:記錄節點間所輸出的資料大小;(6) 母節點:標示每個節點的資料來源節點。
如圖8的例子,系統(如,配置控制器110或任務控制處理器111)根據資料傳輸路徑分析出五個相依性層級:
第1層級:節點A,無前置相依節點;第2層級:節點B和C,依賴節點A的運算結果;第3層級:節點D、E和F,依賴節點B、C的運算結果;第4層級:節點G和H,依賴節點C、D、E的運算結果;第5層級:節點I,依賴節點F、G和H的運算結果。
系統根據運算圖資訊,為每個節點分配適當的運算資源:
(1) 連接數量資訊用於判斷節點所需的資料傳輸通道數量;(2) 運算量資訊(OP1-OP9)用於評估所需的運算單元數量;(3) 資料傳輸量資訊(DT1-DT9)用於規劃資料傳輸路徑或指派適合的儲存單元來暫存運算結果;(4) 母節點資訊用於確保資料相依性的正確性、用來判斷運算結果是否需要暫存、規劃資料存取路徑、優化儲存單元的資源分配。
在這個例子中,配置控制器110根據相依性層級資訊,安排節點的執行順序:
首先,配置行無相依性的節點A。接著,待節點A完成節點運算後,可並行執行節點B和C(因為屬於同一個層級)。節點D需等待節點B的節點運算完成(因為節點D需要節點B的運算結果),節點E需等待節點B和節點C的節點運算完成,節點F需等待節點B的節點運算完成。節點G需等待節點C和節點D的節點運算完成,節點H需等待節點E的節點運算完成。最後執行節點I,需等待節點F、節點G和節點H的節點運算全部完成。
此運算圖資訊使系統能夠有效管理運算資源的分配及調度,確保神經網路運算的正確執行順序。
更詳細來說,在一實施例中,任務控制處理器111根據工作負載配置儲存電路單元112中儲存的運算圖資訊,執行運算資源的動態配置。具體來說,任務控制處理器111首先依據相依性層級資訊,決定對應多個節點的多個神經網路運算任務。接著,任務控制處理器111監控多個第一陣列121及多個第二陣列122的工作狀態,從中識別尚未被啟用的空閒運算單元。
當開始進行任務配置時,任務控制處理器111依據相依性層級資訊,從多個神經網路運算任務中依序選擇尚未處理的目標神經網路運算任務。對於每個目標神經網路運算任務,任務控制處理器111執行一系列配置步驟:首先,從空閒運算單元中選擇適合執行目標任務節點的目標運算單元;其次,從第一儲存單元及第二儲存單元中選擇對應的目標儲存單元;最後,從第一切換器及第二切換器中選擇合適的目標切換器,以建立目標運算單元與目標儲存單元之間的連接。
完成資源選擇後,任務控制處理器111依序啟用這些選定的硬體資源:啟用目標運算單元以執行目標節點運算、啟用目標儲存單元以儲存相關資料,並啟用目標切換器以設定目標路由任務,從而建立完整的資料傳輸路徑。
值得一提的是,就圖8的例子而言,一個神經網路運算任務可定義為:在相同相依性層級中,具有相同母節點的一組節點運算。例如:第一個神經網路運算任務:執行節點A的運算;第二個神經網路運算任務:同時執行節點B和C的運算(共同母節點為A);第三個神經網路運算任務:執行節點D、E和F的運算(母節點為B或C);第四個神經網路運算任務:執行節點G和H的運算;第五個神經網路運算任務:執行節點I的運算。
這些被劃分到同一運算任務的節點會被指定為該運算任務的任務節點。任務控制處理器111為這些任務節點配置對應數量的運算單元,使其能夠平行執行節點運算。所有神經網路運算任務則依據其相依性層級資訊進行排序,確保運算順序的正確性。這種任務設計能確保運算任務的執行順序符合資料相依性要求,同時支援可並行執行的節點運算。
在另一實施例中,任務控制處理器111在選擇硬體資源時,會根據運算圖資訊中的資料傳輸量資訊及連接數量資訊進行評估。具體來說,任務控制處理器111首先依據目標運算單元各自的資料傳輸量資訊,選擇對應的目標儲存單元。此選擇機制確保具有較大資料傳輸需求的運算單元能夠配置到足夠的儲存資源(或是讓其鄰近的儲存單元是具有足夠的儲存空間)。
其次,任務控制處理器111根據目標任務節點之間的連接數量資訊,從多個空閒運算單元中選擇適當的目標運算單元。舉例而言,若某目標任務節點具有較多的連接數量,則任務控制處理器111會為其選擇具有較多切換器連接的運算單元,以確保資料傳輸的效率。因此,當某特定目標運算單元需要處理較多連接數量的任務節點時,該運算單元會被配置更多的目標切換器連接。
在執行目標節點運算時,任務控制處理器111需要處理多種類型的資料。在本實施例中,這些資料包括:運算參數,用於配置目標運算單元的運算模式;節點輸入資料,包含來自前置節點的運算結果或原始輸入資料;節點運算結果,即目標運算單元執行運算任務後產生的輸出資料。任務控制處理器111可視情況決定將節點輸入資料直接傳輸給對應後續節點的運算單元,或是暫存在儲存單元以等待對應後續節點的運算單元被配置。
以圖8所示的運算圖為例,當任務控制處理器111處理任務節點E的運算任務時,會考慮以下因素:
(1) 由於任務節點E具有3個連接(來自節點B和C的輸入連接,以及到節點H的輸出連接),相較於任務節點D(對應較少連接數量:2)的運算單元的配置,任務控制處理器111會為任務節點E選擇具有較多切換器連接的目標任務運算單元。
(2) 根據對應節點E的節點運算所需要處理的輸入資料及相應的運算參數的大小,任務控制處理器111可配置具有足夠儲存容量的目標儲存單元來儲存對應的輸入資料。
(3) 任務控制處理器111確保所選擇的目標切換器能夠建立最短的完整的資料傳輸路徑,以接收來自對應節點B和C的結點運算結果,進而經由配置給節點E的目標任務運算單元來執行對應節點E的節點運算。
(4) 若對應節點E的目標任務運算單元的節點運算結果需要被暫時儲存,任務控制處理器111根據資料傳輸量資訊,決定在對應節點E的目標任務運算單元鄰近的具有足夠儲存空間的儲存單元,以暫存此節點運算結果。
在一實施例中,任務控制處理器111採用運算能力評估機制來分配運算資源。首先,任務控制處理器111會根據每個目標任務節點的運算量資訊及每個空閒運算單元[工作狀態為「空閒」(如,沒有執行運算)的運算單元]的運算能力,評估現有空閒運算單元是否足以滿足運算需求。
當確認空閒運算單元數量充足時,任務控制處理器111會考慮三個因素來選擇並啟用目標運算單元:
(1) 目標任務節點的運算量資訊,用於評估所需的運算資源規模;(2) 空閒運算單元的運算能力,確保選擇的運算單元能夠有效處理指定任務;(3) 資料傳輸路徑中的中繼組件數量,用於最小化資料傳輸延遲。
例如,當處理圖8中節點E的運算任務時,任務控制處理器111會:評估節點E的運算量OP5;檢查可用的空閒運算單元的運算能力;計算從節點B和C到各個候選運算單元的傳輸路徑長度。
基於這些資訊,任務控制處理器111選擇最佳的目標運算單元組合,其具有最短的傳輸路徑,以實現運算效能的最佳化。以下更利用圖9來說明。
圖9為根據本公開的一實施例所繪示的根據傳輸路徑選擇目標任務運算單元的示意圖。
參照圖9,在一實施例中,任務控制處理器111根據傳輸路徑資訊選擇目標運算單元。圖9上半部展示系統架構的陣列配置,其中包含運算單元(P)、儲存單元(M)及切換器(S)的空間分布,以及它們之間的連接關係。圖9下半部則以表格TB91呈現傳輸路徑的相關資訊。在這個例子中,假設第二運算單元P1是剛完成節點運算的前置運算單元,第二運算單元P2、P3是正在進行節點運算的忙碌運算單元。也就是說,對於前置運算單元P1來說,可選的空閒運算單元有P4、P5、P6、P7、P8、P9。
在本實施例中,系統針對前置運算單元P1與各個空閒運算單元P4、P5、P6、P7、P8、P9之間的可能傳輸路徑進行分析。這些傳輸路徑可分為兩類:
(1) 同平面路徑:如傳輸路徑TP14,其中P1至P4的資料傳輸完全在同一陣列平面內進行;以及
(2) 非同平面路徑:如傳輸路徑TP15至TP19,資料傳輸需跨越不同陣列平面。
任務控制處理器111會計算每條傳輸路徑的長度。傳輸路徑的長度可利用等於該傳輸路徑上的總組件個數減一來獲取。舉例來說,因為傳輸路徑TP14(P1→S1→M5→S2→P4)經過5個組件,傳輸路徑TP14的長度為4(5-1=4),
又例如,因為傳輸路徑TP15(P1→S1→M6→P5)經過4個組件,傳輸路徑TP15的長度為3(4-1=3)。
系統會優先選擇具有較短傳輸路徑長度的目標運算單元。以表格TB91所示,除了TP18路徑長度為5外,其他非同平面路徑(TP15、TP16、TP17、TP19)的長度均為3,短於同平面路徑TP14的長度4。這表明在大多數情況下,非同平面的傳輸路徑能提供更高效的資料傳輸(通過的組件的總數量越少,傳輸的速度越快)。
當任務控制處理器111判定非同平面路徑TP15的組件總個數少於同平面路徑TP14時,會優先選擇對應非同平面路徑TP15的運算單元P5作為目標運算單元(因為傳輸路徑的長度較短)。也就是說,反應於判定最短的所述非同平面路徑所包含的組件總個數少於最短的所述同平面路徑所包含的組件總個數,任務控制處理器111選擇對應最短的所述非同平面路徑的特定空閒運算單元作為所述一或多個目標運算單元的其中之一,以配置給目標節點。此機制充分利用三維架構的特性,通過選擇較短的垂直傳輸路徑,有效降低資料傳輸延遲。
應注意的是,當多個可能的傳輸路徑具有相同長度時,任務控制處理器111會進一步考慮其他因素,如空閒運算單元的運算能力、當前負載情況、被考量的空閒運算單元其周遭的其他空閒運算單元的數量、周遭儲存單元的儲存能力,以做出最終的選擇。這種基於傳輸路徑長度的選擇機制,有助於最小化資料傳輸延遲,提升系統整體效能。
圖10A至圖10C為根據本公開的一實施例所繪示的根據運算圖資訊來配置運算單元以執行對應的神經網路運算任務的示意圖。
參照圖10A,在一實施例中,任務控制處理器111根據運算圖資訊TB101配置運算資源,以執行神經網路運算任務。具體來說,對於相依性層級1的節點A,系統進行以下配置過程:
首先,任務控制處理器111分析節點A的運算特徵:(1) 運算量為200,高於標準運算單元(P1-P8)的運算能力100。(2) 連接數量為2,表示需要將運算結果傳送至兩個後續節點。(3) 母節點為Null,表示可立即開始運算。
基於上述分析,如箭頭A101所示,任務控制處理器111在第一陣列121a中選擇兩個運算單元P1和P2,以配置給節點A來執行對應的節點運算。
當配置完成後,運算單元P1和P2進入忙碌狀態(以網格圖樣表示),共同執行節點A的節點運算任務。任務控制處理器111確保這兩個運算單元能夠協同工作,共同處理節點A的節點運算需求,並將運算結果準備傳送給配置給後續節點B和C的其他運算單元。
參照圖10B,接續圖10A的第一陣列121a。接著,在第一陣列121b中,運算單元P1及P2完成了節點運算,成為前置運算單元(以網點圖樣表示)。根據運算圖資訊TB101,任務控制處理器111判定後續的相依性層級2的節點為B、C。任務控制處理器111選擇運算單元P9來執行節點B的節點運算任務,選擇運算單元P3來執行節點C的節點運算任務(以粗框表示被選擇的目標任務運算單元)。這兩個運算單元和前置運算節點P1、P2的傳輸路徑最短。
接著,如箭頭A102所示,系統進入第一陣列121c的狀態。在此狀態下,由於對應節點A的節點運算已完成,節點運算結果從運算單元P1、P2被整合且傳輸到運算單元P3、P9。運算單元P1和P2重置為空閒狀態(變回空心方塊)。運算單元P9及P3則轉為忙碌狀態(以網格圖樣表示),基於接收到的對應節點A的節點運算結果來分別執行對應節點B及節點C的節點運算任務。
在一實施例中,當任務控制處理器111需要配置目標神經網路運算任務的資料傳輸路徑時,會執行系統化的資源配置流程。具體來說,任務控制處理器111首先監控多個第一陣列121及多個第二陣列122的當前工作狀態,並從中識別尚未被啟用的新的空閒運算單元。
當完成空閒運算單元的識別後,任務控制處理器111根據相依性層級資訊,確定目標神經網路運算任務的下一個運算任務。例如,參照圖10B的實施例,當系統處於第一陣列121c的狀態時,任務控制處理器111會將相依性層級3的節點D、E、F識別為新的目標神經網路運算任務。接著,任務控制處理器111評估新識別出的空閒運算單元及新的目標神經網路運算任務的特性,選擇適當的新目標運算單元。在上述例子中,任務控制處理器111選擇運算單元P7、P6、P1及P2作為新的目標運算單元,以執行節點D、E、F的節點運算任務。根據目前執行運算的目標運算單元(P9、P3)及新選擇的目標運算單元(P7、P6、P1、P2)的位置關係,任務控制處理器111規劃目標資料傳輸路徑。最後,任務控制處理器111設定對應該傳輸路徑上的目標切換器的路由任務,確保節點運算結果能夠正確地從當前的目標運算單元傳輸至新的目標運算單元,進而支援後續運算任務的執行。
如箭頭A103所示,系統進入第一陣列121d的狀態。此時,運算單元P9(執行節點B)及運算單元P3(執行節點C)的節點運算已完成(以網點圖樣表示),成為前置運算單元。根據運算圖資訊TB101,任務控制處理器111判定後續的相依性層級3的節點為D、E、F。基於運算能力和運算量,任務控制處理器111選擇運算單元P7執行節點D的節點運算任務,選擇運算單元P6執行節點F的節點運算任務,並選擇運算單元P1和P2執行節點E的節點運算任務。
接著,如箭頭A104所示,如箭頭A104所示,系統進入第一陣列121e的狀態。由於對應節點B、C的節點運算已完成,任務控制處理器111獲取對應的節點運算結果。由於任務控制處理器111判定節點D、E、F的節點運算不會使用到節點C的節點運算結果C且運算結果C會用在後續的節點H。因此,任務控制處理器111將運算結果C暫存到儲存單元M2。此外,對應節點B的節點運算結果會被傳輸到運算單元P1、P2、P6、P7。在此狀態下,運算單元P1、P2、P6、P7轉為忙碌狀態(以網格圖樣表示),分別執行對應的節點運算任務。具體來說,運算單元P7執行對應節點D的節點運算、運算單元P6執行對應節點F的節點運算,而運算單元P1和P2則共同執行對應節點E的節點運算。接著,運算單元P9及P3也會被重置為空閒運算單元。
參照圖10C,接續圖10B的例子。在第一陣列121f中,運算單元P1、P2(執行節點E的節點運算)、運算單元P7(執行節點D的節點運算)及運算單元P6(執行節點F的節點運算)完成了對應的節點運算(以網點圖樣表示),成為了前置運算單元。根據運算圖資訊TB101,任務控制處理器111判定後續的相依性層級4的節點為G、H,且判定節點G需要節點C和D的節點運算結果,而節點H需要節點E的節點運算結果。此外,節點F的節點運算結果也會被用在後續的節點I。因此,任務控制處理器111將對應節點F的節點運算結果F暫存到儲存單元M4,因為該結果將用於最後的對應節點I的節點運算。接著,任務控制處理器111選擇運算單元P9執行節點G的節點運算任務,選擇運算單元P3執行節點H的節點運算任務(以粗框表示)。
如箭頭A105所示,系統進入第一陣列121g的狀態。在此狀態下,節點D和C的節點運算結果被傳輸到運算單元P9,節點E的節點運算結果被傳輸到運算單元P3。運算單元P9和P3轉為忙碌狀態(以網格圖樣表示),分別執行節點G和H的節點運算任務。同時,由於運算單元P1、P2、P6、P7已完成資料傳輸,這些運算單元被重置為空閒運算單元(以空心方塊表示)。
接著,接續前述狀態。如箭頭A106所示,系統進入第一陣列121h的狀態。在此狀態下,運算單元P9(執行節點G的節點運算)及運算單元P3(執行節點H的節點運算)完成了對應的節點運算(以網點圖樣表示),成為前置運算單元。根據運算圖資訊TB101,任務控制處理器111判定後續的相依性層級5的節點為I,且判定該節點需要節點F、G、H的節點運算結果,其運算量為300。因此,任務控制處理器111選擇運算單元P4、P5、P6共三個運算單元來執行節點I的節點運算任務(以粗框表示)。
接著,如箭頭A107所示,系統進入第一陣列121i的狀態。在此狀態下,節點F的節點運算結果從儲存單元M4、節點G的節點運算結果從運算單元P9、節點H的節點運算結果從運算單元P3被整合且傳輸到運算單元P4、P5、P6。這三個運算單元轉為忙碌狀態(以網格圖樣表示),共同執行節點I的節點運算任務。由於每個運算單元具有100的節點運算能力,三個運算單元的組合足以滿足節點I所需的300運算量。此外,完成資料傳輸後,前置運算單元P9和P3被重置為空閒運算單元(以空心方塊表示)。
至此,系統完成了運算圖資訊TB101中所有節點的節點運算任務。在整個過程中,任務控制處理器111根據相依性層級資訊,依序配置適當的節點運算資源,並妥善管理節點運算結果的傳輸與暫存,確保神經網路運算任務的正確執行。
應當理解的是,上述實施例中,為便於闡述本公開所提供的控制方法,僅示例性地使用同一陣列平面的第一陣列121來實現運算圖資訊的多個神經網路運算任務。然而,此示例並不構成對本公開範圍的限制。在其他實施例中,任務控制處理器111可如同圖9所示,根據實際運算需求及資源狀態,選擇不同陣列平面的運算單元來執行節點運算任務,從而實現更靈活的資源配置。
在進一步描述本公開的實施例之前,先說明當系統面臨運算資源不足的情況下的處理機制。具體來說,當任務控制處理器111判定空閒運算單元的數量不足以同時處理所有目標任務節點時,會採用序列化的資源配置策略。
參照圖11A至圖11D所示的實施例,將展示一種情境:當系統需要執行具有200運算量的節點運算時,但每個運算單元僅具有100的運算能力,且系統中可用的運算單元數量有限(目前只有一個第二陣列的運算單元可供使用)。在此情況下,任務控制處理器111需要:(1) 優先分配有限的運算資源給部分目標任務節點;(2) 持續監控運算單元的工作狀態;(3) 為完成運算的結果選擇最佳的暫存位置;(4) 動態調配釋放的運算資源。
這種資源管理機制特別適用於處理大規模神經網路運算時,系統資源緊張的情況。以下將依序說明在此情境下,任務控制處理器111如何透過動態資源配置來確保所有運算任務的完成。
圖11A至圖11D為根據本公開的另一實施例所繪示的根據運算圖資訊來配置運算單元以執行對應的神經網路運算任務的示意圖。
參照圖11A,在本實施例中,任務控制處理器111面臨運算資源受限的情境。根據運算圖資訊TB111,相依性層級1的節點A需要200的運算量,然而第二陣列122a中的每個運算單元(P1-P4)僅具有100的運算能力,使得單一運算單元無法獨立完成節點A的運算任務。
因應此運算資源限制,任務控制處理器111首先對第二陣列122a中的可用資源進行評估。經評估後,任務控制處理器111注意到運算單元P1和P2不僅可透過切換器S5建立直接的資料傳輸通道,其組合運算能力(200)亦正好符合節點A的運算需求。基於此評估結果,任務控制處理器111選擇運算單元P1和P2來共同執行節點A的運算任務。
如箭頭A111所示,在完成資源配置後,運算單元P1和P2轉入忙碌狀態(以網格圖樣表示)開始執行運算,而運算單元P3和P4則維持空閒狀態(以空心方塊表示)以備後續使用。同時,儲存單元M1至M8亦保持空閒狀態,準備接收後續的節點運算結果。此種資源配置方式展現了系統在運算能力受限的情況下,如何透過協同多個運算單元的方式來完成高運算量的任務需求。
參照圖11B,接續前述情境。在第二陣列122b中,承接第二陣列122a的運算配置,運算單元P1和P2完成了對應節點A的節點運算(以網點圖樣表示)。根據運算圖資訊TB111,任務控制處理器111判定相依性層級2包含節點B和C,其中節點B需要200運算量,節點C需要100運算量。然而,由於系統中每個運算單元僅具有100的運算能力,任務控制處理器111需要為節點B配置多個運算單元。
基於此運算需求,任務控制處理器111選擇運算單元P3和P4來執行節點B的節點運算任務,並且選擇儲存單元M8儲存節點A的節點運算結果(因為尚未執行的節點C的節點運算需要節點A的節點運算結果)。在此配置下,運算單元P3和P4轉為忙碌狀態(以網格圖樣表示),共同執行節點B的節點運算任務。
如箭頭A112所示,系統進入第二陣列122c的狀態。在此狀態下,運算單元P3和P4持續執行節點B的節點運算,而運算單元P1則被選擇執行運算量為100的節點C的節點運算任務。此時,儲存單元M8所儲存的節點A的節點運算結果會被傳輸到運算單元P1,而其他未被分配的運算單元及儲存單元則維持空閒狀態,以備後續運算需求。
接著,如箭頭A113所示,系統進入第二陣列122d的狀態。根據運算圖資訊TB111,節點C的母節點為A,且需要100運算量。因此,任務控制處理器111將儲存單元M8中的節點A運算結果傳輸至運算單元P1,以讓運算單元P1進入忙碌狀態(以網格圖樣表示)以執行對應節點C的節點運算。
由於還有一個空閒運算單元,根據運算圖資訊TB111,任務控制處理器111可判定下一個要處理的節點為D。由於節點D的母節點為B且需要100運算量,任務控制處理器111選擇運算單元P2來執行對應節點D的節點運算任務。運算單元P3、P4則持續處於忙碌狀態以完成對應節點B的節點運算。
如箭頭A114所示,系統進入第二陣列122e的狀態。此時,運算單元P3、P4完成對應節點B的節點運算(以網點圖樣表示),成為了前置運算單元。根據運算圖資訊TB111,由於節點B的節點運算結果將用於節點D、E和F的節點運算且目前沒有空閒運算單元可被配置,任務控制處理器111先將其暫存於儲存單元M7(以網格圖樣表示)。同時,由於節點C的節點運算結果需要用於後續的節點G的節點運算,任務控制處理器111也將其暫存於儲存單元M8(以網格圖樣表示)。此外,運算單元P1此時也已完成對應節點C的節點運算(以網點圖樣表示),成為前置運算單元。至此,對應相依性層級2的神經網路運算任務會被判定已經完成。任務控制處理器111會選擇下一個神經網路運算任務來處理。根據運算圖資訊TB111,任務控制處理器111判定相依性層級3包含節點D、E、F,其中節點E的運算量為200且需要節點B、C的節點運算結果,節點D的運算量為100且需要節點B的節點運算結果,節點F的運算量為100且需要節點B的節點運算結果。
運算單元P2則正在執行對應節點D的節點運算(以網格圖樣表示),進入了忙碌狀態。
參照圖11C,接續圖11B的例子。在第二陣列122f中,由於此時儲存單元M7暫存了節點B的節點運算結果,且儲存單元M8暫存了節點C的節點運算結果,任務控制處理器111可配置運算單元P3、P4來執行對應節點E的節點運算任務,配置運算單元P1來執行對應節點F的節點運算任務。運算單元P2繼續執行對應節點D的節點運算任務。
如箭頭A115所示,系統進入第二陣列122g的狀態。在此狀態下,節點B的節點運算結果及節點C的節點運算結果分別從儲存單元M7、M8傳輸至對應的運算單元。在節點B的節點運算結果傳輸到配置給節點F的運算單元P1、配置給節點E的運算單元P3、P4,並且後續的其他節點也不需要節點B的節點運算結果。任務控制處理器111就可將節點B的節點運算結果從儲存單元M7中刪除。另一方面,因為後續的節點G需要節點C的節點運算結果,因此儲存單元M8中的節點C的節點運算結果會被保留而不被刪除。
運算單元P3、P4進入忙碌狀態(以網格圖樣表示)執行對應節點E的節點運算,運算單元P1進入忙碌狀態執行對應節點F的節點運算,同時運算單元P2則完成了對應節點D的節點運算(以網點圖樣表示),成為前置運算單元。由於節點D的節點運算結果需要用於後續的節點運算且目前沒有空閒運算單元,任務控制處理器111將其暫存於儲存單元M3(以網格圖樣表示)。
接著,如箭頭A116所示,系統進入第二陣列122h的狀態。此時,運算單元P3、P4完成了對應節點E的節點運算(以網點圖樣表示),而運算單元P1也完成了對應節點F的節點運算(以網點圖樣表示),這些運算單元都成為了前置運算單元,並且準備被重置為空閒運算單元。至此,相依性層級3完成,並且開始處理相依性層級4的神經網路運算任務(節點G、H)。
因為後續的節點G需要節點D的節點運算結果,節點D的節點運算結果會被儲存到儲存單元M3。另一方面,因為後續的節點I要節點F的節點運算結果,節點F的節點運算結果會被儲存到儲存單元M8。
隨後,如箭頭A117所示,系統進入第二陣列122i的狀態。根據運算圖資訊TB111,任務控制處理器111判定相依性層級4的節點還包含尚未執行的節點G。因此,任務控制處理器111選擇運算單元P3、P4來執行對應節點G的節點運算任務。運算單元P2積蓄執行對應節點H的節點運算任務。
參照圖11D,接續圖11C的例子。在第二陣列122j中,節點C、D的節點運算結果分別從儲存單元M8、M3傳輸至對應的運算單元。由於節點G需要節點C和節點D的節點運算結果,且其運算量為200,需要兩個運算單元共同執行,因此任務控制處理器111將運算單元P3、P4配置為執行對應節點G的節點運算任務(以網格圖樣表示)。同時,根據運算圖資訊TB111,任務控制處理器111判定節點H需要節點E的節點運算結果且運算量為100,因此選擇運算單元P2來執行對應節點H的節點運算任務。由於節點H的節點運算結果將用於後續的節點I的節點運算且目前沒有空閒運算單元,任務控制處理器111將其暫存於儲存單元M2(以網格圖樣表示)。此外,由於節點F的節點運算結果需要用於後續的節點I的節點運算,任務控制處理器111繼續將其暫存於儲存單元M8。
接著,如箭頭A118所示,系統進入第二陣列122k的狀態。在此狀態下,運算單元P2已經被重置,運算單元P3、P4完成了對應節點G的節點運算(以網點圖樣表示),成為前置運算單元。由於節點G的節點運算結果將用於後續的節點I的節點運算且目前沒有空閒運算單元足以執行節點I的節點運算,任務控制處理器111將其暫存於儲存單元M7。同時,節點H的節點運算仍暫存於儲存單元M2中,因為該結果仍需用於後續的節點I的節點運算。至此,相依性層級4完成,並且準備開始處理相依性層級5的神經網路運算任務(節點I)。
接續第二陣列122k的狀態。如箭頭A119所示,系統進入第二陣列122l的狀態。在此狀態下,任務控制處理器111根據運算圖資訊TB111判定相依性層級5的節點I需要節點F、G、H的節點運算結果,且其運算量為300。由於每個運算單元的運算能力為100,因此需要三個運算單元共同執行節點I的節點運算任務。
具體來說,節點F的節點運算結果從儲存單元M8、節點G的節點運算結果從儲存單元M7、節點H的節點運算結果從儲存單元M2傳輸至對應的運算單元。任務控制處理器111將運算單元P1、P2、P3配置為執行對應節點I的節點運算任務(以網格圖樣表示)。
在資料傳輸完成後,節點F的節點運算結果已傳輸至運算單元P1且後續沒有其他節點需要使用,可從儲存單元M8中刪除;節點G的節點運算結果已傳輸至運算單元P2且後續沒有其他節點需要使用,可從儲存單元M7中刪除;節點H的節點運算結果已傳輸至運算單元P3且後續沒有其他節點需要使用,可從儲存單元M2中刪除。
至此,系統完成了運算圖資訊TB111中所有節點的節點運算任務配置。上述的例子,描述了在運算資源受限的情況下,如何透過動態的資源配置及運算結果的暫存管理,來逐步完成複雜的神經網路運算任務。
在一實施例中,本發明的三維粗粒度可重構陣列架構系統100還可以實現動態資源能力調整機制。具體而言,配置控制器110可根據運算需求,動態調整每個儲存單元與運算單元的性能參數。
在儲存單元方面,配置控制器110可調整以下參數:儲存容量配置(Storage Capacity Allocation),透過動態分割或合併儲存空間來調整單一儲存單元的容量大小;存取頻寬(Access Bandwidth),藉由調整儲存單元的工作時脈頻率與資料匯流排寬度,來改變其資料存取速度;快取配置(Cache Configuration),動態調整快取的大小與組織方式,以最佳化特定運算任務的資料存取模式。
在運算單元方面,配置控制器110可調整以下參數:運算精度(Computational Precision),例如在不需要高精度運算時,將浮點運算切換為定點運算,以提升處理效能;工作頻率(Operating Frequency),根據運算任務的複雜度動態調整運算單元的工作時脈;運算模式(Processing Mode),例如將單一運算單元重新配置為多個較小的運算單元,以提升平行處理能力。
在實務實作上,這些動態調整可透過以下技術來實現:動態電壓與頻率調整(DVFS, Dynamic Voltage and Frequency Scaling),用於即時調整工作電壓與頻率;可重構運算陣列(Reconfigurable Processing Array),支援運算單元的動態分割與合併;適應性記憶體控制器(Adaptive Memory Controller),能夠動態調整記憶體存取模式與頻寬配置;以及動態資源分配引擎(Dynamic Resource Allocation Engine),負責根據工作負載特性來決定最佳的資源配置策略。也就是說,當原本的運算單元的運算能力不足以應付特定節點的運算量時,系統可動態地調高運算單元的運算能力,以使該運算單元可以被配置給特定節點使用。如此一來,並不需要用複數個運算單元來執行該特定節點的節點運算任務,降低了在資料整合上的複雜度,進而提升了整體的工作效率。
基於上述,本公開的一或多個實施例所提供的三維粗粒度可重構陣列架構系統及其控制方法,可藉由以下技術特徵達成系統效能的提升:
1. 透過異質陣列的交錯堆疊配置,建立三維立體的資料傳輸架構,使得資料傳輸路徑得以最佳化。具體來說,當資料需要在不同功能性陣列之間傳輸時,系統可選擇最短的垂直傳輸路徑,避免了傳統二維架構中繞行多個組件的傳輸延遲。
2. 藉由動態資源分配機制,系統能夠因應不同運算量需求靈活調配運算資源。舉例而言,當遇到需要較大運算量的節點運算時,系統可配置多個運算單元共同執行該運算任務,確保運算效能的最佳化。
3. 透過運算結果的智慧暫存管理,系統能夠在運算資源受限的情況下,仍然維持高效的運算流程。當某節點的運算結果需要提供給多個後續節點使用,且當前沒有足夠的運算單元時,系統會將該結果暫存於儲存單元,直到所有相關節點完成運算後才釋放。
4. 運用相依性層級資訊進行任務調度,使得系統能夠在確保運算正確性的前提下,最大化運算資源的使用效率。系統會根據節點間的相依關係,適時將已完成運算的單元重置為空閒狀態,供後續運算任務使用。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:粗粒度可重構陣列架構系統 110:配置控制器 111:任務控制處理器 112:工作負載配置儲存電路單元 121、121(1)、121(2)、121a-121i:第一陣列 122、122(1)、122(2)、122a-122l:第二陣列 130:輸入/輸出介面 TB81、TB101、TB111:運算圖資訊 CT81:資料傳輸路徑 TB91:傳輸路徑資訊 P、P1-P9:運算單元 M、M1-M8:儲存單元 S、S1-S5:切換器 A、B、C、D、E、F、G、H、I:節點 A101-A107、A111-A119:箭頭 B51、B52、B61、B62:垂直連接架構 TP14-TP19:傳輸路徑 S710、S720:步驟
圖1為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的方塊示意圖。 圖2為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的配置控制器的方塊示意圖。 圖3A為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一交錯堆疊方式的示意圖。 圖3B為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第二交錯堆疊方式的示意圖。 圖4A為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一陣列及第二陣列的第一佈局的示意圖。 圖4B為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第二佈局的示意圖。 圖4C為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第三佈局的示意圖。 圖4D為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的第一及第二陣列的第四佈局的示意圖。 圖5為根據本公開的一實施例所繪示的對應第一佈局的第一陣列及第二陣列的立體架構的示意圖。 圖6為根據本公開的一實施例所繪示的對應第三佈局的第一陣列及第二陣列的立體架構的示意圖。 圖7為根據本公開的一實施例所繪示的三維粗粒度可重構陣列架構系統的控制方法的流程圖。 圖8為根據本公開的一實施例所繪示的獲取對應神經網路模型的運算圖資訊的示意圖。 圖9為根據本公開的一實施例所繪示的根據傳輸路徑選擇目標任務運算單元的示意圖。 圖10A至圖10C為根據本公開的一實施例所繪示的根據運算圖資訊來配置運算單元以執行對應的神經網路運算任務的示意圖。 圖11A至圖11D為根據本公開的另一實施例所繪示的根據運算圖資訊來配置運算單元以執行對應的神經網路運算任務的示意圖。
100:粗粒度可重構陣列架構系統
110:配置控制器
121:第一陣列
122:第二陣列
130:輸入/輸出介面
Claims (24)
- 一種三維粗粒度可重構陣列架構系統,用於實現一神經網路模型,包括: 多個第一陣列,其中每個第一陣列包括: 多個第一運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務; 多個第一儲存單元,用以儲存對應的神經網路運算任務的資料,其中每個第一陣列的所述多個第一運算單元的數量多於所述多個第一儲存單元的數量;及 多個第一切換器,用以執行對應的路由任務,其中每個第一切換器彼此不直接連接,其中所述多個第一運算單元、多個第一儲存單元以及所述多個第一切換器分布在所述第一陣列的陣列平面上; 多個第二陣列,其中每個第二陣列包括: 多個第二運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務; 多個第二儲存單元,用以儲存對應的神經網路運算任務的資料,其中所述多個第二儲存單元的數量多於所述多個第二運算單元的數量;及 多個第二切換器,用以執行對應的路由任務,其中每個第二切換器彼此不直接連接,其中所述多個第二運算單元、多個第二儲存單元以及所述多個第二切換器分布在所述第二陣列的陣列平面上; 一輸入/輸出介面,用以接收輸入資料和傳送處理結果; 一配置控制器,電性連接至所述多個第一陣列及所述多個第二陣列,其中每個第一陣列及每個第二陣列交錯地堆疊,其中與每個第一陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第二陣列,其中與每個第二陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第一陣列, 其中所述配置控制器用以: 監視所述多個第一陣列及所述多個第二陣列各自的工作狀態; 根據對應所述神經網路模型的運算圖資訊,動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的啟用及禁用,以執行所述神經網路模型的多個神經網路運算任務。
- 如請求項1所述的三維粗粒度可重構陣列架構系統, 其中所述神經網路運算任務包括矩陣運算、卷積運算及向量運算, 其中所述對應的神經網路運算的所述資料包括:權重參數、節點運算的運算結果及運算輸入資料。
- 如請求項1所述的三維粗粒度可重構陣列架構系統,其中在每個第一陣列中:每個第一運算單元與每個第一儲存單元彼此不直接連接,並且每個第一運算單元與每個第一儲存單元之間至少要透過一個第一切換器連接; 其中在每個第二陣列中:每個第二運算單元與每個第二儲存單元彼此不直接連接,並且每個第二運算單元與每個第二儲存單元之間至少要透過一個第二切換器連接; 其中每個第一陣列的第一切換器垂直連接到相鄰的第二陣列的第二運算單元或第二儲存單元,其中每個第一陣列的一第一資料經由所述第一切換器被傳送到所述相鄰的第二陣列的所述第二運算單元或所述第二儲存單元,以執行跨層傳輸; 其中每個第二陣列的第二切換器垂直連接到相鄰的第一陣列的第一儲存單元或第一運算單元,其中每個第二陣列的一第二資料經由所述第二切換器被傳送到所述相鄰的第一陣列的所述第一儲存單元或所述第一運算單元,以執行跨層傳輸。
- 如請求項1所述的三維粗粒度可重構陣列架構系統,其中所述配置控制器包括: 一工作負載配置儲存電路單元,用以儲存所述神經網路模型的所述運算圖資訊,其中所述運算圖資訊包括: 多個節點各自的相依性層級資訊,用以指示所述多個節點在所述神經網路模型中的執行順序,其中相同執行層級的節點可平行執行,不同執行層級的節點依序執行; 所述多個節點之間的連接數量資訊,用以指示每個節點所連接的相鄰節點的總個數; 所述多個節點之間的資料傳輸量資訊,用以指示在資料傳輸路徑上的資料大小;以及 所述多個節點各自的運算量資訊,用以指示每個節點所執行的節點運算的運算量;以及 一任務控制處理器,用以根據所述運算圖資訊,動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的所述啟用及所述禁用,以執行所述神經網路模型的所述多個神經網路運算任務。
- 如請求項4所述的三維粗粒度可重構陣列架構系統,其中所述任務控制處理器更用以: 根據所述相依性層級資訊,決定對應所述多個節點的多個神經網路運算任務,其中每個神經網路運算任務對應於所述神經網路運算任務中被執行的一或多個任務節點; 根據所述多個第一陣列及所述多個第二陣列各自的當前的所述工作狀態,從所述多個第一運算單元及所述多個第二運算單元中獲取多個空閒運算單元,其中所述多個空閒運算單元尚未被啟用; 根據所述相依性層級資訊,依序從所述多個神經網路運算任務中選擇尚未處理的一目標神經網路運算任務,並執行下列步驟: 根據所述多個空閒運算單元及所述目標神經網路運算任務,從所述多個空閒運算單元中選擇對應所述目標神經網路運算任務的一或多個目標任務節點的一或多個目標運算單元,從所述多個第一儲存單元及所述多個第二儲存單元中選擇對應所述一或多個目標運算單元的一或多個目標儲存單元,並且從所述多個第一切換器及所述多個第二切換器中選擇在所述一或多個目標運算單元及所述一或多個目標儲存單元之間的一或多個目標切換器; 啟用每個目標運算單元,以執行對應的目標任務節點的目標節點運算; 啟用每個目標儲存單元,以儲存對應的目標節點運算的資料; 啟用每個目標切換器,以設定所述目標切換器的目標路由任務,進而配置所述目標神經網路運算任務的目標資料傳輸路徑。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中所述任務控制處理器更用以: 根據所述一或多個目標運算單元各自的所述資料傳輸量資訊,選擇所述一或多個目標儲存單元;及 根據所述一或多個目標任務節點之間的所述連接數量資訊,來從所述多個空閒運算單元中選擇對應所述一或多個目標任務節點的所述一或多個目標運算單元,其中對應越多的連接數量的特定目標運算單元所連接的目標切換器的數量會越多。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中對應的目標節點運算的所述資料包括下列至少一或多者: 對應的所述目標節點運算的運算參數; 對應的所述目標節點運算的節點輸入資料;以及 對應的所述目標節點運算的節點運算結果。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中在配置所述目標神經網路運算任務的所述目標資料傳輸路徑的運作中,所述任務控制處理器更用以: 根據所述多個第一陣列及所述多個第二陣列各自的當前的所述工作狀態,從所述多個第一運算單元及所述多個第二運算單元中獲取多個新的空閒運算單元; 根據所述相依性層級資訊,獲取所述目標神經網路運算任務的下一個神經網路運算任務作為新的目標神經網路運算任務, 根據所述多個新的空閒運算單元及所述新的目標神經網路運算任務,從所述多個新的空閒運算單元中選擇對應所述新的目標神經網路運算任務的一或多個新的目標任務節點的一或多個新的目標運算單元; 根據所述一或多個目標運算單元及所述一或多個新的目標運算單元,決定所述目標資料傳輸路徑; 設定對應所述目標資料傳輸路徑的目標切換器的所述目標路由任務,以將所述一或多個目標運算單元所執行的所述目標節點運算的節點運算結果經由所述對應的目標切換器傳輸到所述一或多個新的目標運算單元。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中在根據所述相依性層級資訊,決定對應所述多個節點的所述多個神經網路運算任務的運作中,所述任務控制處理器更用以: 根據所述相依性層級資訊,將屬於同一個執行層級的一或多個特定節點劃分到同一個神經網路運算任務,其中屬於所述同一個神經網路運算任務的所述一或多個特定節點作為對應所述神經網路運算任務的所述一或多個任務節點,並且被配置給所述一或多個任務節點的一或多個運算單元平行地執行對應的節點運算,其中所述多個神經網路運算任務根據對應的所述相依性層級資訊被排序。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中所述任務控制處理器更用以: 根據每個目標任務節點的所述運算量資訊及每個空閒運算單元的運算能力,判斷所述多個空閒運算單元是否足夠被配置給所述多個目標任務節點;及 當所述多個空閒運算單元足夠被配置給所述多個目標任務節點時,根據下列資訊來選擇且啟用所述一或多個目標運算單元: 每個目標任務節點的所述運算量資訊; 每個空閒運算單元的所述運算能力;及 每個空閒運算單元與對應的每個前置節點之間的傳輸路徑上所需通過的中繼組件的總個數。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中所述任務控制處理器更用以: 當所述多個空閒運算單元不足夠被配置給所述一或多個目標任務節點時,執行下列步驟: 將所有的所述多個空閒運算單元配置給所述一或多個目標任務節點中的一或多個第一目標任務節點; 監視每個運算單元的工作狀態,以獲取完成節點運算的特定運算單元; 從所述多個第一儲存單元及所述多個第二儲存單元中選擇與所述特定運算單元具有最短傳輸路徑的特定儲存單元,以儲存所述特定運算單元的節點運算結果,其中最短傳輸路徑所包含的組件的總個數是最少的; 將所述特定運算單元重置為新的空閒運算單元; 從所述一或多個目標任務節點的尚未被配置的一或多個第二目標任務節點中,選擇第三目標任務節點,並且將所述新的空閒運算單元配置給所述第三目標任務節點,以執行對應所述第三目標任務節點的所述節點運算;以及 接續執行監視每個運算單元的工作狀態,以獲取完成節點運算的特定運算單元的步驟,直到所有的目標任務節點都被配置完畢。
- 如請求項5所述的三維粗粒度可重構陣列架構系統,其中從所述多個空閒運算單元中選擇對應所述目標神經網路運算任務的所述一或多個目標任務節點的所述一或多個目標運算單元的步驟包括: 反應於判定對應一前置節點的一前置運算單元已經完成所述節點運算; 獲取每個空閒運算單元與所述前置運算單元之間的傳輸路徑,其中所述傳輸路徑包括: 一同平面路徑,為所述空閒運算單元與所述前置運算單元位於同一個所述陣列平面時的傳輸路徑;以及 一非同平面路徑,為所述空閒運算單元與所述前置運算單元位於不同的所述陣列平面時的傳輸路徑;以及 反應於判定最短的所述非同平面路徑所包含的組件總個數少於最短的所述同平面路徑所包含的組件總個數,選擇對應最短的所述非同平面路徑的特定空閒運算單元作為所述一或多個目標運算單元的其中之一。
- 一種三維粗粒度可重構陣列架構系統的控制方法,其中所述三維粗粒度可重構陣列架構系統用於實現一神經網路模型,包括: 經由一配置控制器,監視三維粗粒度可重構陣列架構系統的多個第一陣列及多個第二陣列各自的工作狀態, 其中每個第一陣列包括: 多個第一運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務; 多個第一儲存單元,用以儲存對應的神經網路運算任務的資料,其中每個第一陣列的所述多個第一運算單元的數量多於所述多個第一儲存單元的數量;及 多個第一切換器,用以執行對應的路由任務,其中每個第一切換器彼此不直接連接,其中所述多個第一運算單元、多個第一儲存單元以及所述多個第一切換器分布在所述第一陣列的陣列平面上; 其中每個第二陣列包括: 多個第二運算單元,用以執行對應的所述神經網路模型的節點的神經網路運算任務; 多個第二儲存單元,用以儲存對應的神經網路運算任務的資料,其中所述多個第二儲存單元的數量多於所述多個第二運算單元的數量;及 多個第二切換器,用以執行對應的路由任務,其中每個第二切換器彼此不直接連接,其中所述多個第二運算單元、多個第二儲存單元以及所述多個第二切換器分布在所述第二陣列的陣列平面上, 其中所述配置控制器電性連接至所述多個第一陣列及所述多個第二陣列,其中每個第一陣列及每個第二陣列交錯地堆疊,其中與每個第一陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第二陣列,其中與每個第二陣列於對應所述陣列平面的垂直方向相鄰的陣列是所述第一陣列;以及 根據對應所述神經網路模型的運算圖資訊,藉由所述配置控制器動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的啟用及禁用,以執行所述神經網路模型的多個神經網路運算任務。
- 如請求項13所述的控制方法, 其中所述神經網路運算任務包括矩陣運算、卷積運算及向量運算, 其中所述對應的神經網路運算的所述資料包括:權重參數、節點運算的運算結果及運算輸入資料。
- 如請求項13所述的控制方法,其中在每個所述第一陣列中:每個所述第一運算單元與每個所述第一切換器彼此不直接連接,並且每個所述第一運算單元與每個所述第一切換器之間至少要透過一個所述第一切換器連接; 其中在每個所述第二陣列中:每個所述第二運算單元與每個所述第二切換器彼此不直接連接,並且每個所述第二運算單元與每個所述第二切換器之間至少要透過一個所述第二切換器連接; 其中每個所述第一陣列的所述第一切換器垂直連接到相鄰的所述第二陣列的所述第二運算單元,其中第一資料會經由所述第一切換器被傳送到所述相鄰的第二陣列的所述第二運算單元,以執行跨層傳輸; 其中每個所述第二陣列的所述第二切換器垂直連接到相鄰的所述第一陣列的所述第一儲存單元,其中第二資料會經由所述第二切換器被傳送到所述相鄰的第一陣列的所述第一運算單元,以執行跨層傳輸。
- 如請求項13所述的控制方法,其中所述配置控制器包括: 一工作負載配置儲存電路單元,用以儲存所述神經網路模型的所述運算圖資訊,其中所述運算圖資訊包括: 多個節點各自的相依性層級資訊,用以指示所述多個節點在所述神經網路模型中的執行順序,其中相同執行層級的節點可平行執行,不同執行層級的節點依序執行; 所述多個節點之間的連接數量資訊,用以指示每個節點所連接的相鄰節點的總個數; 所述多個節點之間的資料傳輸量資訊,用以指示在資料傳輸路徑上的資料大小;以及 所述多個節點各自的運算量資訊,用以指示每個節點所執行的節點運算的運算量;以及 一任務控制處理器,用以根據所述運算圖資訊,動態管理所述多個第一運算單元、所述多個第一儲存單元、所述多個第一切換器、所述多個第二儲存單元、所述多個第二運算單元、所述多個第二切換器的所述啟用及所述禁用,以執行所述神經網路模型的所述多個神經網路運算任務。
- 如請求項16所述的控制方法,其中所述方法更包括: 經由所述任務控制處理器,根據所述相依性層級資訊,決定對應所述多個節點的所述多個神經網路運算任務,其中每個所述神經網路運算任務對應於所述神經網路運算任務中被執行的一或多個任務節點; 經由所述任務控制處理器,根據所述多個第一陣列及所述多個第二陣列各自的當前的所述工作狀態,從所述多個第一運算單元及所述多個第二運算單元中獲取多個空閒運算單元,其中所述多個空閒運算單元尚未被啟用; 經由所述任務控制處理器,根據所述相依性層級資訊,依序從所述多個神經網路運算任務中選擇尚未處理的一目標神經網路運算任務,並執行下列步驟: 根據所述多個空閒運算單元及所述目標神經網路運算任務,從所述多個空閒運算單元中選擇對應所述目標神經網路運算任務的一或多個目標任務節點的一或多個目標運算單元,從所述多個第一儲存單元及所述多個第二儲存單元中選擇對應所述一或多個目標運算單元的一或多個目標儲存單元,並且從所述多個第一切換器及所述多個第二切換器中選擇在所述一或多個目標運算單元及所述一或多個目標儲存單元之間的一或多個目標切換器; 啟用每個所述目標運算單元,以執行對應的目標任務節點的目標節點運算; 啟用每個所述目標儲存單元,以儲存對應的所述目標節點運算的資料; 啟用每個所述目標切換器,以設定所述目標切換器的目標路由任務,進而配置所述目標神經網路運算任務的目標資料傳輸路徑。
- 如請求項17所述的控制方法,其中所述方法更包括: 經由所述任務控制處理器,根據所述一或多個目標運算單元各自的所述資料傳輸量資訊,選擇所述一或多個目標儲存單元;及 經由所述任務控制處理器,根據所述一或多個目標任務節點之間的所述連接數量資訊,來從所述多個空閒運算單元中選擇對應所述一或多個目標任務節點的所述一或多個目標運算單元,其中對應越多的連接數量的特定目標運算單元所連接的目標切換器的數量會越多。
- 如請求項17所述的控制方法,其中對應的所述目標節點運算的所述資料包括下列至少一或多者: 對應的所述目標節點運算的運算參數; 對應的所述目標節點運算的節點輸入資料;以及 對應的所述目標節點運算的節點運算結果。
- 如請求項17所述的控制方法,其中配置所述目標神經網路運算任務的所述目標資料傳輸路徑的步驟包括: 經由所述任務控制處理器,根據所述多個第一陣列及所述多個第二陣列各自的當前的所述工作狀態,從所述多個第一運算單元及所述多個第二運算單元中獲取多個新的空閒運算單元; 經由所述任務控制處理器,根據所述相依性層級資訊,獲取所述目標神經網路運算任務的下一個神經網路運算任務作為新的目標神經網路運算任務; 經由所述任務控制處理器,根據所述多個新的空閒運算單元及所述新的目標神經網路運算任務,從所述多個新的空閒運算單元中選擇對應所述新的目標神經網路運算任務的一或多個新的目標任務節點的一或多個新的目標運算單元; 經由所述任務控制處理器,根據所述一或多個目標運算單元及所述一或多個新的目標運算單元,決定所述目標資料傳輸路徑; 經由所述任務控制處理器,設定對應所述目標資料傳輸路徑的目標切換器的所述目標路由任務,以將所述一或多個目標運算單元所執行的所述目標節點運算的節點運算結果經由所述對應的目標切換器傳輸到所述一或多個新的目標運算單元。
- 如請求項17所述的控制方法,其中根據所述相依性層級資訊,決定對應所述多個節點的所述多個神經網路運算任務的步驟包括: 經由所述任務控制處理器,根據所述相依性層級資訊,將屬於同一個執行層級的一或多個特定節點劃分到同一個神經網路運算任務,其中屬於所述同一個神經網路運算任務的所述一或多個特定節點作為對應所述神經網路運算任務的所述一或多個任務節點,並且被配置給所述一或多個任務節點的一或多個運算單元平行地執行對應的節點運算,其中所述多個神經網路運算任務根據對應的所述相依性層級資訊被排序。
- 如請求項17所述的控制方法,其中所述方法更包括: 經由所述任務控制處理器,根據每個目標任務節點的所述運算量資訊及每個空閒運算單元的運算能力,判斷所述多個空閒運算單元是否足夠被配置給所述多個目標任務節點;及 經由所述任務控制處理器,當所述多個空閒運算單元足夠被配置給所述多個目標任務節點時,根據下列資訊來選擇且啟用所述一或多個目標運算單元: 每個目標任務節點的所述運算量資訊; 每個空閒運算單元的所述運算能力;及 每個空閒運算單元與對應的每個前置節點之間的傳輸路徑上所需通過的中繼組件的總個數。
- 如請求項17所述的控制方法,其中所述方法更包括: 經由所述任務控制處理器,當所述多個空閒運算單元不足夠被配置給所述一或多個目標任務節點時,執行下列步驟: 經由所述任務控制處理器,將所有的所述多個空閒運算單元配置給所述一或多個目標任務節點中的一或多個第一目標任務節點; 經由所述任務控制處理器,監視每個運算單元的工作狀態,以獲取完成節點運算的特定運算單元; 經由所述任務控制處理器,從所述多個第一儲存單元及所述多個第二儲存單元中選擇與所述特定運算單元具有最短傳輸路徑的特定儲存單元,以儲存所述特定運算單元的節點運算結果,其中最短傳輸路徑所包含的組件的總個數是最少的; 經由所述任務控制處理器,將所述特定運算單元重置為新的空閒運算單元; 經由所述任務控制處理器,從所述一或多個目標任務節點的尚未被配置的一或多個第二目標任務節點中,選擇第三目標任務節點,並且將所述新的空閒運算單元配置給所述第三目標任務節點,以執行對應所述第三目標任務節點的所述節點運算;以及 經由所述任務控制處理器,接續執行監視每個運算單元的工作狀態,以獲取完成節點運算的特定運算單元的步驟,直到所有的目標任務節點都被配置完畢。
- 如請求項17所述的控制方法,其中從所述多個空閒運算單元中選擇對應所述目標神經網路運算任務的所述一或多個目標任務節點的所述一或多個目標運算單元的步驟包括: 經由所述任務控制處理器,反應於判定對應一前置節點的一前置運算單元已經完成所述節點運算; 經由所述任務控制處理器,獲取每個空閒運算單元與所述前置運算單元之間的傳輸路徑,其中所述傳輸路徑包括: 一同平面路徑,為所述空閒運算單元與所述前置運算單元位於同一個所述陣列平面時的傳輸路徑;以及 一非同平面路徑,為所述空閒運算單元與所述前置運算單元位於不同的所述陣列平面時的傳輸路徑;以及 經由所述任務控制處理器,反應於判定最短的所述非同平面路徑所包含的組件總個數少於最短的所述同平面路徑所包含的組件總個數,選擇對應最短的所述非同平面路徑的特定空閒運算單元作為所述一或多個目標運算單元的其中之一。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113150647A TWI902585B (zh) | 2024-12-25 | 2024-12-25 | 三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113150647A TWI902585B (zh) | 2024-12-25 | 2024-12-25 | 三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TWI902585B true TWI902585B (zh) | 2025-10-21 |
Family
ID=98264118
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113150647A TWI902585B (zh) | 2024-12-25 | 2024-12-25 | 三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI902585B (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114398308A (zh) * | 2022-01-18 | 2022-04-26 | 上海交通大学 | 基于数据驱动粗粒度可重构阵列的近内存计算系统 |
| US20230205293A1 (en) * | 2021-12-29 | 2023-06-29 | SambaNova Systems, Inc. | High-bandwidth power estimator for ai accelerator |
| US20240248863A1 (en) * | 2023-01-19 | 2024-07-25 | SambaNova Systems, Inc. | Method and apparatus for data transfer between accessible memories of multiple processors in a heterogeneous processing system using one memory to memory transfer operation |
| US20240370402A1 (en) * | 2022-02-09 | 2024-11-07 | SambaNova Systems, Inc. | Configuration Data Store in a Reconfigurable Data Processor Having Two Access Modes |
-
2024
- 2024-12-25 TW TW113150647A patent/TWI902585B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230205293A1 (en) * | 2021-12-29 | 2023-06-29 | SambaNova Systems, Inc. | High-bandwidth power estimator for ai accelerator |
| CN114398308A (zh) * | 2022-01-18 | 2022-04-26 | 上海交通大学 | 基于数据驱动粗粒度可重构阵列的近内存计算系统 |
| US20240370402A1 (en) * | 2022-02-09 | 2024-11-07 | SambaNova Systems, Inc. | Configuration Data Store in a Reconfigurable Data Processor Having Two Access Modes |
| US20240248863A1 (en) * | 2023-01-19 | 2024-07-25 | SambaNova Systems, Inc. | Method and apparatus for data transfer between accessible memories of multiple processors in a heterogeneous processing system using one memory to memory transfer operation |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12340101B2 (en) | Scaling out architecture for dram-based processing unit (DPU) | |
| CN112149816A (zh) | 支持深度神经网络推理加速的异构存算融合系统及方法 | |
| CN112114942B (zh) | 一种基于众核处理器的流式数据处理方法及计算设备 | |
| CN110968543A (zh) | 存储器中计算系统和方法 | |
| CN114492782A (zh) | 基于强化学习的神经网络的片上核心编译映射方法及装置 | |
| CN113407479B (zh) | 一种内嵌fpga的众核架构及其数据处理方法 | |
| KR20200139829A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
| US11645225B2 (en) | Partitionable networked computer | |
| CN112183015B (zh) | 一种面向深度神经网络的芯片布图规划方法 | |
| Xue et al. | EdgeLD: Locally distributed deep learning inference on edge device clusters | |
| CN102681901A (zh) | 一种分区域的可重构硬件任务放置方法 | |
| Bhatele et al. | Application-specific topology-aware mapping for three dimensional topologies | |
| CN119537294B (zh) | 一种用于加速计算的控制器和加速计算系统 | |
| Rafie et al. | Performance evaluation of task migration in contiguous allocation for mesh interconnection topology | |
| CN113407238B (zh) | 一种具有异构处理器的众核架构及其数据处理方法 | |
| TWI902585B (zh) | 三維粗粒度可重構陣列架構系統及三維粗粒度可重構陣列架構系統的控制方法 | |
| Fiedler et al. | Improving task placement for applications with 2D, 3D, and 4D virtual Cartesian topologies on 3D torus networks with service nodes | |
| CN108304261B (zh) | 一种基于6D-Torus网络的作业调度方法和装置 | |
| US11372791B2 (en) | Embedding rings on a toroid computer network | |
| Zhu et al. | Core placement optimization of many-core brain-inspired near-storage systems for spiking neural network training | |
| CN119211106A (zh) | 用于多个计算节点之间的数据路由的系统、方法及装置 | |
| Yang et al. | Network Group Partition and Core Placement Optimization for Neuromorphic Multi-Core and Multi-Chip Systems | |
| CN113556242A (zh) | 一种基于多处理节点来进行节点间通信的方法和设备 | |
| CN120075122B (zh) | 面向分布式大模型训练的通信调度方法、电子设备、介质 | |
| US20260003820A1 (en) | Versatile accelerator design for multiple deep neural network applications |