TW201723934A - 類神經網路處理器中之批次處理 - Google Patents

類神經網路處理器中之批次處理 Download PDF

Info

Publication number
TW201723934A
TW201723934A TW106111273A TW106111273A TW201723934A TW 201723934 A TW201723934 A TW 201723934A TW 106111273 A TW106111273 A TW 106111273A TW 106111273 A TW106111273 A TW 106111273A TW 201723934 A TW201723934 A TW 201723934A
Authority
TW
Taiwan
Prior art keywords
layer
input
neural network
inputs
weight
Prior art date
Application number
TW106111273A
Other languages
English (en)
Other versions
TWI622939B (zh
Inventor
克里福德 楊雷金納德
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 TW201723934A publication Critical patent/TW201723934A/zh
Application granted granted Critical
Publication of TWI622939B publication Critical patent/TWI622939B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本發明揭示包含編碼在電腦儲存媒體上之電腦程式用於針對複數個輸入之各者產生一各自類神經網路輸出之方法、系統及設備,該方法包括對於類神經網路層之各者:接收複數個輸入以在類神經網路層處進行處理;自該複數個輸入形成一或多個輸入批次,每一批次具有至多類神經網路層之各自批次大小之一輸入數目;選擇該一或多個輸入批次中之數個輸入批次進行處理,其中該一或多個批次中之該數個批次中之該等輸入之一計數大於或等於序列中之一後續層之該各自相關聯之批次大小;及處理該一或多個輸入批次中之該數個輸入批次以產生該各自類神經網路層輸出。

Description

類神經網路處理器中之批次處理
本說明書係關於計算硬體中之類神經網路推理。 類神經網路係採用類神經元之一或多個層以針對一經接收輸入產生一輸出(例如,一分類)之機器學習模型。一些類神經網路除一輸出層之外亦包含一或多個隱藏層。每一隱藏層之輸出用作網路中之下一層(即,網路之下一隱藏層或輸出層)之輸入。網路之每一層根據一各自參數集合之當前值自一經接收輸入產生一輸出。 傳統上,一些類神經網路系統連續計算推理。即,當針對多個輸入計算推理時,類神經網路系統可透過類神經網路層之各者處理每一輸入以在處理下一輸入之前針對該輸入產生輸出。
一般而言,本說明書描述一種計算類神經網路推理之專用硬體電路。 一般而言,本說明書中描述之標的物之一個發明態樣可以包含針對複數個輸入之各者產生一各自類神經網路輸出之動作之方法體現,其中該產生包括透過複數個類神經網路層之各者處理每一輸入以針對該輸入產生該各自類神經網路輸出,其中該等類神經網路層以一序列配置,且其中每一類神經網路層具有一各自批次大小,該方法包括對於該等類神經網路層之各者:接收複數個輸入以在該類神經網路層處進行處理;自該複數個輸入形成一或多個輸入批次,每一批次具有至多該類神經網路層之該各自批次大小之一輸入數目;選擇該一或多個輸入批次中之數個輸入批次進行處理,其中該一或多個批次中之該數個批次中之該等輸入之一計數大於或等於該序列中之一後續層之該各自相關聯之批次大小;及處理該一或多個輸入批次中之該數個輸入批次以產生該各自類神經網路層輸出。 實施方案可包含以下特徵之一或多者。該各自批次大小係至少基於一權重重複使用值,該權重重複使用值表示使在一矩陣計算單元處使用權重輸入計算輸出值之一時間長於自記憶體載入該等權重輸入之一時間而需要重複使用該等權重輸入之一次數。其中該權重重複使用值係至少基於儲存該等權重輸入之該記憶體之一時脈速率。每一批次大小係至少基於該權重重複使用值除以重複使用該各自層之權重輸入之次數。該複數個類神經網路層係在一矩陣處理單元處進行處理,其中處理該一或多個輸入批次中之該數個輸入批次包括使用該矩陣計算單元針對每一輸入計算累加值。該權重重複使用值係基於該矩陣計算單元內部之算術單元之一數目。每一輸入對應於一相異影像資源。自該一或多個層輸出形成一批次以在該後續層處進行處理。針對每一輸出產生一對應推理。 本說明書中描述之標的物之特定實施例可經實施以實現以下優點之一或多者。專用硬體電路可藉由對多個獨立輸入重複使用一給定層之權重輸入而針對具有多個層之一類神經網路有效地執行計算。特定言之,多次重複使用該等權重輸入使得多次重複使用該等權重輸入之一計算時間大於自記憶體存取新的權重輸入之一提取時間,藉此最大化該電路中之處理量且避免該電路停止運作。即使在每一層處不同次數地重複使用權重輸入,該電路亦可有效地執行該計算。 在以下隨附圖式及描述中陳述本說明書之標的物之一或多項實施例之細節。根據描述、圖式及申請專利範圍將明白標的物之其他特徵、態樣及優點。
具有多個層之一類神經網路可用於計算推理。例如,給定一輸入,類神經網路可計算針對輸入之一推理。類神經網路藉由透過類神經網路之層之各者處理輸入而計算此推理。特定言之,類神經網路層可以一序列配置,每一層具有一各自權重集合。每一層接收一輸入並根據該層之權重集合處理輸入以產生一輸出。該輸出可用作下一類神經網路層處之一輸入。 因此,為自一經接收輸入計算一推理,類神經網路接收輸入並透過該序列中之類神經網路層之各者處理該輸入以產生推理,其中來自一個類神經網路層之輸出被提供為下一類神經網路層之輸入。至一類神經網路層之資料輸入(例如,至類神經網路之輸入或低於該序列中之層的層至一類神經網路層之輸出)可稱作至層之激發輸入。 在一些實施方案中,類神經網路之層依一有向圖結構予以配置。即,任何特定層可接收多個輸入、多個輸出或兩者。類神經網路之層亦可經配置使得一層之一輸出可作為一輸入發送回至一先前層。 圖1係用於使用一專用硬體電路對一類神經網路之一給定層執行一計算之一例示性程序100之一流程圖。為了方便起見,將關於具有執行方法100之一或多個電路之一系統描述方法100。可對類神經網路之每一層執行方法100以自一經接收輸入計算一推理。 系統接收權重輸入集合(步驟102)及激發輸入集合(步驟104)用於給定層。可分別自專用硬體電路之動態記憶體及一統一緩衝器(unified buffer)接收權重輸入集合及激發輸入集合。在一些實施方案中,可自統一緩衝器接收權重輸入集合及激發輸入集合兩者。 系統使用專用硬體電路之一矩陣乘法單元自權重輸入及激發輸入產生累加值(步驟106)。在一些實施方案中,累加值係權重輸入集合與激發輸入集合之點積。即,對於一個權重集合,系統可將每一權重輸入與每一激發輸入相乘並將乘積加總在一起以形成一累加值。系統接著可計算其他權重集合與其他激發輸入集合之點積。 系統可使用專用硬體電路之一向量計算單元自累加值產生一層輸出(步驟108)。在一些實施方案中,向量計算單元將一激發函數應用至累加值。層之輸出可經儲存在統一緩衝器中以用作至類神經網路中之一後續層之一輸入或可用於判定推理。當一經接收輸入已透過類神經網路之每一層處理以產生經接收輸入之推理時,系統完成處理類神經網路。 圖2展示用於執行類神經網路計算之一例示性專用積體電路200。系統200包含一主機介面202。主機介面202可接收包含用於一類神經網路計算之組態資訊之指令。組態資訊可包含以下至少一或多項:應處理的層之數目、用於層之每一層之對應權重輸入集合、一初始激發輸入集合(即,至類神經網路之輸入(推理由其計算))、每一層之對應輸入及輸出大小、用於類神經網路計算之一步幅值及待處理之層之一類型(例如,一卷積層或一完全連接層)。 主機介面202可將指令發送至一定序器206,該定序器206將指令轉換為控制電路以執行類神經網路計算之低階控制信號。在一些實施方案中,控制信號調節電路中之資料流(例如,權重輸入集合及激發輸入集合如何流動通過電路)。定序器206可將控制信號發送至一統一緩衝器208、一矩陣計算單元212及一向量計算單元214。在一些實施方案中,定序器206亦將控制信號發送至一直接記憶體存取引擎204及動態記憶體210。在一些實施方案中,定序器206係產生時脈信號之一處理器。定序器206可使用時脈信號之時序以在適當時間將控制信號發送至電路200之每一組件。在一些其他實施方案中,主機介面202接受來自一外部處理器之一時脈信號。 主機介面202可將權重輸入集合及初始激發輸入集合發送至直接記憶體存取引擎204。直接記憶體存取引擎204可將激發輸入集合儲存在統一緩衝器208處。在一些實施方案中,直接記憶體存取將權重集合儲存至動態記憶體210,該動態記憶體210可為一記憶體單元。在一些實施方案中,動態記憶體經定位遠離電路。 統一緩衝器208係一記憶體緩衝器。其可用於儲存來自直接記憶體存取引擎204之激發輸入集合及向量計算單元214之輸出。直接記憶體存取引擎204亦可自統一緩衝器208讀取向量計算單元214之輸出。 動態記憶體210及統一緩衝器208可分別將權重輸入集合及激發輸入集合發送至矩陣計算單元212。在一些實施方案中,矩陣計算單元212係二維脈動陣列。矩陣計算單元212亦可為一維脈動陣列或可執行數學運算(例如,乘法及加法)之其他電路。在一些實施方案中,矩陣計算單元212係一通用矩陣處理器。 矩陣計算單元212可處理權重輸入及激發輸入並將輸出之一向量提供至向量計算單元214。在一些實施方案中,矩陣計算單元將輸出之向量發送至統一緩衝器208,該統一緩衝器208將輸出之向量發送至向量計算單元214。向量計算單元可處理輸出之向量並將經處理輸出之一向量儲存至統一緩衝器208。例如,向量計算單元214可將一非線性函數應用至矩陣計算單元之輸出(例如,累加值之一向量)以產生激發值。在一些實施方案中,向量計算單元214產生標準化值、匯集值或兩者。經處理輸出之向量可用作至矩陣計算單元212之激發輸入(例如,用於類神經網路中之一後續層)。下文參考圖3及圖4更詳細地描述矩陣計算單元212。 圖3展示包含一矩陣計算單元之一例示性架構300。矩陣計算單元係二維脈動陣列306。陣列306包含多個胞元304。在一些實施方案中,脈動陣列306之一第一維度320對應於胞元之行,且脈動陣列306之一第二維度322對應於胞元之列。脈動陣列具有的列可多於行、具有的行可多於列或具有的行及列的數目相等。 在經圖解說明之實例中,值載入器302將激發輸入發送至陣列306之列且一權重提取器介面308將權重輸入發送至陣列306之行。然而,在一些其他實施方案中,將激發輸入傳送至陣列306之行且將權重輸入傳送至陣列306之列。 值載入器302可自一統一緩衝器(例如,圖2之統一緩衝器208)接收激發輸入。每一值載入器可將一對應激發輸入發送至陣列306之一相異最左胞元。最左胞元可為沿陣列306之一最左行之一胞元。例如,值載入器312可將一激發輸入發送至胞元314。值載入器亦可將激發輸入發送至一相鄰值載入器,且可在陣列306之另一最左胞元處使用激發輸入。此允許激發輸入移位以在陣列306之另一特定胞元中使用。 權重提取器介面308可自一記憶體單元(例如,圖2之動態記憶體210)接收權重輸入。權重提取器介面308可將一對應權重輸入發送至陣列306之一相異最頂部胞元。最頂部胞元可為沿陣列306之一最頂部列之一胞元。例如,權重提取器介面308可將權重輸入發送至胞元314及316。 在一些實施方案中,一主機介面(例如,圖2之主機介面202)使激發輸入沿一個維度移位(例如,移位至右側)貫穿陣列306,同時使權重輸入沿另一維度移位(例如,移位至底部)貫穿陣列306。例如,在一個時脈循環中,胞元314處之激發輸入可移位至胞元316 (其在胞元314右側)中之一激發暫存器。類似地,胞元314處之權重輸入可移位至胞元318 (其在胞元314下方)處之一權重暫存器。 在每一時脈循環,每一胞元可處理一給定權重輸入及一給定激發輸入以產生一累加輸出。累加輸出亦可被傳遞至沿與給定權重輸入相同之維度之一相鄰胞元。下文參考圖4進一步描述一個別胞元。 累加輸出可沿與權重輸入相同之行傳遞(例如,朝向陣列306中之行之底部)。在一些實施方案中,在每一行之底部處,陣列306可包含累加器單元310,其在利用權重輸入多於行之層或激發輸入多於列之層執行計算時儲存並累加來自每一行之每一累加輸出。在一些實施方案中,每一累加器單元儲存多個平行累加。此將在下文參考圖6進一步描述。累加器單元310可累加每一累加輸出以產生一最終累加值。最終累加值可被傳送至一向量計算單元。在一些其他實施方案中,累加器單元310將累加值傳遞至向量計算單元而未在處理權重輸入少於行之層或激發輸入少於列之層時執行任何累加。 圖4展示一脈動陣列(例如,圖3之脈動陣列306)內部之一胞元之一例示性架構400。 胞元可包含儲存一激發輸入之一激發暫存器406。激發暫存器可取決於胞元在脈動陣列內之位置自一左側相鄰胞元(即,定位於給定胞元左側之一相鄰胞元)或自一統一緩衝器接收激發輸入。胞元可包含儲存一權重輸入之一權重暫存器402。取決於胞元在脈動陣列內之位置,可自一頂部相鄰胞元或自一權重提取器介面傳送權重輸入。胞元亦可包含一總和輸入暫存器404。總和輸入暫存器404可儲存來自頂部相鄰胞元之一累加值。乘法電路408可用於將來自權重暫存器402之權重輸入與來自激發暫存器406之激發輸入相乘。乘法電路408可將乘積輸出至加總電路410。 加總電路可將乘積與來自總和輸入暫存器404之累加值加總以產生一新累加值。加總電路410接著可將新累加值發送至定位於一底部相鄰胞元中之另一總和輸入暫存器。新累加值可用作底部相鄰胞元中之一加總之一運算元。 胞元亦可將權重輸入及激發輸入移位至相鄰胞元以供處理。例如,權重暫存器402可將權重輸入發送至底部相鄰胞元中之另一權重暫存器。激發暫存器406可將激發輸入發送至右側相鄰胞元中之另一激發暫存器。因此可在一後續時脈循環由陣列中之其他胞元重複使用權重輸入及激發輸入兩者。 在一些實施方案中,胞元亦包含一控制暫存器。控制暫存器可儲存一控制信號,該控制信號判定胞元是否應將權重輸入或激發輸入移位至相鄰胞元。在一些實施方案中,將權重輸入或激發輸入移位花費一或多個時脈循環。控制信號亦可判定是否將激發輸入或權重輸入傳送至乘法電路408或可判定乘法電路408是否對激發及權重輸入操作。控制信號亦可(例如)使用一導線傳遞至一或多個相鄰胞元。 在一些實施方案中,將權重預移位至一權重路徑暫存器412中。權重路徑暫存器412可(例如)自一頂部相鄰胞元接收權重輸入,並基於控制信號將權重輸入傳送至權重暫存器402。權重暫存器402可靜態地儲存權重輸入使得在多個時脈循環中,當激發輸入(例如)透過激發暫存器406傳送至胞元時,權重輸入保留在胞元內且並未被傳送至一相鄰胞元。因此,可(例如)使用乘法電路408將權重輸入施加至多個激發輸入,且可將各自累加值傳送至一相鄰胞元。 在一些實施方案中,透過類神經網路之層之各者處理一個類神經網路輸入以針對該類神經網路輸入產生一類神經網路輸出。然而,在一些實施方案中,電路同時透過類神經網路之層處理多個類神經網路輸入以針對該等輸入產生類神經網路輸出,藉此增加電路之利用率。 至類神經網路之一特定層之一輸入可稱作一激發輸入集合。因此,一類神經網路輸入可為至一第一層之一激發輸入集合。第一層可產生一輸出以由一第二層處理,且該輸出可稱作至第二層之一激發輸入集合。 在一些實施方案中,電路可處理一第一層處之多個激發輸入集合(例如,如上文在圖3中所述般針對每一激發輸入集合產生累加值),接著處理一第二層處之多個激發輸入集合,以此類推,而非電路藉由將來自一第一層之激發輸入發送至類神經網路之一最後層而處理一個激發輸入集合以產生一推理。一給定層處之多個激發輸入集合可構成一或多個輸入批次。在一些實施方案中,在電路處理一後續層之批次之前處理一給定層之批次。電路可藉由針對一批次中之每一輸入(其可為一獨立激發輸入集合)產生累加值而處理該批次。 在一些實施方案中,為最大化處理量同時對一給定類神經網路層執行計算,可引起電路處理多個獨立激發輸入,同時將給定類神經網路層之權重輸入載入脈動陣列中。即,權重輸入可與多個激發輸入一起被重複使用。特定言之,電路藉由使用權重輸入及不同激發輸入(例如,使用圖2之矩陣計算單元212)計算累加值而重複使用權重輸入。藉由圖解,激發輸入可來自多個不同的影像資源或多個音訊樣本。此將在下文參考圖6進一步描述。 電路具有一處理速度及其可存取記憶體之一速度。通常,處理速度快於記憶體存取速度。藉由重複使用權重且藉此利用電路的處理速度,電路可利用脈動陣列之胞元,同時自記憶體並行存取權重輸入以在後續計算中使用。 電路可自該電路之一權重重複使用值而針對類神經網路之每一層判定重複使用權重的次數。此可由電路上針對硬體編譯之軟體或由硬體判定。在一些實施方案中,權重重複使用值係在多次重複使用權重輸入與不同激發輸入之一計算時間大於或等於自記憶體存取新的權重輸入之一提取時間之前電路可重複使用權重輸入之次數。因此,權重重複使用值可指示為了最大化利用率並最小化記憶體存取等待時間電路應重複使用權重輸入之次數。 權重重複使用值可基於以下一或多項:儲存權重輸入之記憶體(例如,圖2之動態記憶體210)之一時脈速率、電路內部(例如,圖2之矩陣計算單元212內部)之算術單元之數目及記憶體(例如,圖2之統一緩衝器208及動態記憶體210)中之通道數目。權重重複使用值可用於判定類神經網路之每一層之一各自批次大小。批次大小可稱作一有效批次大小,即,允許一層以產生最有效的權重重複使用量之一方式操作之一批次大小。批次大小係待在一層處處理使得電路中之脈動陣列最大化之輸入之數目。在一些實施方案中,一給定層之一批次大小係權重重複使用值除以在該層處重複使用權重輸入之次數之上限值(ceiling)。重複使用權重輸入之次數可直接對應於當執行一累加計算時儲存在電路之一脈動陣列之胞元中之激發輸入之數目。此係因為在載入新的激發輸入集合時,權重輸入可保留在胞元中(即,「暫停」)。當載入新的激發輸入集合且將權重輸入凍結在適當位置中時,電路可再次重複使用權重輸入以憑藉新的激發輸入集合計算卷積。下文將參考圖6進一步描述一實例。 圖5係用於對多個層執行類神經網路計算之一例示性方法之一流程圖500。該方法可由一專用硬體電路(例如,使用圖2之主機202)或由一或多個處理器、韌體、晶片外程序或由經組態以控制電路之某個其他軟體程序執行。 在每一類神經網路層處之處理期間,電路可接收一層輸入集合以供該層處理(步驟502)。該層輸入集合可來自記憶體(例如,圖2之統一緩衝器208)或來自一先前層(即,輸入集合係自網路中之先前層之輸出產生)且使用輸出作為輸入集合可由主機202管理,如上文參考圖2描述。每一輸入可為一激發輸入集合,且可自一獨立類神經網路輸入產生。 對於一給定類神經網路層,系統可自輸入集合形成一或多個輸入批次(步驟504)。如上所述,每一類神經網路層具有一相關聯之批次大小。該層處之每一經形成批次包含不超過層的批次大小之一輸入數目。每一類神經網路層之批次大小可被判定為類神經網路之一組態。在一些實施方案中,當編譯一類神經網路模型以在電路上執行時,計算每一類神經網路層之批次大小。因為可在處理開始於一層處之前計算一給定層之批次大小,所以可基於給定層之批次大小形成一批次內之輸入數目。 作為一實例,若一類神經網路需要處理24個影像且類神經網路之一第一層具有一批次大小8,則電路可形成8個影像之3個批次,即,將24個影像劃分為8個輸入之3個批次。對於每一批次,電路可藉由重複使用該層之一特定權重輸入集合來處理批次中之8個相異影像。電路接著可(1)處理一後續層處之一或多個批次或(2)使用特定權重輸入集合處理該層處之8個相異影像資源之另一批次。電路基於類神經網路中之其他層之批次大小判定是否進行(1)或(2),此將在下文以步驟506並參考圖6進一步描述。 對於一給定類神經網路層,電路可選擇一或多個輸入批次中之數個輸入批次進行處理(步驟506)。在一些實施方案中,選擇數目使得一或多個輸入批次中之數個輸入批次中之輸入之一計數大於或等於一後續層之對應批次大小。例如,若一當前層必須處理各具有5個輸入之3個批次且一後續層具有一批次大小10,則電路可選擇3個批次中的2個批次進行處理。該2個選定批次總共具有10個輸入,即,2*5,其等於後續層之對應批次大小(即,10)。在一些實施方案中,將在電路中之脈動陣列之一後續遍次上處理剩餘第三批次。下文將參考圖6進一步描述又另一實例。 電路可(例如)使用一脈動陣列處理選定數目個輸入批次以針對選定批次中之每一輸入產生一各自層輸出(步驟508)。電路可藉由在對每一輸入計算累加值時重複使用權重輸入來處理每一選定輸入批次。如上所述,將權重輸入施加至多個獨立輸入,因為在載入新的激發輸入集合時,權重輸入可保留在胞元中(即,「暫停」)。 藉由圖解,一批次可具有兩個輸入:一激發輸入集合A1及一激發輸入集合A2。電路可藉由在自記憶體提取一權重輸入集合W2之前施加一權重輸入集合W1至兩個集合A1及A2而重複使用該集合W1,其中集合W2係後續層之一權重集合,或若該層具有更多權重以供電路之一脈動陣列處理,則集合W2係該層之下一權重子集。在另一實例中,若存在各自待處理之5個輸入之8個批次(即,總共40個輸入)且電路選擇4個批次進行處理,則電路可處理4個批次內之輸入(即,總共20個輸入)以產生各自層輸出(即,總共20個層輸出)。此將在下文參考圖6進一步描述。 在處理選定數目個批次之後,電路可處理該層處之第二數目個批次或進行至處理一後續層處之一或多個輸入批次。此將在下文參考圖6進一步描述。 雖然此方法已被描述為實施於處理一類神經網路之一電路上,但此方法亦可實施於一處理器(例如,一中央處理單元(CPU)或一圖形處理單元(GPU))上。例如,處理器可重複使用一權重值達某個次數,同時自記憶體(例如,動態隨機存取記憶體(DRAM))擷取權重。 圖6展示具有多個層及每一層之一批次大小之一示例性類神經網路600。如上所述,一給定層之一批次大小係權重重複使用值除以在該層處重複使用權重輸入之次數之上限值。上限值函數可處理一數字並傳回不小於該數字之最小整數。重複使用權重輸入之次數可直接對應於儲存在電路之一脈動陣列之胞元中之激發輸入之數目。例如,電路之一權重重複使用值可為1500。層1 602處理一170 x 170輸入。170 x 170激發輸入之各者可儲存在脈動陣列之一胞元中。因此,層1 602之批次大小係CEIL (1500 / (170*170) ) = 1。層2 604之批次大小係CEIL (1500 / (28 * 28) ) = 2。使用相同計算,層3 606至層5 610具有一批次大小8,且層6 612具有一批次大小32。在一些實施方案中,將批次大小捨入至2之一最接近冪次。 藉由圖解,層1具有1個輸入之一批次大小且層2具有2個輸入之一批次大小。電路可(例如)接收10個輸入用於在層1處處理(例如,總共10個相異影像)。 電路可判定應處理層1處之10個批次中之兩個批次,即,總共2個輸入。在一些實施方案中,電路藉由將層2處之批次大小除以層1之批次大小判定此數目,即,2/1 = 2。藉由處理單個輸入之兩個批次,電路處理兩個輸入,此等於層2之一批次大小,即,2。電路可處理該兩個批次以(例如,藉由計算累加值之兩個向量-一個向量來自每一影像)自兩個輸入產生兩個層輸出。每一層輸出可為輸入至後續層之一輸入。該電路可形成兩個輸入之一批次(例如累加值之兩個向量)以在層2處進行處理。該等批次可儲存在統一緩衝器中。 電路可判定應處理層2處之4個批次。藉由處理大小2之4個批次,該電路處理8個輸入,此等於層3之一批次大小,即,8。電路可處理該4個批次以自8個輸入產生8個層輸出。接著,電路可形成8個輸入之一批次以在層3處進行處理。 電路可繼續直至已處理類神經網路之所有層處之輸入。例如,因為層3至5具有一批次大小8,所以電路可判定應處理層3至5之各者處之8個輸入之一批次。類似地,電路可判定應處理層5處各具有8個輸入之4個批次,藉此形成32個輸入之一批次,其可在層6處進行處理。對於每一輸入,層6可產生可用於推理之一或多個層輸出。 在一些實施方案中,電路(例如)使用算術電路計算跨類神經網路中之所有層之批次大小之一最小公倍數。電路接著可在處理後續層之前處理每一層處之等於或大於最小公倍數之最小數目個輸入。換言之,電路可基於最小公倍數判定(1)是否處理後續層處之一批次或(2)處理一當前層處之另一批次。例如,層1 602至層6 612之批次大小之最小公倍數係32。在處理層1處之一個批次之後,電路可判定層1僅產生1個輸出,其小於最小公倍數32。因此,電路可判定處理層1處之另一批次,此時已產生總共2個輸出。電路可繼續產生輸出直至在層1處已產生32個輸出(即,最小公倍數)。接著,電路可進行至處理一後續層處之一批次。在一些實施方案中,將每一層輸出儲存在一統一緩衝器(例如,圖2之統一緩衝器208)中。 藉由圖解,電路可在層1處選擇32個批次總計32個輸入用於處理。電路接著可在層2處選擇16個批次總共32個輸入,接著在層3處選擇4個批次總共32個輸入用於處理,接著在層4處選擇4個批次總共32個輸入用於處理,接著在層4處選擇5個批次總共32個輸入用於處理、接著最後在層6處選擇1批次總共32個輸入用於處理。 在一些實施方案中,在一特定層處,電路基於一系統參數(例如,由一使用者提供之一參數)處理大於最小公倍數之數目個輸入。在一些實施方案中,電路處理可除以後續層的批次大小之數目個輸入。在一些其他實施方案中,電路接收指令以處理大量輸入,且電路在進行至產生後續層處之輸出之前處理輸入批次以最大化一特定層處之經產生輸出之一數目。電路可約束在特定層處產生之輸出之數目使得所產生的輸出之數目可除以一後續層的批次大小。 本說明書中描述之標的物及功能操作之實施例可在數位電子電路、有形體現電腦軟體或韌體、電腦硬體(包含本說明書中揭示之結構及其等結構等效物)或其等之一或多者之組合中實施。本說明書中描述之標的物之實施例可被實施為一或多個電腦程式(即,編碼在一有形非暫時性程式載體上用於由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組)。替代地或此外,可將程式指令編碼在經產生以編碼傳輸至適合接收器設備以由一資料處理設備執行之資訊之一人工產生之傳播信號(例如,一機器產生之電、光學或電磁信號)上。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。 術語「資料處理設備」涵蓋用於處理資料之所有種類的設備、裝置及機器,包含(例如)一可程式化處理器、一電腦或多個處理器或電腦。該設備可包含專用邏輯電路,例如FPGA (場可程式化閘陣列)或ASIC (專用積體電路)。除硬體之外,該設備亦可包含針對討論中的電腦程式產生一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。 一電腦程式(其亦可稱為或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令檔或程式碼)可以任何形式的程式設計語言(包含編譯或解譯語言或宣告或程序語言)寫入且其可以任何形式部署(包含部署為一獨立程式或一模組、組件、子常式或適用於在一計算環境中使用之其他單元)。一電腦程式可(但不一定)對應於一檔案系統中之一檔案。一程式可被儲存在保存其他程式或資料(例如,儲存在一標記語言文件中之一或多個指令檔)之一檔案之一部分中,儲存在專用於討論中的程式之一單個檔案或多個協調檔案(例如,儲存一或多個模組、子程式或程式碼部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在定位於一個站點處或跨多個站點分佈且由一通信網路互連之多個電腦上執行。 本說明書中描述之程序及邏輯流程可由執行一或多個電腦程式之一或多個可程式化電腦執行以藉由對輸入資料操作且產生輸出而執行功能。程序及邏輯流程亦可由以下各者執行且設備亦可實施為以下各者:專用邏輯電路,例如,FPGA (場可程式化閘陣列)或ASIC (專用積體電路)。 適用於執行一電腦程式之電腦包含(例如)、可基於通用或專用微處理器或兩者或任何其他種類的中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之必要元件係用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟)或可操作地耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦無需具有此等裝置。此外,一電腦可嵌入另一裝置中,例如行動電話、個人數位助理(PDA)、行動音訊或視訊播放器、遊戲控制台、全球定位系統(GPS)接收器或可攜式儲存裝置(例如通用串列匯流排(USB)快閃磁碟機) (僅舉幾例)。 適於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,包含(例如):半導體記憶體裝置,例如,EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換式磁碟;磁光碟;及CD-ROM及DVD-ROM光碟。處理器及記憶體可由專用邏輯電路補充或併入至專用邏輯電路中。 為發送與一使用者之互動,可在具有用於將資訊顯示給使用者之一顯示裝置(例如,一CRT (陰極射線管)或LCD (液晶顯示器)監視器)及一鍵盤及使用者可藉由其將輸入發送至電腦之一指標裝置(例如,一滑鼠或一軌跡球)之一電腦上實施本說明書中所描述之標的物之實施例。其他種類之裝置亦可用以發送與一使用者之互動;例如,提供至使用者之回饋可係任何形式之感官回饋,例如視覺回饋、聽覺回饋或觸覺回饋;來自使用者之輸入可以任何形式接收,包含聲學、語音或觸覺輸入。此外,一電腦可藉由將文件發送至由一使用者使用之一裝置或自該裝置接收文件而與該使用者互動;例如,藉由回應於自一使用者之用戶端裝置上之一網頁瀏覽器接收之請求將網頁發送至該網頁瀏覽器。 可在包含一後端組件(例如作為一資料伺服器)或包含一中間軟體組件(例如一應用程式伺服器)或包含一前端組件(例如,具有一圖形使用者介面或一使用者可透過其與本說明書中所描述之標的物之一實施方案互動之一網頁瀏覽器之一用戶端電腦)或一或多個此等後端、中間軟體或前端組件之任何組合之一電腦系統中實施本說明書中所描述之標的物之實施例。系統之組件可藉由數位資料通信(例如,一通信網路)之任何形式或媒體互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。 計算系統可包含用戶端及伺服器。用戶端及伺服器通常彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係由運行於各自電腦上且彼此具有一用戶端-伺服器關係之電腦程式引起。 雖然本說明書含有諸多特定實施方案細節,但不應將此等細節理解為對任何發明或可主張之內容之範疇之限制,而應理解為特定發明之特定實施例所特有之特徵之描述。亦可在一單一實施例中組合實施在本說明書中在單獨實施例之上下文中所描述之特定特徵。相反地,亦可在多項實施例中單獨地實施或以任何適合子組合實施在一單一實施例之上下文中所描述之各種特徵。此外,儘管在上文可將特徵描述為以特定組合起作用且甚至最初如此主張,然來自一經主張組合之一或多個特徵可在一些情況中自該組合刪除且該經主張組合可關於一子組合或一子組合之變動。 類似地,雖然在圖式中依一特定順序描繪操作,但此不應理解為要求依所展示之特定順序或循序順序執行此等操作,或執行全部經圖解說明之操作以達成所要結果。在某些情況中,多任務處理及平行處理可為有利的。此外,不應將上文所描述之實施例中之各種系統模組及組件之分離理解為在所有實施例中需要此分離,且應理解,通常可將所描述之程式組件及系統一起整合於一單一軟體產品中或封裝至多個軟體產品中。 已描述標的物之特定實施例。其他實施例係在以下申請專利範圍之範疇內。例如,敘述於申請專利範圍中之動作可以一不同順序執行且仍達成所要結果。作為一實例,在附圖中描繪之程序不一定需要所展示之特定順序或循序順序以達成所要結果。在特定實施方案中,多任務及平行處理可係有利的。
100‧‧‧程序/方法
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
108‧‧‧步驟
200‧‧‧專用積體電路
202‧‧‧主機介面/主機
204‧‧‧直接記憶體存取引擎
206‧‧‧定序器
208‧‧‧統一緩衝器
210‧‧‧動態記憶體
212‧‧‧矩陣計算單元
214‧‧‧向量計算單元
300‧‧‧架構
302‧‧‧值載入器
304‧‧‧胞元
306‧‧‧二維脈動陣列
308‧‧‧權重擷取器介面
310‧‧‧累加器單元
312‧‧‧值載入器
314‧‧‧胞元
316‧‧‧胞元
318‧‧‧胞元
320‧‧‧第一維度
322‧‧‧第二維度
400‧‧‧架構
402‧‧‧權重暫存器
404‧‧‧總和輸入暫存器
406‧‧‧激發暫存器
408‧‧‧乘法電路
410‧‧‧加總電路
412‧‧‧權重路徑暫存器
500‧‧‧流程圖
502‧‧‧步驟
504‧‧‧步驟
506‧‧‧步驟
508‧‧‧步驟
600‧‧‧類神經網路
602‧‧‧層1
604‧‧‧層2
606‧‧‧層3
608‧‧‧層4
610‧‧‧層5
612‧‧‧層6
圖1係用於對一類神經網路之一給定層執行一計算之一例示性方法之一流程圖。 圖2展示一例示性類神經網路處理系統。 圖3展示包含一矩陣計算單元之一例示性架構。 圖4展示一脈動陣列內部之一胞元之一例示性架構。 圖5係用於對多個層執行類神經網路計算之一例示性方法之一流程圖。 圖6展示具有多個層及每一層之批次大小之一例示性類神經網路。 各個圖式中之相同元件符號及名稱指示相同元件。
500‧‧‧流程圖
502‧‧‧步驟
504‧‧‧步驟
506‧‧‧步驟
508‧‧‧步驟

Claims (1)

  1. 一種用於針對具有複數個類神經網路層之一類神經網路執行類神經網路計算之方法,該方法包含: 獲得將被處理之複數個層輸入; 基於(i)至該複數個類神經網路層之一特定類神經網路層之一層輸入之一大小及(ii)表示一矩陣計算單元重複使用類神經網路計算之權重輸入的一次數之一權重重複使用值,判定該特定類神經網路層之一批次大小,其中該批次大小表示針對該特定類神經網路層藉由該矩陣計算單元將被平行處理之批次之一數目; 藉由該矩陣計算單元且針對該特定類神經網路層,處理層輸入之一或多個批次以產生一或多個層輸出,其中該一或多個批次之每一批次包括對應於該特定類神經網路層之該批次大小之層輸出之一數目。
TW106111273A 2015-05-21 2016-05-20 用於執行類神經網路之類神經網路計算之方法、系統及電腦可讀取媒體 TWI622939B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562165020P 2015-05-21 2015-05-21
US62/165,020 2015-05-21
US14/844,431 US10083395B2 (en) 2015-05-21 2015-09-03 Batch processing in a neural network processor
US14/844,431 2015-09-03

Publications (2)

Publication Number Publication Date
TW201723934A true TW201723934A (zh) 2017-07-01
TWI622939B TWI622939B (zh) 2018-05-01

Family

ID=55967450

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106111273A TWI622939B (zh) 2015-05-21 2016-05-20 用於執行類神經網路之類神經網路計算之方法、系統及電腦可讀取媒體
TW105115859A TWI591549B (zh) 2015-05-21 2016-05-20 類神經網路處理器中之批次處理

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW105115859A TWI591549B (zh) 2015-05-21 2016-05-20 類神經網路處理器中之批次處理

Country Status (11)

Country Link
US (5) US10083395B2 (zh)
EP (2) EP4235449A3 (zh)
JP (5) JP6640243B2 (zh)
KR (6) KR102540114B1 (zh)
CN (2) CN107454965B (zh)
DE (2) DE112016002292T5 (zh)
DK (1) DK3298547T3 (zh)
GB (2) GB2553053B (zh)
HK (1) HK1245463A1 (zh)
TW (2) TWI622939B (zh)
WO (1) WO2016186823A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI687873B (zh) * 2017-08-09 2020-03-11 美商谷歌有限責任公司 用於加速神經網路之計算單元
TWI699711B (zh) * 2018-07-17 2020-07-21 旺宏電子股份有限公司 記憶體裝置及其製造方法
TWI811486B (zh) * 2018-11-23 2023-08-11 南韓商三星電子股份有限公司 應用處理器、神經網路器件及操作神經網路器件的方法

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US10417555B2 (en) * 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
US20170153892A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Instruction And Logic For Programmable Fabric Hierarchy And Cache
US10037490B2 (en) 2016-12-13 2018-07-31 Google Llc Performing average pooling in hardware
US10521488B1 (en) 2016-12-30 2019-12-31 X Development Llc Dynamic partitioning
US10248613B2 (en) * 2017-01-10 2019-04-02 Qualcomm Incorporated Data bus activation in an electronic device
US10824934B2 (en) * 2017-01-12 2020-11-03 Texas Instruments Incorporated Methods and apparatus for matrix processing in a convolutional neural network
US9691019B1 (en) * 2017-03-07 2017-06-27 Google Inc. Depth concatenation using a matrix computation unit
US10896367B2 (en) * 2017-03-07 2021-01-19 Google Llc Depth concatenation using a matrix computation unit
US10909447B2 (en) 2017-03-09 2021-02-02 Google Llc Transposing neural network matrices in hardware
KR102414583B1 (ko) * 2017-03-23 2022-06-29 삼성전자주식회사 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법
CN107085562B (zh) * 2017-03-23 2020-11-03 中国科学院计算技术研究所 一种基于高效复用数据流的神经网络处理器及设计方法
US10387298B2 (en) * 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
US11144828B2 (en) 2017-06-09 2021-10-12 Htc Corporation Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same
CN107146616B (zh) * 2017-06-13 2020-05-08 Oppo广东移动通信有限公司 设备控制方法及相关产品
CN107608715B (zh) * 2017-07-20 2020-07-03 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置及方法
US11157441B2 (en) * 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157287B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system with variable latency memory access
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US10839286B2 (en) * 2017-09-14 2020-11-17 Xilinx, Inc. System and method for implementing neural networks in integrated circuits
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11620490B2 (en) * 2017-10-17 2023-04-04 Xilinx, Inc. Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions
JP6901633B2 (ja) 2017-10-27 2021-07-14 グーグル エルエルシーGoogle LLC カプセルニューラルネットワーク
CN107818367B (zh) * 2017-10-30 2020-12-29 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
KR102586173B1 (ko) * 2017-10-31 2023-10-10 삼성전자주식회사 프로세서 및 그 제어 방법
US20200210818A1 (en) * 2017-11-02 2020-07-02 Tdk Corporation Array device including neuromorphic element and neural network system
WO2019090325A1 (en) * 2017-11-06 2019-05-09 Neuralmagic, Inc. Methods and systems for improved transforms in convolutional neural networks
KR20190051697A (ko) 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
KR102424962B1 (ko) 2017-11-15 2022-07-25 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
US20190156214A1 (en) 2017-11-18 2019-05-23 Neuralmagic Inc. Systems and methods for exchange of data in distributed training of machine learning algorithms
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
WO2019118363A1 (en) * 2017-12-12 2019-06-20 Amazon Technologies, Inc. On-chip computational network
CN111837145B (zh) * 2017-12-18 2024-02-02 米西克有限公司 用于将矩阵计算映射到矩阵乘法加速器的系统和方法
CN108108811B (zh) * 2017-12-18 2021-07-30 南京地平线机器人技术有限公司 神经网络中的卷积计算方法和电子设备
CN107844828B (zh) * 2017-12-18 2021-07-30 南京地平线机器人技术有限公司 神经网络中的卷积计算方法和电子设备
CN108345934B (zh) * 2018-01-16 2020-11-03 中国科学院计算技术研究所 一种用于神经网络处理器的激活装置及方法
WO2019147708A1 (en) * 2018-01-24 2019-08-01 Alibaba Group Holding Limited A deep learning accelerator system and methods thereof
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11461579B2 (en) 2018-02-08 2022-10-04 Western Digital Technologies, Inc. Configurable neural network engine for convolutional filter sizes
US11551064B2 (en) 2018-02-08 2023-01-10 Western Digital Technologies, Inc. Systolic neural network engine capable of forward propagation
US11423300B1 (en) * 2018-02-09 2022-08-23 Deepmind Technologies Limited Selecting actions by reverting to previous learned action selection policies
KR102252137B1 (ko) 2018-02-13 2021-05-13 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 계산 장치 및 방법
US11740898B2 (en) 2018-02-13 2023-08-29 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN108364061B (zh) * 2018-02-13 2020-05-05 北京旷视科技有限公司 运算装置、运算执行设备及运算执行方法
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
KR102487535B1 (ko) * 2018-02-20 2023-01-12 삼성전자주식회사 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치
US12008466B1 (en) * 2018-03-23 2024-06-11 Amazon Technologies, Inc. Processor with control flow
US11188814B2 (en) * 2018-04-05 2021-11-30 Arm Limited Systolic convolutional neural network
CN108628799B (zh) * 2018-04-17 2021-09-14 上海交通大学 可重构的单指令多数据脉动阵列结构、处理器及电子终端
US11783174B2 (en) * 2018-05-04 2023-10-10 Apple Inc. Splitting of input data for processing in neural network processor
WO2019218896A1 (zh) 2018-05-18 2019-11-21 上海寒武纪信息科技有限公司 计算方法以及相关产品
CN108777153B (zh) * 2018-05-25 2021-01-26 华中科技大学 一种多端输入突触器件及其可塑性调制方法
US11216732B2 (en) 2018-05-31 2022-01-04 Neuralmagic Inc. Systems and methods for generation of sparse code for convolutional neural networks
US10832133B2 (en) 2018-05-31 2020-11-10 Neuralmagic Inc. System and method of executing neural networks
US11449363B2 (en) 2018-05-31 2022-09-20 Neuralmagic Inc. Systems and methods for improved neural network execution
US10963787B2 (en) 2018-05-31 2021-03-30 Neuralmagic Inc. Systems and methods for generation of sparse code for convolutional neural networks
US11734555B2 (en) * 2018-06-05 2023-08-22 Lightelligence PTE. Ltd. Optoelectronic computing systems
US10698392B2 (en) * 2018-06-22 2020-06-30 Applied Materials, Inc. Using graphics processing unit for substrate routing and throughput modeling
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
DE102018115902A1 (de) 2018-07-01 2020-01-02 Oliver Bartels SIMD-Prozessor mit CAM zur Operandenauswahl nach Mustererkennung
CN109002879B (zh) * 2018-07-23 2021-09-03 山东浪潮科学研究院有限公司 神经网络模型的可视化建模方法和装置
KR102519467B1 (ko) 2018-08-28 2023-04-06 캠브리콘 테크놀로지스 코퍼레이션 리미티드 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
CN110865950B (zh) * 2018-08-28 2021-01-12 中科寒武纪科技股份有限公司 数据预处理方法、装置、计算机设备和存储介质
US11010313B2 (en) * 2018-08-29 2021-05-18 Qualcomm Incorporated Method, apparatus, and system for an architecture for machine learning acceleration
EP3859488A4 (en) 2018-09-28 2022-06-29 Shanghai Cambricon Information Technology Co., Ltd Signal processing device, signal processing method and related product
WO2020062299A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 一种神经网络处理器、数据处理方法及相关设备
WO2020072274A1 (en) 2018-10-01 2020-04-09 Neuralmagic Inc. Systems and methods for neural network pruning with accuracy preservation
WO2020073925A1 (zh) * 2018-10-09 2020-04-16 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
WO2020073923A1 (zh) * 2018-10-09 2020-04-16 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
KR20200051278A (ko) 2018-11-05 2020-05-13 삼성전자주식회사 인공 신경망에서의 작업 관리 방법 및 이를 포함하는 시스템
JP7315317B2 (ja) 2018-11-09 2023-07-26 株式会社Preferred Networks プロセッサおよびプロセッサのデータ転送方法
KR102451519B1 (ko) * 2018-11-20 2022-10-07 삼성전자주식회사 룩업 테이블 기반의 비트-시리얼 처리 요소를 포함하는 심층 신경망 가속기
KR20200066953A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
US10990525B2 (en) * 2018-12-12 2021-04-27 Mipsology SAS Caching data in artificial neural network computations
WO2020126692A1 (en) * 2018-12-19 2020-06-25 Ams Ag Implementing a multi-layer neural network using a single physical layer of analog neurons
CN111385462A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
US11544559B2 (en) 2019-01-08 2023-01-03 Neuralmagic Inc. System and method for executing convolution in a neural network
US10789510B2 (en) * 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes
US11461653B2 (en) * 2019-01-23 2022-10-04 StradVision, Inc. Learning method and learning device for CNN using 1xK or Kx1 convolution to be used for hardware optimization, and testing method and testing device using the same
CN109919321A (zh) * 2019-02-01 2019-06-21 京微齐力(北京)科技有限公司 单元具有本地累加功能的人工智能模块及系统芯片
US11783176B2 (en) 2019-03-25 2023-10-10 Western Digital Technologies, Inc. Enhanced storage device memory architecture for machine learning
US10929058B2 (en) 2019-03-25 2021-02-23 Western Digital Technologies, Inc. Enhanced memory device architecture for machine learning
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
CN111832738B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11645512B2 (en) * 2019-04-30 2023-05-09 Baidu Usa Llc Memory layouts and conversion to improve neural network inference performance
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
CN112085188B (zh) 2019-06-12 2024-04-02 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
WO2021026225A1 (en) 2019-08-08 2021-02-11 Neuralmagic Inc. System and method of accelerating execution of a neural network
WO2021036904A1 (zh) 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
KR20210030653A (ko) * 2019-09-10 2021-03-18 주식회사 모빌린트 복수 개의 코어를 갖는 연산 장치
US11842169B1 (en) 2019-09-25 2023-12-12 Amazon Technologies, Inc. Systolic multiply delayed accumulate processor architecture
CN112633462A (zh) * 2019-10-08 2021-04-09 黄朝宗 卷积神经网络的存储器优化的区块式推论方法及其系统
CN112783640B (zh) * 2019-11-11 2023-04-04 上海肇观电子科技有限公司 预先分配内存的方法与设备、电路、电子设备及介质
US11861485B2 (en) * 2019-11-22 2024-01-02 Baidu Usa Llc Data format transform method to improve AI engine MAC utilization
TWI727521B (zh) * 2019-11-27 2021-05-11 瑞昱半導體股份有限公司 動態語音辨識方法及其裝置
US11467806B2 (en) 2019-11-27 2022-10-11 Amazon Technologies, Inc. Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range
US11816446B2 (en) 2019-11-27 2023-11-14 Amazon Technologies, Inc. Systolic array component combining multiple integer and floating-point data types
US11586932B2 (en) * 2020-03-10 2023-02-21 International Business Machines Corporation Model training with variable batch sizing and gradient checkpoint segments
US11620830B2 (en) * 2020-03-31 2023-04-04 Ford Global Technologies, Llc Context dependent transfer learning adaptation to achieve fast performance in inference and update
WO2021237755A1 (zh) * 2020-05-29 2021-12-02 华为技术有限公司 神经网络调度方法及装置
WO2021243489A1 (zh) * 2020-05-30 2021-12-09 华为技术有限公司 一种神经网络的数据处理方法及装置
US11308026B1 (en) * 2020-06-29 2022-04-19 Amazon Technologies, Inc. Multiple busses interleaved in a systolic array
US11422773B1 (en) 2020-06-29 2022-08-23 Amazon Technologies, Inc. Multiple busses within a systolic array processing element
US11308027B1 (en) 2020-06-29 2022-04-19 Amazon Technologies, Inc. Multiple accumulate busses in a systolic array
US11651283B1 (en) 2020-06-30 2023-05-16 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using dynamic rearrangement of sparse data and corresponding weights
US11687831B1 (en) 2020-06-30 2023-06-27 Cadence Design Systems, Inc. Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference
US11823018B1 (en) * 2020-06-30 2023-11-21 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using weight sharing within a systolic array having reduced memory bandwidth
US11676068B1 (en) 2020-06-30 2023-06-13 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process leveraging input sparsity on a pixel by pixel basis
US11615320B1 (en) 2020-06-30 2023-03-28 Cadence Design Systems, Inc. Method, product, and apparatus for variable precision weight management for neural networks
US20220036163A1 (en) * 2020-07-29 2022-02-03 Apple Inc. Chained neural engine write-back architecture
CN111898698B (zh) * 2020-08-10 2021-07-27 腾讯科技(深圳)有限公司 对象的处理方法及装置、存储介质和电子设备
JP7358312B2 (ja) * 2020-08-25 2023-10-10 株式会社東芝 記憶装置およびニューラルネットワーク装置
KR20220027500A (ko) * 2020-08-27 2022-03-08 에스케이하이닉스 주식회사 가속 장치, 데이터 저장 장치, 데이터 처리 시스템 및 가속 장치의 동작방법
US11556757B1 (en) 2020-12-10 2023-01-17 Neuralmagic Ltd. System and method of executing deep tensor columns in neural networks
KR20220090104A (ko) 2020-12-22 2022-06-29 삼성전자주식회사 컨벌루션 연산을 위한 데이터 전송 방법, 페처 및 컨벌루션 연산 장치
US20220318013A1 (en) * 2021-03-25 2022-10-06 Intel Corporation Supporting 8-bit floating point format operands in a computing architecture
CN115204355A (zh) * 2021-04-14 2022-10-18 蒂普爱可斯有限公司 能够重新使用数据的神经处理单元及其方法
US11880682B2 (en) 2021-06-30 2024-01-23 Amazon Technologies, Inc. Systolic array with efficient input reduction and extended array performance
KR102590993B1 (ko) * 2021-09-03 2023-10-19 한국전자기술연구원 적응형 배치 프로세싱 방법 및 시스템
US11714556B2 (en) * 2021-09-14 2023-08-01 quadric.io, Inc. Systems and methods for accelerating memory transfers and computation efficiency using a computation-informed partitioning of an on-chip data buffer and implementing computation-aware data transfer operations to the on-chip data buffer
US11960982B1 (en) 2021-10-21 2024-04-16 Neuralmagic, Inc. System and method of determining and executing deep tensor columns in neural networks

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014235A (en) 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5138695A (en) 1989-10-10 1992-08-11 Hnc, Inc. Systolic array image processing system
US5337395A (en) 1991-04-08 1994-08-09 International Business Machines Corporation SPIN: a sequential pipeline neurocomputer
US5146543A (en) 1990-05-22 1992-09-08 International Business Machines Corp. Scalable neural array processor
JPH04290155A (ja) 1991-03-19 1992-10-14 Fujitsu Ltd 並列データ処理方式
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5278945A (en) * 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
JPH0652132A (ja) * 1992-07-28 1994-02-25 Mitsubishi Electric Corp 並列演算半導体集積回路装置およびそれを用いたシステム
JPH06203005A (ja) * 1992-10-27 1994-07-22 Eastman Kodak Co 高速区分化ニューラルネットワーク及びその構築方法
US5517667A (en) * 1993-06-14 1996-05-14 Motorola, Inc. Neural network that does not require repetitive training
US5583964A (en) * 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
US5799134A (en) 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
KR0152710B1 (ko) * 1995-12-21 1998-10-15 양승택 AT-Bus에 장착하기 위한 병렬 신경망 보드의 제어회로
US5812993A (en) 1996-03-07 1998-09-22 Technion Research And Development Foundation Ltd. Digital hardware architecture for realizing neural network
US6038337A (en) 1996-03-29 2000-03-14 Nec Research Institute, Inc. Method and apparatus for object recognition
JPH11177399A (ja) 1997-12-15 1999-07-02 Mitsubishi Electric Corp クロック遅延回路およびこれを用いた発振回路、位相同期回路、クロック生成回路
GB9902115D0 (en) 1999-02-01 1999-03-24 Axeon Limited Neural networks
US6917703B1 (en) * 2001-02-28 2005-07-12 Nevengineering, Inc. Method and apparatus for image analysis of a gabor-wavelet transformed image using a neural network
US20020143720A1 (en) * 2001-04-03 2002-10-03 Anderson Robert Lee Data structure for improved software implementation of a neural network
JP4314017B2 (ja) 2002-11-06 2009-08-12 キヤノン株式会社 階層処理装置
US7245767B2 (en) 2003-08-21 2007-07-17 Hewlett-Packard Development Company, L.P. Method and apparatus for object identification, classification or verification
US7634137B2 (en) 2005-10-14 2009-12-15 Microsoft Corporation Unfolded convolution for fast feature extraction
EP2122542B1 (en) 2006-12-08 2017-11-01 Medhat Moussa Architecture, system and method for artificial neural network implementation
US8184696B1 (en) 2007-09-11 2012-05-22 Xilinx, Inc. Method and apparatus for an adaptive systolic array structure
JP5376920B2 (ja) 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
KR101108987B1 (ko) * 2009-03-05 2012-01-31 한국전자통신연구원 공간 분할을 이용한 게임 캐릭터의 패턴 학습 장치 및 방법
US8442927B2 (en) 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
TWI525558B (zh) 2011-01-17 2016-03-11 Univ Nat Taipei Technology Resilient high - speed hardware reverse transfer and feedback type neural network system
SG182933A1 (en) * 2011-01-19 2012-08-30 Agency Science Tech & Res A data structure and a method for using the data structure
US8924455B1 (en) 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
US9147155B2 (en) * 2011-08-16 2015-09-29 Qualcomm Incorporated Method and apparatus for neural temporal coding, learning and recognition
US9443190B2 (en) * 2011-11-09 2016-09-13 Qualcomm Incorporated Methods and apparatus for neural pattern sequence completion and neural pattern hierarchical replay by invoking replay of a referenced neural pattern
JP5906061B2 (ja) * 2011-11-15 2016-04-20 Kddi株式会社 学習装置、学習方法、プログラム
TW201331855A (zh) 2012-01-19 2013-08-01 Univ Nat Taipei Technology 具自由回饋節點的高速硬體倒傳遞及回饋型類神經網路
WO2013149123A1 (en) 2012-03-30 2013-10-03 The Ohio State University Monaural speech filter
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9418334B2 (en) * 2012-12-06 2016-08-16 Nuance Communications, Inc. Hybrid pre-training of deep belief networks
US9811775B2 (en) 2012-12-24 2017-11-07 Google Inc. Parallelizing neural networks during training
US9190053B2 (en) 2013-03-25 2015-11-17 The Governing Council Of The Univeristy Of Toronto System and method for applying a convolutional neural network to speech recognition
CN104143327B (zh) * 2013-07-10 2015-12-09 腾讯科技(深圳)有限公司 一种声学模型训练方法和装置
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
US10019985B2 (en) * 2013-11-04 2018-07-10 Google Llc Asynchronous optimization for sequence training of neural networks
JP6203005B2 (ja) 2013-11-14 2017-09-27 三菱電機株式会社 通信装置
CN104035751B (zh) 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
EP3064130A1 (en) 2015-03-02 2016-09-07 MindMaze SA Brain activity measurement and feedback system
US20160267111A1 (en) 2015-03-11 2016-09-15 Microsoft Technology Licensing, Llc Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI687873B (zh) * 2017-08-09 2020-03-11 美商谷歌有限責任公司 用於加速神經網路之計算單元
US11966833B2 (en) 2017-08-09 2024-04-23 Google Llc Accelerating neural networks in hardware using interconnected crossbars
TWI699711B (zh) * 2018-07-17 2020-07-21 旺宏電子股份有限公司 記憶體裝置及其製造方法
TWI811486B (zh) * 2018-11-23 2023-08-11 南韓商三星電子股份有限公司 應用處理器、神經網路器件及操作神經網路器件的方法

Also Published As

Publication number Publication date
KR20230016716A (ko) 2023-02-02
US20210224654A1 (en) 2021-07-22
KR102610083B1 (ko) 2023-12-04
GB2553053B (en) 2022-02-09
JP2020064657A (ja) 2020-04-23
TWI622939B (zh) 2018-05-01
JP7031033B2 (ja) 2022-03-07
GB202118188D0 (en) 2022-01-26
EP4235449A2 (en) 2023-08-30
KR102106144B1 (ko) 2020-04-29
US11227216B2 (en) 2022-01-18
KR20230080510A (ko) 2023-06-07
GB2600031A (en) 2022-04-20
GB2553053A (en) 2018-02-21
HK1245463A1 (zh) 2018-08-24
KR102540114B1 (ko) 2023-06-02
US20160342890A1 (en) 2016-11-24
GB2600031B (en) 2022-08-24
KR20230165890A (ko) 2023-12-05
TW201701199A (zh) 2017-01-01
JP2022071015A (ja) 2022-05-13
CN112465131A (zh) 2021-03-09
KR20200045017A (ko) 2020-04-29
CN107454965B (zh) 2020-12-01
EP3298547A1 (en) 2018-03-28
GB201715438D0 (en) 2017-11-08
DE202016107476U1 (de) 2017-01-23
US20220138577A1 (en) 2022-05-05
EP4235449A3 (en) 2023-09-13
KR102362157B1 (ko) 2022-02-14
KR20170133364A (ko) 2017-12-05
US20190122107A1 (en) 2019-04-25
JP6640243B2 (ja) 2020-02-05
JP2023109933A (ja) 2023-08-08
DE112016002292T5 (de) 2018-02-15
US9842293B2 (en) 2017-12-12
US20170103317A1 (en) 2017-04-13
JP2021093181A (ja) 2021-06-17
WO2016186823A1 (en) 2016-11-24
CN107454965A (zh) 2017-12-08
US10083395B2 (en) 2018-09-25
EP3298547B1 (en) 2023-07-05
KR20220025158A (ko) 2022-03-03
DK3298547T3 (da) 2023-10-02
JP7286829B2 (ja) 2023-06-05
JP6840827B2 (ja) 2021-03-10
US11216726B2 (en) 2022-01-04
KR102493196B1 (ko) 2023-01-27
JP2018518730A (ja) 2018-07-12
TWI591549B (zh) 2017-07-11

Similar Documents

Publication Publication Date Title
TWI591549B (zh) 類神經網路處理器中之批次處理
TWI627593B (zh) 用於類神經網路計算的旋轉資料
US11853865B2 (en) Prefetching weights for use in a neural network processor
TWI591490B (zh) 類神經網路處理器中之向量運算單元
TW201710959A (zh) 類神經網路處理器
TW201706871A (zh) 使用類神經網路處理器計算卷積
TW202414277A (zh) 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置
TW202414280A (zh) 用於執行類神經網路層之計算的方法、系統及非暫時性電腦可讀儲存媒體