TWI714803B - 處理器及控制工作流的方法 - Google Patents

處理器及控制工作流的方法 Download PDF

Info

Publication number
TWI714803B
TWI714803B TW106130360A TW106130360A TWI714803B TW I714803 B TWI714803 B TW I714803B TW 106130360 A TW106130360 A TW 106130360A TW 106130360 A TW106130360 A TW 106130360A TW I714803 B TWI714803 B TW I714803B
Authority
TW
Taiwan
Prior art keywords
memory
dpu
workflow
task
host
Prior art date
Application number
TW106130360A
Other languages
English (en)
Other versions
TW201816595A (zh
Inventor
牛迪民
李双辰
巴布 布瑞南
克里希納 T. 馬拉迪
郑宏忠
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201816595A publication Critical patent/TW201816595A/zh
Application granted granted Critical
Publication of TWI714803B publication Critical patent/TWI714803B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

本發明提供一種處理器,其包含多個記憶體單元,記憶 體單元中的每一者包含多個記憶體胞元,其中記憶體單元中的每一者可組態以作為記憶體、作為計算單元或作為混合型記憶體-計算單元操作。

Description

處理器及控制工作流的方法 [相關申請案的交叉參考]
本申請案主張2016年10月27日申請的美國臨時專利申請案第62/413,973號、2016年10月27日申請的美國臨時專利申請案第62/413,977號、2016年10月28日申請的美國臨時專利申請案第62/414,426號以及2017年4月13日申請的美國臨時專利申請案第62/485,370號的優先權及權益,所有所述美國臨時專利申請案的全部內容以引用的方式併入本文中。
根據本發明的實施例的一或多個態樣是有關於一種DRAM式處理單元(DRAM-based processing unit;DPU),且更特定言之,是有關於一種DPU叢集架構。
DRAM式處理單元(DPU)可用作其他處理器及/或圖形加速器(諸如圖形處理單元(graphics processing unit;GPU)及特殊應用積體電路(application specific integrated circuit;ASIC))的替代性加速器。對應於DPU的新的生態系統可具備經設計以針對DPU達成改良或最佳的映射及排程的驅動程式及庫。
DPU可以是可重組態且可程式化的。舉例而言,由動態隨機存取記憶體(DRAM)胞元提供的邏輯可經組態(或重組態)以提供不同操作,例如,加法器、乘法器等。舉例而言,DPU可基於具有輕微修改的三電晶體及一電容器(three transistor,one capacitor;3T1C)/一晶體管及一電容器(one transistor,one capacitor;1T1C)DRAM程序及結構。因為DPU通常不含有具體計算邏輯(例如,加法器),所以記憶體胞元可用於計算。
本發明的實施例的態樣針對用於多個DRAM式處理單元(DPU)的叢集架構的方法及相關聯結構。
儘管每一DPU可具有例如16個十億位元組(16GB)容量且可在晶片上具有8百萬(8M)個計算單元,但每一DPU可遠不及包含例如100億個神經元的人腦。舉例而言,可需要數百至數千個DPU來實施類人腦的神經網路(neural network;NN)。根據一或多個範例實施例,多DPU橫向擴展架構可用以提供類人腦的神經網路。
相比於中央處理單元(central processing unit;CPU)/圖形處理單元(GPU)橫向擴展,DPU更類似於記憶體(例如,DIMM)擴展,且支援更大數目個整合。另外,可減小或最小化通信額外負擔。
根據本發明的範例實施例,一種處理器包含多個記憶體單元,所述記憶體單元中的每一者包含多個記憶體胞元,其中所述記憶體單元中的每一者可組態以作為記憶體、作為計算單元或 作為混合型記憶體-計算單元操作。
所述記憶體單元中的至少一者可經組態以自主機接收任務。
所述記憶體單元可經組態以由主機控制,所述主機經組態以執行針對所述記憶體單元的任務分割、至所述記憶體單元的資料分配、自所述記憶體單元的資料收集或至所述記憶體單元的任務分配中的至少一者。
所述處理器可更包含經組態以儲存記憶體單元-任務映射資訊的儲存單元。
所述記憶體單元中的每一者可包含DRAM。
組態為計算單元的所述記憶體單元可以可組態以在所述計算單元中無一者可用以執行或能夠整體地執行任務的情況下,各自執行所述任務的對應部分。
所述多個記憶體單元可配置成可擴展叢集架構。
所述處理器可更包含多個記憶體控制器,所述記憶體控制器中的每一者經組態以控制所述記憶體單元中的一或多者。
所述處理器可更包含用於在所述記憶體單元之間路由工作流的多個路由器。
所述路由器中的至少一者可嵌入於所述記憶體控制器中的對應記憶體控制器中。
根據本發明的範例實施例,提供一種在包含多個記憶體單元的分散式計算系統中控制工作流的方法。所述方法包含:接收工作流,所述工作流包含待由所述記憶體單元中的一或多者執行的任務;由所述記憶體單元中的一者根據所述工作流來執行所 述任務或所述任務的一部分;以及在完成所述任務或所述任務的所述部分之後,由所述記憶體單元中的所述一者將所述工作流的剩餘部分轉送至所述記憶體單元中的另一者。
所述工作流可由接收任務請求的主機產生,且可提供至所述記憶體單元中的至少一者。
所述工作流可由所述記憶體單元中的一或多者產生。
所述方法可更包含取決於資源可用性而將所述記憶體單元中的一或多者重組態為計算單元或記憶體。
異步通信協定可用以在所述記憶體單元之間通信。
所述工作流的所述剩餘部分可轉送至所述記憶體單元中的後續記憶體單元,直至所述工作流中的所有任務完成或以失敗告終為止。
在所述記憶體單元中的一者無法全部完成所述任務的情況下,可分割所述任務。
根據本發明的範例實施例,提供一種在包含多個記憶體單元的分散式計算系統中控制工作流的方法。所述方法包含:自主機接收第一請求以由所述記憶體單元中的一者執行第一任務;由所述記憶體單元中的所述一者執行所述第一任務;將所述第一任務的結果自所述記憶體單元中的所述一者提供至所述主機;以及自所述主機接收第二請求以由所述記憶體單元中的另一者執行第二任務。
所述記憶體單元中的所述另一者可進一步自所述主機接收所述第一任務的所述結果。
所述分散式計算系統可更包含所述主機,所述主機經組 態以發送所述任務且讀取所述任務的結果。
100:電腦處理架構
110:軟體堆疊
120:應用程式/應用層
122:影像標記
124:自驅動演算法
126:人工智慧
128:語音研究/識別
130:框架/框架層
132:第一機器學習軟體程式庫框架
134:第二機器學習軟體程式庫框架
136:開放原始碼框架
140:庫及驅動程式/庫及驅動程式層
142:神經網路庫(NNL)
144:張量處理單元(TPU)驅動程式
145:DRAM式處理單元(DPU)庫
147:DRAM式處理單元(DPU)驅動程式
149:DRAM式處理單元(DPU)編譯器
150:硬體/硬體層
152:圖形處理單元(GPU)模組
154:張量處理單元(TPU)模組
156、202、202-1、204、208:DPU模組
158:多DPU模組
200、300:分散式DPU叢集架構
206:DRAM模組
210、212、214、216:控制器及路由器
220、350:主機
302、304、306、312、314、316、322、324、326、332、334、336:DPU模組/DRAM模組
400、402、404、406、408、410、500、502、504、506、508、600、602、604、606、608:框
將參考說明書、申請專利範圍以及附圖來瞭解及理解本發明的此等及其他特徵及態樣,在附圖中:圖1是根據本發明的範例實施例的電腦處理架構的示意性方塊圖。
圖2是根據本發明的範例實施例的分散式DPU叢集架構的示意性方塊圖。
圖3是根據本發明的範例實施例的具有嵌入式路由器的分散式DPU叢集架構的示意性方塊圖。
圖4是根據本發明的範例實施例的由主機進行的分散式DPU叢集控制的流程圖,由主機進行的集中控制在其中實施。
圖5是根據本發明的範例實施例的分散式DPU叢集控制的流程圖,其中主機在每一計算步驟中起到積極作用。
圖6是根據本發明的範例實施例的分散式DPU叢集控制的流程圖,隨意(ad hoc)控制在其中實施。
本發明的實施例針對用於多個DRAM式處理單元(DPU)的方法及相關聯結構,所述DPU各自經組態為DPU叢集架構中的節點。根據本發明的各種實施例,每一DPU可被稱作節點,或每一DPU模組(其包含多個DPU)可被稱作節點。在範例實施例 中,每一節點包含多個DPU模組的集合。舉例而言,節點可包含具有多個DPU模組的伺服器,其中每一DPU模組含有多個DPU(或DPU裝置)。DPU構成可提供正常大規模平行處理器或處理的均勻合併式記憶體及加速器集區。每一節點中的資源可受硬體(例如,算術邏輯單元(arithmetic logic unit;ALU)的數目等)限制。
根據本發明的範例實施例的電腦處理架構(或系統)可被稱作包含多個記憶體單元(例如,DPU)的「處理器」,其中記憶體單元中的每一者包含多個記憶體胞元,記憶體胞元可包含3T1C記憶體胞元及/或1T1C記憶體胞元。根據範例實施例,提供靈活性以將具有實質上相同的結構的記憶體單元進行組態(及/或重組態)以基於系統的資源要求及/或基於使用者設計/偏好而作為記憶體、作為計算單元或作為混合型記憶體-計算單元操作。
圖1是根據本發明的範例實施例的電腦處理架構(或系統架構)100的示意性方塊圖。
電腦處理架構100包含硬體(或硬體層)150,產生軟體堆疊以在硬體或硬體層上操作。電腦處理架構100可經組態用於使深度學習加速,且可仿真或模擬神經網路。
硬體150例如包含GPU模組152、張量處理單元(tensor processing unit;TPU)模組154、DRAM式處理單元(DPU)模組156以及多DPU模組158。GPU模組152及TPU模組154中的每一者可包含各別GPU或TPU及多個支援晶片。舉例而言,TPU可實施於特殊應用積體電路(ASIC)上,且可針對機器學習來組態或最佳化。根據範例實施例,DPU可類似於其他加速器(諸如熟習此項技術者已知的TPU或GPU)而工作。
圖1中所說明的DPU模組具有兩個構成方式。第一構成方式是在周邊組件高速互連(Peripheral Component Interconnect Express;PCIe)匯流排上的DPU模組156,且第二構成方式是在雙行記憶體模組(Dual In-line Memory Module;DIMM)匯流排上的多DPU模組158。儘管DPU模組156在圖1中展示為具有一個DPU裝置,但DPU模組156可以是可包含一或多個嵌入式DPU的PCIe裝置。儘管多DPU模組158在圖1中展示為具有多個DPU裝置,但多DPU模組158可以是可包含一或多個嵌入式DPU的DIMM。應理解,電腦處理架構100的硬體150中的DPU模組不限於PCIe裝置及/或DIMM,但可包含可含有DPU的系統單晶片(System on a Chip;SoC)裝置或其他記憶體型裝置。DPU的計算胞元陣列可經組態以包含三電晶體及一電容器(3T1C)的DRAM計算胞元構形及/或一晶體管及一電容器(1T1C)的DRAM計算胞元構形。
儘管圖1中所展示的硬體150具有GPU模組152、TPU模組154、DPU模組156以及多DPU模組158中的每一個模組,但在其他實施例中,硬體可包含GPU模組、TPU模組、DPU模組及/或多DPU模組的任何其他適合組合。舉例而言,在一個實施例中,硬體可僅包含DPU模組及/或多DPU模組。
軟體堆疊110包含一或多個庫及驅動程式(例如,庫及驅動程式層)140,一或多個框架(例如,框架層)130以及一或多個應用程式(例如,應用層)120。一或多個庫可包含神經網路庫(neural network library;NNL)142,諸如CUDA®深度神經網路庫(CUDA® Deep Neural Network library;cuDNN),神經網路 庫是可購自NVIDIA®且用於操作GPU模組152的深度神經網路的基元的GPU加速庫。CUDA®及NVIDIA®是加利福尼亞州聖克拉拉的輝達公司(NVidia Corporation)的註冊商標。當然,根據本發明的實施例,替代或除了cuDNN以外,亦可使用任何其他適合的市售及/或訂製神經網路庫。一或多個驅動程式可包含用於驅動TPU模組154的TPU驅動程式144。
根據一或多個實施例的一或多個庫及驅動程式140可包含DPU庫145及DPU驅動程式147以支援DPU硬體(例如,DPU模組156及158)。DPU編譯器149可用以編譯使用DPU庫145及DPU驅動程式147產生的常式,以操作DPU模組156及/或多DPU模組158。根據範例實施例,為了啟用包含一或多個DPU裝置的加速器,DPU驅動程式147可極類似於TPU驅動程式144。舉例而言,DPU庫145可經組態以為可在應用層120操作的不同應用程式提供用於硬體層150中的DPU中的每一子陣列的最佳映射功能性、資源分配功能性以及排程功能性。
在一個實施例中,DPU庫145可提供用於框架層130的高階應用程式設計介面(application programming interface;API),其可包含諸如移動、加法、乘法等的操作。舉例而言,DPU庫145亦可包含用於標準型常式的實施,諸如但不限於前向及後向卷積、集區化(pooling)、正規化,及可適用於加速深度學習程序的啟動層。在一個實施例中,DPU庫145可包含類API函式,其映射用於卷積神經網路(convolution neural network;CNN)的整個卷積層的計算。另外,DPU庫145可包含用於最佳化卷積層計算至DPU的映射的類API函式。
DPU庫145亦可包含用於藉由將任務(批次、輸出通道、像素、輸入通道、卷積核心)內的任何個別或多個平行度映射成晶片、記憶體庫、子陣列及/或片(mat)層級處的對應DPU平行度來改良或最佳化資源分配的類API函式。另外,DPU庫145可包含類API函式,所述類API函式提供初始化及/或執行階段(runtime)時的權衡效能(即,資料移動流動)及功率消耗的最佳DPU組態。由DPU庫145提供的其他類API函式可包含設計旋鈕型(design-knob-type)函式,諸如,設定每一記憶體庫的作用中子陣列的數目、每一作用中子陣列的輸入特徵圖的數目、特徵圖的分割,及/或卷積核心的再使用方案。另外其他類API函式可藉由為每一子陣列分配特定任務,諸如卷積計算、通道總計及/或資料分派來提供額外資源分配最佳化。若運算元將在整數與隨機數之間轉換,則DPU庫145可包含在滿足精度約束條件的同時降低或最小化額外負擔的類API函式。在精度低於預期的情況下,DPU庫145可包含再次使用用於隨機表示的額外位元計算值或將任務分流至諸如CPU的其他硬體的類API函式。
DPU庫145亦可包含並存地(或同時地)對DPU中的經啟動子陣列進行排程,且對資料移動進行排程以使得其藉由計算操作隱藏的類API函式。
DPU庫145的另一態樣可包含用於進一步DPU開發的擴展介面。在一個實施例中,DPU庫145可提供用以使用反或(NOR)及移位邏輯直接程式化功能性以使得可提供除標準型操作(意即,加法、乘法、最大/最小等)以外的操作的介面。擴展介面亦可提供介面,以使得DPU庫145未特定支援的操作可在庫及驅動 程式層140處分流至SoC控制器、中央處理單元/圖形處理單元(CPU/GPU)組件及/或CPU/張量處理單元(CPU/TPU)組件。DPU庫145的又一態樣可提供類API函式以在DPU記憶體未在用於計算時將DPU的記憶體用作記憶體的擴展。
DPU驅動程式147可經組態以提供硬體層150處之DPU、DPU庫145與較高層處的作業系統(operating system;OS)之間的介面連接,以將DPU硬體層整合至系統中。即,DPU驅動程式147將DPU暴露於系統OS及DPU庫145。在一個實施例中,DPU驅動程式147可在初始化時提供DPU控制。在一個實施例中,DPU驅動程式147可將呈DRAM型位址或DRAM型位址序列的形式的指令發送至DPU,且可控制進出DPU的資料移動。除了處置DPU至CPU及/或DPU至GPU通信之外,DPU驅動程式147亦可提供多DPU通信。
DPU編譯器149可將來自DPU庫145的DPU碼編譯成DPU指令,所述DPU指令呈由DPU驅動程式147使用以控制DPU的記憶體位址形式。由DPU編譯器149產生的DPU指令可以是對DPU中的一個及/或兩個列操作的單個指令、向量指令及/或所收集向量讀取操作指令。
舉例而言,DPU模組156可使用高速PCI(PCIe)介面用於通信,且多DPU模組158可使用雙行記憶體模組(DIMM)介面用於通信。除了DPU以外,DPU模組156亦包含控制器及一或多個DRAM晶片/模組。多DPU模組158可包含經組態以控制兩個或多於兩個DPU的控制器。
舉例而言,多DPU模組158中的DPU可經組態以具有 分散式DPU叢集架構,在分散式DPU叢集架構中,DPU經配置以使得可在DPU中的一或多者之間分佈/共用處理或任務。舉例而言,多DPU模組可具有可提供類人腦的神經網路(NN)容量的叢集架構。為了提供神經網路容量,叢集架構可經組態有多個DPU、各自包含多個DPU的多個DPU模組及/或各自包含多個DPU模組的多個DPU節點。叢集架構中的DPU中的每一者可經組態為全記憶體、全計算或組合(例如,混合型記憶體-計算架構)。
框架130可包含第一機器學習軟體程式庫框架132、第二機器學習軟體程式庫框架134,及/或可擴展至熟習此項技術者已知的一或多個其他開放原始碼框架136以啟用DPU。在範例實施例中,現有機器學習庫可用於框架。舉例而言,框架可包含Torch 7及/或Tensor Flow,或熟習此項技術者已知的一或多個任何其他適合框架。
在範例的實施例中,框架層130可經組態以向庫及驅動程式層140及硬體層150提供使用者友好介面。在一個實施例中,框架層130可提供與應用層120處的廣泛範圍的應用程式相容且使DPU硬體層150對於使用者透明的使用者友好介面。在另一實施例中,框架層130可包含添加定量功能至現有習知方法的框架擴展,現有習知方法諸如但不限於Torch7型應用程式及TensorFlow型應用程式。在一個實施例中,框架層130可包含將定量功能添加至訓練演算法。在另一實施例中,框架層130可提供對除法、乘法以及平方根的現有批次正規化方法的覆寫,以成為除法、乘法以及平方根的移位近似方法。在再一實施例中,框架層130可提供允許使用者設定用於計算的位元的數目的擴展。 在又一實施例中,框架層130可提供將來自DPU庫及驅動程式層140的多DPU API包覆至框架層130的能力,以使得使用者可類似於使用多個GPU而使用硬體層處的多個DPU。框架130的又另一特徵可允許使用者指派功能給硬體層150處的DPU抑或GPU。
可在框架之上實施一或多個應用程式120,應用程式可包含影像標記122、自驅動演算法124、人工智慧126及/或語音研究/識別128,及/或熟習此項技術者已知的任何其他適合且合乎需要的應用程式。
在一些實施例中,主機可針對DPU叢集架構中的每一分割而分割任務、以及分散/收集資料/任務。在一些實施例中,一或多個路由器可嵌入於DIMM控制器內部,且可根據異步通信協定而操作。在其他實施例中,路由器可安裝於DIMM或其他記憶體控制器外部(或與其分離)。
儘管主要參考DRAM(例如,3T1C或1T1C DRAM)來描述根據本發明的實施例,但本發明不限於此。舉例而言,在一些實施例中,可使用任何其他適合的記憶體而非DRAM來產生記憶體式處理單元(例如,記憶體單元)。
在包含加速器集區及記憶體集區的典型架構中,主機通常提供加速器與記憶體之間的介面。由於主機插入於加速器與記憶體之間的此架構,主機可產生加速器與記憶體之間的瓶頸。
為了減少或防止此瓶頸,在根據本發明的範例實施例中,主機並不位於加速器與記憶體之間。替代地,可使用多個DPU來實施加速器。舉例而言,每一DPU模組可包含多個DPU及一DPU控制器,DPU控制器可實施為系統單晶片(SoC)。另外,多 個DPU模組一起耦接至DPU路由器。DPU路由器可與DPU控制器實施於同一SoC中。然而,本發明不限於此,且控制器及路由器可實施於包含DPU控制器的SoC外部。另外,DPU模組中的每一者可包含DPU路由器,或單個DPU路由器,單個DPU路由器可由兩個或多於兩個DPU模組共用。
圖2是根據本發明的範例實施例的分散式DPU叢集架構200的示意性方塊圖。
在圖2的分散式DPU叢集架構200中,多個DPU模組202、204、208及DRAM模組206經由控制器及路由器210、212、214、216彼此耦接。儘管僅DRAM模組206展示為經組態為記憶體,但本發明不限於此,且DPU/DPU模組中的任一者可經組態為記憶體、為計算單元(或處理單元/處理器)或為混合型記憶體-計算單元。儘管DPU及DRAM可分別被稱作加速器及記憶體模組(或記憶體),但其彼此具有實質上相同的硬體結構,且DPU及DRAM可被視為分別針對計算及儲存以不同方式組態的DPU(或記憶體單元)。另外,根據範例實施例,DPU中的每一者可經重組態以用作加速器(用於計算)或用作記憶體(用於儲存),或經重組態以具有加速器及記憶體兩者的功能。
主機220亦經由控制器及路由器214中的一者耦接至DPU。架構200可被稱作主機中心架構,其中所有工作(例如,任務)由主機220產生。在此處,主機220將知曉網路上是何資源,且將經由一或多個控制器及路由器210、212、214、216將具體命令或數個具體命令及工作負載發送至具體DPU。在範例實施例中,效能可受主機220束縛,這是因為主機的職責是執行與排 程及映射相關的所有任務,而DPU僅執行計算及儲存。
舉例而言,當多個DPU位於一個伺服器/電腦/節點內部時,彼等DPU可直接彼此通信。對於不在同一伺服器/電腦/節點中的DPU,其可經由一或多個路由器及/或切換器(例如,控制器及路由器210、212、214、216)彼此通信,通信可經由諸如網際網路的一或多個通信路徑進行。
DPU模組中的每一者(例如,DPU模組202-1)包含耦接至同一DPU控制器(例如,控制器SoC)的多個DPU。同一DPU模組上的DPU經由DIMM內連接而耦接至DPU控制器,DIMM內連接可以是匯流排式連接(例如,階層匯流排式連接)。因此,可藉由DIMM SoC上控制器來控制同一DPU模組上的此等DPU,所述控制器與其控制的DPU安裝於同一DPU模組上。在此處,DPU中的控制器SoC可負責接收命令/資料及管理DPU模組中的DPU。
DPU模組可經由DIMM間連接彼此耦接,其中DPU模組耦接至記憶體控制器,記憶體控制器耦接至路由器。路由器可將DPU/DRAM耦接至記憶體/加速器網路中。
舉例而言,在圖2的分散式DPU叢集架構中,可藉由提供均勻合併式記憶體及加速器集區來避免記憶體與加速器之間的界面處的瓶頸。舉例而言,當主機220在網路的邊緣處耦接至控制器及路由器214時,在記憶體與加速器之間極少存在或不存在由主機220引起的瓶頸。舉例而言,記憶體及加速器的集區具有可撓性網路連接。另外,每一節點可經組態為加速器(DPU)抑或記憶體(DRAM)。在一些實施例中,每一節點可作為包含加速 器及記憶體兩者的特徵的加速器-記憶體混合物操作。舉例而言,每一節點可以是多個DPU模組的集合,且可包含具有多個DPU模組的伺服器,其中每一DPU模組可含有多個DPU裝置。
因此,在根據本發明的一或多個範例實施例的分散式DPU叢集架構中,提供均勻合併式記憶體及加速器集區以產生正常大規模平行處理器。在此處,每一節點中的資源可受硬體(例如,算術邏輯單元(ALU)的數目等)限制。換言之,ALU的有限數目可判定DPU可提供的最大記憶體容量或最大計算能力。
DPU叢集架構提供可重組態的記憶體/計算資源,且每一DPU節點中的所有資源可經組態為全記憶體、全計算單元或記憶體與計算單元的組合(或混合物)。以此方式,取決於每一節點處的儲存要求及/或計算要求,可防止或減少儲存資源及/或計算資源的浪費。這是因為節點中的每一者可視需要或使用者需要而在使用期間經組態或重組態以提供更多儲存資源或更多計算資源。
圖3是根據本發明的範例實施例的具有嵌入式路由器的分散式DPU叢集架構300的示意性方塊圖。圖3的架構300不同於圖2的架構200,區別在於路由器經組合至DPU控制器中。分散式DPU叢集架構300亦可被稱作主機中心架構。
類似於圖2的DPU叢集架構,在圖3中,可減少或避免加速器集區與記憶體集區之間的界面處的瓶頸,這是因為不存在定位於加速器集區與記憶體集區之間的界面處的主機。根據圖3的分散式DPU叢集架構300,多個DPU模組/DRAM模組302、304、306、312、314、316、322、324、326、332、334、336配置成列及行。當DPU模組312中的一者耦接至在網路的邊緣處的主 機350時,極少存在或不存在由主機350引起的瓶頸。
在根據本發明的範例實施例的主機中心架構中,起初,主機將針對不同DPU產生工作或工作部分。舉例而言,工作1(或工作部分1)可指派給DPU1,且工作2(或工作部分2)可指派給DPU2。接著,主機可將工作流中的工作1發送至DPU1。工作流亦可包含待發送至DPU2的工作2。當DPU1結束其工作時,DPU1可將結果直接發送至DPU2而不將結果發送回至主機,這是因為DPU1知曉下一步驟在哪(如由主機映射/排程)。舉例而言,當DPU1結束其工作時,其可將中間資料(或中間結果)直接發送至DPU2以用於其他計算。因此,DPU1不必將中間資料發送回至主機以供主機將接收到的中間資料發送至DPU2。因此,在圖3的DPU叢集架構300中,DPU節點可在無主機的情況下彼此通信。舉例而言,主機可僅發送要求DPU1將資料轉送至DPU2的命令或多個命令,且移動資料是SoC控制器的職責。此在根據範例實施例的圖2及圖3的主機中心架構中是可能的,這是因為主機知曉網路中的所有資源,且執行映射及排程是主機的職責。因此,主機可不必參與計算的每一步驟。根據本發明的某些其他範例實施例,提供系統架構,其中網路上沒有裝置必須知曉網路的外表或在網路上可獲得何資源。
如在圖3中可見,模組中僅一者(即,DRAM模組324)經組態為記憶體,而模組的剩餘部分經組態為處理模組/計算模組。在其他實施例中,模組中的一或多者可經組態為記憶體模組或混合型計算/記憶體模組。DPU/DRAM模組中的每一者包含多個DPU及一DPU控制器(即,控制器SoC),使得模組中的每一者 可經組態或重組態為DPU模組或DRAM模組。又,在同一DPU/DRAM模組內,DPU中的一或多者可經組態為記憶體,而DPU中的一或多個其他者可經組態為計算單元(或處理單元),即使所有DPU/DRAM彼此具有實質上相同的硬體結構。
舉例而言,在一些實施例中,藉由DIMM控制器SoC來實施路由器。另外,異步通信協定可用以確保恰當的DIMM間通信,其中可使用信號交握。在其他實施例中,可使用同步協定,諸如雙資料速率(double data rate;DDR)。因為主機350位於網路的一個邊緣而非位於DPU模組/DRAM模組之間,所以可產生較少的主機頻寬使用,且可減少或消除由主機引起的任何瓶頸。
在一些範例實施例中,儘管DPU/DRAM或DPU模組/DRAM模組配置成分散式DPU叢集架構,但其可仍由主機中心地控制。在此類實施例中,主機維持DPU/DRAM至任務映射資訊。任務映射資訊可呈軟體及/或驅動程式形式。在網路中,神經網路參數及其他有用資料可儲存於DRAM中,DRAM可在叢集中的節點中的一者中。
根據本發明的範例實施例,提供兩個單獨的主機中心架構/組態。在第一主機中心架構中,主機會將工作流中的所有工作負載轉送至第一DPU,且第一DPU會將工作負載的其餘部分及/或結果轉送至第二DPU。第二DPU將執行計算,且將結果及工作流中的工作負載的其餘部分轉送至第三DPU等,諸如此類。在第二主機中心架構中,在每一步驟處,主機讀取回傳資料,且產生下一工作且將下一工作連同中間資料(例如,先前DPU中所執行的計算的結果)發送至下一或多個DPU。在其他範例實施例中, 可提供隨意控制,其中一或多個DPU能夠在無主機進行映射/排程的情況下產生包含任務的工作流,且甚至可以不需要主機。可使用圖1、圖2以及圖3中的任一個中所說明的適合系統/硬體架構來實施以上範例實施例中的每一者。
圖4是根據本發明的範例實施例的由主機進行的分散式DPU叢集叢集的流程圖,由主機進行的集中控制在其中實施。
在圖4的框400中,主機接收任務請求。在框402中,主機檢查儲存於記憶體中的DPU/DRAM至任務映射表。在任務映射表檢查過程中,主機尋找儲存任務的參數的DRAM。舉例而言,對於神經網路應用,主機可尋找具有神經網路參數的DRAM。主機亦尋找可用的DPU資源。
在框404中,若DPU無法個別地結束工作,則主機將任務分割至兩個或多於兩個DPU資源。舉例而言,任務可分割成任務1、任務2等,且所述任務可指派給兩個或多於兩個的不同DPU,例如,任務1指派給DPU1,任務2指派給DPU2及/或其類似者。
在框406中,主機產生工作流,例如,主機為每一任務及/或任務的每一經分割部分指派資源數目及任務數目(例如,(資源#,工作#))。舉例而言,工作流(work flow;WF)可具有以下格式:WF=[(資源1,任務1)、(資源2,任務2)、(資源3,任務3)...(資源N,任務N)、(主機,完成)]及/或其類似者。在此處,資源可指DPU/DRAM(或DPU/DRAM模組)。在根據本發明的範例實施例中,工作流可具有熟習此項技術者已知的任何其他適合的格式。
在框408中,主機將工作流發送至連接至主機的DPU/DRAM。在框410中,DPU/DRAM(或DPU/DRAM模組)讀取工作流封裝。若工作流頂部的「資源」匹配當前資源,則其執行工作流頂部的「任務」,且接著自工作流移除(資源#,工作#)對。接著將工作流的剩餘部分轉送至一或多個其他資源(例如,DPU)。若不存在匹配,則DPU/DRAM朝向資源1轉送工作流,資源1可以是下一(資源#,工作#)對中的資源。然而,本發明不限於任何特定方案,且可使用熟習此項技術者已知的任何適合方案。一旦工作流完成,則主機判定所有任務完成,此意謂已完成自0至N的所有(資源#,工作#)對。
圖5是根據本發明的範例實施例的分散式DPU叢集控制的流程圖,其中主機在每一計算步驟中起到積極作用。
在圖5的框500中,主機將工作請求發送至DPU,接著在框502中,主機自DPU讀取計算的結果,或DPU可將結果發送回至主機。接著在框504中,主機將工作請求及/或來自DPU的結果發送至下一DPU,且在框506中自下一DPU讀取計算的結果等,諸如此類,直至在框508中,所有工作完成為止。在此主機中心架構中,主機參與每一計算步驟,且更主動地控制DPU之間的工作流及資料流。
不同於圖4及圖5的流程圖中所描繪的主機中心架構的集中控制,根據本發明的一或多個範例實施例,在無集中控制的情況下或在較少或最少集中控制的情況下,以隨意(ad hoc)方式來控制分散式DPU叢集架構。圖6是根據本發明的範例實施例的分散式DPU叢集控制的流程圖,隨意控制在其中實施。舉例而言, 在根據一些範例實施例的隨意控制機制中,每一DPU可產生任務(或任務的工作流),如圖6的框600中所展示。另外,可能不需要資源表,且可能不存在DPU/DRAM至任務映射資訊應儲存於記憶體中的要求。根據此隨意(ad hoc)方案,如框602中所展示,產生任務(或任務的工作流)的DPU(例如,DPU 0)結束任務或任務的一部分,接著如框604中所展示,將剩餘的任務及/或任務的剩餘部分(例如,工作流的剩餘部分)發送至具有路由資訊的一或多個鄰近DPU節點(例如,下一DPU或DPU 1、2、3等)。接著,在框606中,下一(或多個)DPU結束任務及/或任務的部分。如框608中所展示,重複結束任務(或其部分)及發送剩餘任務(或其部分)的程序,直至所有任務完成,或任務指派失敗(例如,不再有資源可用)為止。
隨意控制的特徵中的一些是:不需要主機伺服器,不需要維持大叢集資訊,且可支援巨大叢集(例如,可能多達現有網路中可用以產生大小類似於人腦的神經網路的神經網路的DPU的100倍至1,000倍)。然而,除非控制是集中式的,否則資源管理可次於最佳,且最終可能發生失敗。失敗的重要性主要取決於應用。用於一些應用,失敗可能是決定性的,而在其他應用中,失敗可能並不具有同樣的決定性。舉例而言,在模仿人腦行為的人工智慧(artificial intelligence;AI)應用中,AI應用可能記得某事或不記得某事。又,AI應用可能在一時間記得某事,但無法在另一時間想起某事。若根據本發明的實施例的DPU系統架構用於大型神經網路應用,則一些失敗可能是可接受的。
在另外其他實施例中,分散式DPU叢集架構可藉由混合 型集中控制及隨意控制操作。舉例而言,可由主機來控制DPU及/或DPU模組中的一些,而可以隨意方式來控制DPU及/或DPU模組中的其他者。對於另一實例,DPU及/或DPU模組中的至少一些可為可重組態的,使得其控制可視需要或在必要時在集中控制與隨意控制之間來回切換。
因此,本發明的實施例針對配置了多個DRAM式處理單元(DPU)的叢集架構及具有可提供類人腦的神經網路容量的分散式架構。DPU叢集提供可重組態的記憶體/計算資源,使得DPU節點中的所有資源可經組態為全記憶體、全計算或組合式的(即,混合型記憶體-計算單元)。
在具有主機中心架構的一些實施例中,主機可針對每一分割而分割任務、以及/或分散/收集資料/任務。在此處,主機可針對DPU產生且發送工作流以結束任務,且將剩餘任務及/或所得資料轉送至其他DPU,或主機可藉由接收所得資料及將所得資料與任務一起轉送至其他DPU來控制每一計算步驟。在其他實施例中,叢集架構的控制可以隨意方式提供,其中DPU中的一或多者可產生任務/工作流、完成任務及/或將任務/工作流的剩餘部分發送至網路中的其他DPU。在另其他實施例中,可實施集中控制與隨意控制的混合以控制DPU/DRAM叢集架構。路由器可根據異步通信協定而操作,且可嵌入於DIMM控制器內部。
應理解,儘管在本文中可使用術語「第一」、「第二」、「第三」等描述各種元件、組件、區域、層及/或區段,但此等元件、組件、區域、層及/或區段不應受此等術語限制。此等術語用以區別一個元件、組件、區域、層或區段與另一元件、組件、區域、 層或區段。因此,下文論述的第一元件、組件、區域、層或區段可被稱為第二元件、組件、區域、層或區段而不會背離本發明的精神及範疇。
可利用任何適合的硬體(例如,特殊應用積體電路)、韌體(例如,DSP或FPGA)、軟體或軟體、韌體與硬體的適合組合來實施本文中所描述的例如根據本發明的實施例的相關裝置或組件(或數個相關裝置或組件)。舉例而言,相關裝置的各種組件可形成於一個積體電路(integrated circuit;IC)晶片上或單獨IC晶片上。另外,相關裝置的各種組件可實施於可撓性印刷電路膜、帶載體封裝(tape carrier package;TCP)、印刷電路板(printed circuit board;PCB)上,或與一或多個電路及/或其他裝置形成於同一基板上。另外,相關裝置的各種組件可以是程序或執行緒,程序或執行緒在一或多個處理器上執行、在一或多個計算裝置中、執行電腦程式指令且與其他系統組件互動以用於執行本文中所描述的各種功能性。電腦程式指令儲存於記憶體中,記憶體可使用諸如隨機存取記憶體(random access memory;RAM)的標準記憶體裝置實施於計算裝置中。電腦程式指令亦可儲存於諸如CD-ROM、快閃記憶體磁碟機或其類似者的其他非暫時性電腦可讀媒體中。又,熟習此項技術者應認識到,各種計算裝置的功能性可組合或整合至單個計算裝置中,或可跨一或多個其他計算裝置分散特定計算裝置的功能性,而不會背離本發明的範例實施例的精神及範疇。
另外,亦應理解,當一個元件、組件、區域、層及/或區段被稱作「在」兩個元件、組件、區域、層及/或區段「之間」時, 一個元件、組件、區域、層及/或區段可以是兩個元件、組件、區域、層及/或區段之間的僅有元件、組件、區域、層及/或區段,或亦可存在一或多個介入元件、組件、區域、層及/或區段。
本文中所使用的術語是用於描述特定實施例的目的,且並不意欲是本發明的限制。如本文中所使用,除非上下文另外清晰地指示,否則單數形式「一」意欲亦包含複數形式。應進一步理解,術語「包括」及「包含」在用於本說明書中時指定所陳述特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組的存在或添加。
如本文中所使用,術語「及/或」包含相關聯所列項目中的一或多者中的任何及所有組合。諸如「……中的至少一者」、「……中的一者」或「選自……」的表達在先於元件清單之前時修飾整個元件清單,而不是修飾清單中的個別元件。另外,在描述本發明的實施例時使用「可」指「本發明的一或多個實施例」。
如本文中所使用,術語「使用(use/using/used)」可分別被視為與術語「利用(utilize/utilizing/utilized)」同義。
關於本發明的一或多個實施例所描述的特徵可供與本發明的其他實施例的特徵結合使用。舉例而言,第一實施例中所描述的特徵可與第二實施例中所描述的特徵組合以形成第三實施例,即使第三實施例可能未在本文中具體描述。
熟習此項技術者應亦認識到,程序可經由硬體、韌體(例如經由ASIC)或以軟體、韌體及/或硬體的任何組合來執行。此外,程序的步驟的序列不是固定的,而是可變更成如由熟習此項技術 者認可的任何所要序列。經變更序列可包含所有步驟或所述步驟的一部分。
儘管已關於某些具體實施例描述了本發明,但熟習此項技術者不難設計所描述實施例的變化,所述變化決不背離本發明的範疇及精神。此外,對於各種領域中具通常知識者,本文中所描述的本發明自身將針對其他應用建議其他任務的解決方案及調適。申請人的目的是藉由申請專利範圍涵蓋本發明的所有此類用途及可對在本文中出於揭露目的而選擇的本發明的實施例作出的彼等改變及修改,而不背離本發明的精神及範疇。因此,本發明的當前實施例應在所有態樣中被視為說明性且非限制性的,本發明的範疇應由所附申請專利範圍及其等效物指示。
100:電腦處理架構
110:軟體堆疊
120:應用程式/應用層
122:影像標記
124:自驅動演算法
126:人工智慧
128:語音研究/識別
130:框架/框架層
132:第一機器學習軟體程式庫框架
134:第二機器學習軟體程式庫框架
136:開放原始碼框架
140:庫及驅動程式/庫及驅動程式層
142:神經網路庫(NNL)
144:張量處理單元(TPU)驅動程式
145:DRAM式處理單元(DPU)庫
147:DPU驅動程式
149:DPU編譯器
150:硬體/硬體層
152:圖形處理單元(GPU)模組
154:張量處理單元(TPU)模組
156:DRAM式處理單元(DPU)模組
158:多DPU模組

Claims (20)

  1. 一種處理器,其包括:多個記憶體單元,所述記憶體單元中的每一者包括多個可程式化記憶體胞元,其中所述記憶體單元中的每一者經組態以重組態作為記憶體中的一者、作為計算單元或作為混合型記憶體-計算單元操作,其中所述記憶體單元經組態以基於儲存要求或計算要求中的至少一者重組態作為記憶體、計算單元及混合型記憶體-計算單元操作。
  2. 如申請專利範圍第1項所述的處理器,其中所述記憶體單元中的至少一者經組態以自主機接收任務。
  3. 如申請專利範圍第1項所述的處理器,其中所述記憶體單元經組態以由主機控制,所述主機經組態以執行針對所述記憶體單元的任務分割、至所述記憶體單元的資料分配、自所述記憶體單元的資料收集或至所述記憶體單元的任務分配中的至少一者。
  4. 如申請專利範圍第1項所述的處理器,其中所述處理器更包括經組態以儲存記憶體單元-任務映射資訊的儲存單元。
  5. 如申請專利範圍第1項所述的處理器,其中所述記憶體單元中的每一者包括動態隨機存取記憶體。
  6. 如申請專利範圍第1項所述的處理器,其中經組態為計算單元的所述記憶體單元經組態以在所述計算單元中無一者可用以或能夠整體地執行任務的情況下,各自執行所述任務的對應部分。
  7. 如申請專利範圍第1項所述的處理器,其中所述多個記憶體單元配置成可擴展叢集架構。
  8. 如申請專利範圍第1項所述的處理器,其更包括多個記憶體控制器,所述多個記憶體控制器中的每一者經組態以控制所述記憶體單元中的一或多者。
  9. 如申請專利範圍第8項所述的處理器,其更包括用於在所述記憶體單元之間路由工作流的多個路由器。
  10. 如申請專利範圍第9項所述的處理器,其中所述路由器中的至少一者嵌入於所述記憶體控制器的對應記憶體控制器中。
  11. 一種在包括多個記憶體單元的分散式計算系統中控制工作流的方法,所述方法包括:接收所述工作流,所述工作流包括待由所述記憶體單元中的一或多者執行的任務,其中所述記憶體單元經組態以作為記憶體中的一者、作為計算單元或作為混合型記憶體-計算單元操作且經組態以基於所述工作流的儲存要求或計算要求中的至少一者重組態作為所述記憶體中的一者、計算單元及混合型記憶體-計算單元操作中的不同者;由所述記憶體單元中的一者根據所述工作流來執行所述任務或所述任務的一部分;以及在完成所述任務或所述任務的所述部分之後,由所述記憶體單元中的所述一者將所述工作流的剩餘部分轉送至所述記憶體單元中的另一者。
  12. 如申請專利範圍第11項所述的控制工作流的方法,其 中所述工作流由接收任務請求的主機產生,且提供至所述記憶體單元中的至少一者。
  13. 如申請專利範圍第11項所述的控制工作流的方法,其中所述工作流由所述記憶體單元中的一或多者產生。
  14. 如申請專利範圍第11項所述的控制工作流的方法,其更包括取決於資源可用性而將所述記憶體單元中的一或多者重組態為計算單元或記憶體。
  15. 如申請專利範圍第11項所述的控制工作流的方法,其中異步通信協定用以在所述記憶體單元之間通信。
  16. 如申請專利範圍第11項所述的控制工作流的方法,其中所述工作流的所述剩餘部分經轉送至所述記憶體單元中的後續記憶體單元,直至所述工作流中的所有任務完成或以失敗告終為止。
  17. 如申請專利範圍第11項所述的控制工作流的方法,其中在所述記憶體單元中的一者無法全部完成所述任務的情況下,分割所述任務。
  18. 一種在包括多個記憶體單元的分散式計算系統中控制工作流的方法,所述方法包括:自主機接收由所述記憶體單元中的一者執行第一任務的第一請求,其中所述記憶體單元經組態以基於對應於所述第一請求的儲存要求或計算要求中的至少一者重組態作為記憶體、計算單元及混合型記憶體-計算單元操作;由所述記憶體單元中的所述一者執行所述第一任務;將所述第一任務的結果自所述記憶體單元中的所述一者提供 至所述主機;以及自所述主機接收由所述記憶體單元中的另一者執行的第二任務的第二請求,其中所述記憶體單元經組態以基於對應於所述第二請求的儲存要求或計算要求中的至少一者重組態。
  19. 如申請專利範圍第18項所述的控制工作流的方法,其中所述記憶體單元中的所述另一者進一步自所述主機接收所述第一任務的所述結果。
  20. 如申請專利範圍第18項所述的控制工作流的方法,其中所述分散式計算系統更包括所述主機,所述主機經組態以發送任務且讀取所述任務的結果。
TW106130360A 2016-10-27 2017-09-06 處理器及控制工作流的方法 TWI714803B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201662413973P 2016-10-27 2016-10-27
US201662413977P 2016-10-27 2016-10-27
US62/413,977 2016-10-27
US62/413,973 2016-10-27
US201662414426P 2016-10-28 2016-10-28
US62/414,426 2016-10-28
US201762485370P 2017-04-13 2017-04-13
US62/485,370 2017-04-13
US15/595,887 US10732866B2 (en) 2016-10-27 2017-05-15 Scaling out architecture for DRAM-based processing unit (DPU)
US15/595,887 2017-05-15

Publications (2)

Publication Number Publication Date
TW201816595A TW201816595A (zh) 2018-05-01
TWI714803B true TWI714803B (zh) 2021-01-01

Family

ID=62021367

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106130360A TWI714803B (zh) 2016-10-27 2017-09-06 處理器及控制工作流的方法

Country Status (5)

Country Link
US (2) US10732866B2 (zh)
JP (1) JP6920170B2 (zh)
KR (1) KR102253582B1 (zh)
CN (1) CN108009119B (zh)
TW (1) TWI714803B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163707B2 (en) * 2018-04-23 2021-11-02 International Business Machines Corporation Virtualization in hierarchical cortical emulation frameworks
EP3798850A4 (en) * 2018-06-27 2022-03-23 Shanghai Cambricon Information Technology Co., Ltd ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM
US10915470B2 (en) * 2018-07-23 2021-02-09 SK Hynix Inc. Memory system
WO2020078470A1 (zh) * 2018-10-18 2020-04-23 上海寒武纪信息科技有限公司 片上网络数据处理方法及装置
US11327808B2 (en) * 2018-11-13 2022-05-10 Western Digital Technologies, Inc. Decentralized data processing architecture
US10884663B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cells
US10884664B2 (en) * 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cell
US11157692B2 (en) * 2019-03-29 2021-10-26 Western Digital Technologies, Inc. Neural networks using data processing units
CN111857061A (zh) * 2019-04-28 2020-10-30 北京国电智深控制技术有限公司 一种计算任务实现方法、装置及系统、存储介质
TWI742774B (zh) * 2020-07-22 2021-10-11 財團法人國家實驗研究院 運算系統及其主機資源分配方法
CN116204456A (zh) * 2021-11-30 2023-06-02 华为技术有限公司 数据访问方法及计算设备
CN114201421B (zh) * 2022-02-17 2022-05-10 苏州浪潮智能科技有限公司 一种数据流处理方法、存储控制节点及可读存储介质
CN116069480B (zh) * 2023-04-06 2023-06-13 杭州登临瀚海科技有限公司 一种处理器及计算设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4068305A (en) * 1975-05-12 1978-01-10 Plessey Handel Und Investments Ag Associative processors
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US20050027928A1 (en) * 2003-07-31 2005-02-03 M-Systems Flash Disk Pioneers, Ltd. SDRAM memory device with an embedded NAND flash controller
US7401261B1 (en) * 2003-12-19 2008-07-15 Unisys Corporation Automatic analysis of memory operations using panel dump file
US20090164789A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Authenticated memory and controller slave
US20120017037A1 (en) * 2010-04-12 2012-01-19 Riddle Thomas A Cluster of processing nodes with distributed global flash memory using commodity server technology
US20160275017A1 (en) * 2015-03-20 2016-09-22 Kabushiki Kaisha Toshiba. Memory system

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
EP0570729A3 (en) 1992-05-22 1994-07-20 Ibm Apap i/o programmable router
CN1120373A (zh) 1993-03-17 1996-04-10 蔡卡得公司 基于随机存储存贮器(ram)的可配置阵列
US5847577A (en) 1995-02-24 1998-12-08 Xilinx, Inc. DRAM memory cell for programmable logic devices
US6026478A (en) 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6760833B1 (en) * 1997-08-01 2004-07-06 Micron Technology, Inc. Split embedded DRAM processor
JPH11338767A (ja) 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US6424658B1 (en) 1999-01-29 2002-07-23 Neomagic Corp. Store-and-forward network switch using an embedded DRAM
AU5490200A (en) 1999-06-30 2001-01-31 Sun Microsystems, Inc. Active dynamic random access memory
US6555398B1 (en) * 1999-10-22 2003-04-29 Magic Corporation Software programmable multiple function integrated circuit module
US20030105799A1 (en) 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US6947348B2 (en) 2003-07-15 2005-09-20 International Business Machines Corporation Gain cell memory having read cycle interlock
US20110026323A1 (en) 2009-07-30 2011-02-03 International Business Machines Corporation Gated Diode Memory Cells
US8478947B2 (en) * 2005-07-05 2013-07-02 Arm Limited Memory controller
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8341362B2 (en) 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US8566669B2 (en) 2010-07-07 2013-10-22 Ocz Technology Group Inc. Memory system and method for generating and transferring parity information
US8379433B2 (en) 2010-09-15 2013-02-19 Texas Instruments Incorporated 3T DRAM cell with added capacitance on storage node
WO2013062596A1 (en) 2011-10-28 2013-05-02 Hewlett-Packard Development Company, L.P. Row shifting shiftable memory
JP6106043B2 (ja) 2013-07-25 2017-03-29 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US9921980B2 (en) * 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
KR20160083926A (ko) * 2013-11-07 2016-07-12 넷리스트 인코포레이티드 하이브리드 메모리 모듈, 및 그를 동작시키는 시스템 및 방법
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
GB2530261B (en) * 2014-09-16 2016-08-03 Ibm Memory and processor hierarchy to improve power efficiency
US9954533B2 (en) 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US9697877B2 (en) 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory
US10430618B2 (en) * 2015-10-09 2019-10-01 George Mason University Vanishable logic to enhance circuit security
CN105573959B (zh) * 2016-02-03 2018-10-19 清华大学 一种计算存储一体的分布式计算机

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4068305A (en) * 1975-05-12 1978-01-10 Plessey Handel Und Investments Ag Associative processors
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US20050027928A1 (en) * 2003-07-31 2005-02-03 M-Systems Flash Disk Pioneers, Ltd. SDRAM memory device with an embedded NAND flash controller
US7401261B1 (en) * 2003-12-19 2008-07-15 Unisys Corporation Automatic analysis of memory operations using panel dump file
US20090164789A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Authenticated memory and controller slave
US20120017037A1 (en) * 2010-04-12 2012-01-19 Riddle Thomas A Cluster of processing nodes with distributed global flash memory using commodity server technology
US20160275017A1 (en) * 2015-03-20 2016-09-22 Kabushiki Kaisha Toshiba. Memory system

Also Published As

Publication number Publication date
CN108009119B (zh) 2023-04-11
TW201816595A (zh) 2018-05-01
CN108009119A (zh) 2018-05-08
KR20180046363A (ko) 2018-05-08
US10732866B2 (en) 2020-08-04
US20180121120A1 (en) 2018-05-03
US11934669B2 (en) 2024-03-19
JP6920170B2 (ja) 2021-08-18
US20200363966A1 (en) 2020-11-19
KR102253582B1 (ko) 2021-05-18
JP2018073414A (ja) 2018-05-10

Similar Documents

Publication Publication Date Title
TWI714803B (zh) 處理器及控制工作流的方法
Choquette et al. Nvidia a100 tensor core gpu: Performance and innovation
US11687763B2 (en) Method, apparatus and computer program to carry out a training procedure in a convolutional neural network
US8400458B2 (en) Method and system for blocking data on a GPU
US10719470B2 (en) Reconfigurable fabric direct memory access with multiple read or write elements
US7647590B2 (en) Parallel computing system using coordinator and master nodes for load balancing and distributing work
US10469588B2 (en) Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence
KR20210057184A (ko) 이종 cpu/gpu 시스템에서 데이터 흐름 신호 처리 애플리케이션 가속화
US20180181503A1 (en) Data flow computation using fifos
JP2021511576A (ja) ディープラーニングアクセラレータシステム及びその方法
US20200167309A1 (en) Reconfigurable fabric configuration using spatial and temporal routing
US20220121912A1 (en) Data processing method and apparatus
KR20210108749A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
JP2024020271A (ja) 機械学習ワークロードのためのタスクスケジューリング
HeydariGorji et al. Stannis: low-power acceleration of dnn training using computational storage devices
Grasso et al. A uniform approach for programming distributed heterogeneous computing systems
Diogo et al. Towards heterogeneous computing without heterogeneous programming
WO2020112992A1 (en) Reconfigurable fabric configuration using spatial and temporal routing
US11409839B2 (en) Programmable and hierarchical control of execution of GEMM operation on accelerator
Eleliemy et al. Dynamic loop scheduling using MPI passive-target remote memory access
US20200356376A1 (en) Dynamic distribution of container images
US20240176759A1 (en) Machine learning parallelization method using host cpu with multi-socket structure and apparatus therefor
WO2022088171A1 (en) Neural processing unit synchronization systems and methods
US20240054099A1 (en) Cluster-Based Placement and Routing of Memory Units and Compute Units in a Reconfigurable Computing Grid
Huang et al. Performance optimization of High-Performance LINPACK based on GPU-centric model on heterogeneous systems