TWI715835B - 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 - Google Patents
用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 Download PDFInfo
- Publication number
- TWI715835B TWI715835B TW107113688A TW107113688A TWI715835B TW I715835 B TWI715835 B TW I715835B TW 107113688 A TW107113688 A TW 107113688A TW 107113688 A TW107113688 A TW 107113688A TW I715835 B TWI715835 B TW I715835B
- Authority
- TW
- Taiwan
- Prior art keywords
- neural network
- calculation unit
- circuit
- excitation
- matrix calculation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
- Operation Control Of Excavators (AREA)
- Multi Processors (AREA)
Abstract
本發明揭示一種用於對包括複數個類神經網路層之一類神經網路執行類神經網路計算之電路,該電路包括:一矩陣計算單元,其經組態以針對該複數個類神經網路層之各者:接收用於該類神經網路層之複數個權重輸入及複數個激發輸入,且基於該複數個權重輸入及該複數個激發輸入產生複數個累加值;及向量計算單元,其通信地耦合至該矩陣計算單元且經組態以針對該複數個類神經網路層之各者:將一激發函數應用至由該矩陣計算單元產生之每一累加值以產生用於該類神經網路層之複數個激發值。
Description
本說明書係關於計算硬體中之類神經網路推理。
類神經網路係採用模型之一或多個層以針對一經接收輸入產生一輸出(例如,一分類)之機器學習模型。一些類神經網路除一輸出層之外亦包含一或多個隱藏層。每一隱藏層之輸出用作網路中之下一層(即,網路之下一隱藏層或輸出層)之輸入。網路之每一層根據一各自參數集合之當前值自一經接收輸入產生一輸出。
一般而言,本說明書描述一種計算類神經網路推理之專用硬體電路。
一般而言,本說明書中描述之標的物之一個發明態樣可體現在一種用於對包括複數個類神經網路層之一類神經網路執行類神經網路計算之電路中,該電路包括:一矩陣計算單元,其經組態以針對該複數個類神經網路層之各者:接收用於該類神經網路層之複數個權重輸入及複數個激發輸入,基於該複數個權重輸入及該複數個激發輸入產生複數個累加值;及一向量計算單元,其通信地耦合至該矩陣計算單元且經組態以針對該複數個類神經網路層之各者:將一激發函數應用至由該矩陣計算單元產生之每一
累加值以產生用於該類神經網路層之複數個激發值。
實施方案可包含以下特徵之一或多者。一統一緩衝器(unified buffer)通信地耦合至該矩陣計算單元及該向量計算單元,其中該統一緩衝器經組態以自該向量計算單元接收輸出並儲存該輸出,且該統一緩衝器經組態以將該經接收輸出作為輸入發送至該矩陣計算單元。一定序器經組態以自一主機裝置接收指令並自該等指令產生複數個控制信號,其中該複數個控制信號控制通過該電路之資料流;及一直接記憶體存取引擎通信地耦合至該統一緩衝器及該定序器,其中該直接記憶體存取引擎經組態以將該複數個激發輸入發送至該統一緩衝器,其中該統一緩衝器經組態以將該複數個激發輸入發送至該矩陣計算單元,且其中該直接記憶體存取引擎經組態以自該統一緩衝器讀取結果資料。一記憶體單元經組態以將該多個權重輸入發送至該矩陣計算單元,且其中該直接記憶體存取引擎經組態以將該複數個權重輸入發送至該記憶體單元。該矩陣計算單元被組態為包括複數個胞元之二維脈動陣列。該複數個權重輸入沿該脈動陣列之一第一維度移位穿過第一複數個胞元,且其中該複數個激發輸入沿該脈動陣列之一第二維度移位穿過第二複數個胞元。對於該複數個層中之一給定層,該複數個激發輸入之一計數大於該脈動陣列之該第二維度之一大小,且其中該脈動陣列經組態以:將該複數個激發輸入劃分為部分,其中每一部分具有小於或等於該第二維度之該大小之一大小;針對每一部分產生累加值之一各自部分;及組合累加值之每一部分以針對該給定層產生累加值之一向量。對於該複數個層中之一給定層,該複數個權重輸入之一計數大於該脈動陣列之該第一維度之一大小,且其中該脈動陣列經組態以:將該複數個權重輸入劃分為部分,其中每一部分具有小於或等於該第一維度之該大小之一大小;針
對每一部分產生累加值之一各自部分;及組合累加值之每一部分以各自對該給定層產生累加值之一向量。該複數個胞元中之每一胞元包括:一權重暫存器,其經組態以儲存一權重輸入;一激發暫存器,其經組態以儲存一激發輸入且經組態以將該激發輸入發送至沿該第二維度之一第一相鄰胞元中之另一激發暫存器;一總和輸入(sum-in)暫存器,其經組態以儲存一先前加總值;乘法電路,其通信地耦合至該權重暫存器及該激發暫存器,其中該乘法電路經組態以輸出該權重輸入與該激發輸入之一乘積;及加總電路,其通信地耦合至該乘法電路及該總和輸入暫存器,其中該加總電路經組態以輸出該乘積與該先前加總值之一總和,且其中該加總電路經組態以將該總和發送至沿該第一維度之一第二相鄰胞元中之另一總和輸入暫存器。該複數個胞元中之一或多個胞元各經組態以將各自總和儲存在一各自累加器單元中,其中該各自總和係一累加值。該脈動陣列之該第一維度對應於該脈動陣列之行,且其中該脈動陣列之該第二維度對應於該脈動陣列之列。該向量計算單元將每一激發值正規化以產生複數個正規化值。該向量計算單元匯集(pool)一或多個激發值以產生複數個匯集值。
本說明書中描述之標的物之特定實施例可經實施以實現以下優點之一或多者。在硬體中實施一類神經網路處理器相對於軟體中之實施方案改良效率,例如增加速度及處理量並減少功率及成本。此可用於推理應用。將類神經網路處理器之組件整合至一個電路中允許計算推理而不招致晶片外通信之懲罰。此外,該電路可處理具有數個輸入(例如,大於該電路內之一矩陣計算單元之一維度之一大小之數目個權重輸入或激發輸入)之類神經網路層。例如,該電路可處理按類神經網路之每個類神經元之大量權重輸入。
在以下隨附圖式及描述中陳述本說明書之標的物之一或多項實施例之細節。根據描述、圖式及申請專利範圍將明白標的物之其他特徵、態樣及優點。
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:匯集單元
510:控制信號
600:程序
602:步驟
604:步驟
606:步驟
608:步驟
610:步驟
圖1係用於對一類神經網路之一給定層執行一計算之一例示性方法之一流程圖。
圖2展示一例示性類神經網路處理系統。
圖3展示包含一矩陣計算單元之一例示性架構。
圖4展示一脈動陣列內部之一胞元之一例示性架構。
圖5展示一向量計算單元之一例示性架構。
圖6係用於使用一脈動陣列對激發輸入多於脈動陣列中之列之一給定類神經網路層執行計算之另一例示性程序之一流程圖。
各個圖式中之相同元件符號及名稱指示相同元件。
具有多個層之一類神經網路可用於計算推理。例如,給定一輸入,類神經網路可計算針對輸入之一推理。類神經網路藉由透過類神經網路之層之各者處理輸入而計算此推理。特定言之,類神經網路層係以一序列配置,每一層具有一各自權重集合。每一層接收一輸入並根據層之權重集合處理輸入以產生一輸出。
因此,為自一經接收輸入計算一推理,類神經網路接收輸入並透過該序列中之類神經網路層之各者處理該輸入以產生推理,其中來自一個類神經網路層之輸出被提供為下一類神經網路層之輸入。至一類神經網路層之資料輸入(例如,至類神經網路之輸入或低於該序列中之層的層至一類
神經網路層之輸出)可稱作至層之激發輸入。
在一些實施方案中,類神經網路之層依一有向圖予以配置。即,任何特定層可接收多個輸入、多個輸出或兩者。類神經網路之層亦可經配置使得一層之一輸出可作為一輸入發送回至一先前層。
圖1係用於使用一專用硬體電路對一類神經網路之一給定層執行一計算之一例示性程序100之一流程圖。為了方便起見,將關於具有執行方法100之一或多個電路之一系統描述方法100。可對類神經網路之每一層執行方法100以自一經接收輸入計算一推理。
系統接收權重輸入集合(步驟102)及激發輸入集合(步驟104)用於給定層。可分別自專用硬體電路之動態記憶體及一統一緩衝器接收權重輸入集合及激發輸入集合。在一些實施方案中,可自統一緩衝器接收權重輸入集合及激發輸入集合兩者。
系統使用專用硬體電路之一矩陣乘法單元自權重輸入及激發輸入產生累加值(步驟106)。在一些實施方案中,累加值係權重輸入集合與激發輸入集合之點積。即,對於一個權重集合,系統可將每一權重輸入與每一激發輸入相乘並將乘積加總在一起以形成一累加值。系統接著可計算其他權重集合與其他激發輸入集合之點積。
系統可使用專用硬體電路之一向量計算單元自累加值產生一層輸出(步驟108)。在一些實施方案中,向量計算單元將一激發函數應用至累加值,此將在下文參考圖5進一步描述。層之輸出可經儲存在統一緩衝器中以用作至類神經網路中之一後續層之一輸入或可用於判定推理。當一經接收輸入已透過類神經網路之每一層處理以產生經接收輸入之推理時,系統完成處理類神經網路。
圖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之輸出。下文將參考圖5更詳細地描述向量計算單元。直接記憶體存取引擎204亦可自統一緩衝器208讀取向量計算單元214之輸出。
動態記憶體210及統一緩衝器208可分別將權重輸入集合及激發輸入集合發送至矩陣計算單元212。在一些實施方案中,矩陣計算單元212係二維脈動陣列。矩陣計算單元212亦可為一維脈動陣列或可執行數學運算(例如,乘法及加法)之其他電路。在一些實施方案中,矩陣計算單元212係一通用矩陣處理器。
矩陣計算單元212可處理權重輸入及激發輸入並將輸出之一向量提供至向量計算單元214。在一些實施方案中,矩陣計算單元將輸出之向量發送至統一緩衝器208,該統一緩衝器208將輸出之向量發送至向量計算單元214。向量計算單元可處理輸出之向量並將經處理輸出之一向量儲存至統一緩衝器208。經處理輸出之向量可用作至矩陣計算單元212之激發輸入(例如,用於類神經網路中之一後續層)。下文分別參考圖3及圖5更詳細地描述矩陣計算單元212及向量計算單元214。
圖3展示包含一矩陣計算單元之一例示性架構300。矩陣計算單元係二維脈動陣列306。二維脈動陣列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可累加每一累加輸出以產生一最終累加值。最終累加值可被傳送至一向量計算單元(例如,圖5之向量計算單元502)。在一些其他實施方案中,累加器單元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將權重輸入施加至多個激發輸入,且可將各自累加值傳送至一相鄰胞元。
圖5展示一向量計算單元502之一例示性架構500。向量計算單元502可自一矩陣計算單元(例如,參考圖2描述之矩陣計算單元)接收累加值之一向量。
向量計算單元502可處理激發單元504處之累加值之向量。在一些實施方案中,激發單元包含將一非線性函數應用至每一累加值以產生激發值之電路。例如,非線性函數可為tanh(x),其中x係一累加值。
視需要,向量計算單元502可在自激發值產生正規化值之一正規化單元506中正規化激發值。
又視需要,向量計算單元502可使用一匯集單元508匯集值(激發值或正規化值)。匯集單元508可將一彙總函數應用至正規化值之一或多者以產生匯集值。在一些實施方案中,彙總函數係傳回正規化值或正規化值之一子集之一最大值、最小值或平均值之函數。
控制信號510可(例如)由圖2之定序器206傳送,且可調節向量計算單元502如何處理累加值之向量。即,控制信號510可調節激發值是否經匯集、正規化或兩者。控制信號510亦可指定激發、正規化或匯集函數以及用於正規化及匯集之其他參數(例如,一步幅值)。
向量計算單元502可將值(例如,激發值、正規化值或匯集值)發送至一統一緩衝器(例如,圖2之統一緩衝器208)。
在一些實施方案中,匯集單元508代替正規化單元506接收激發值,且匯集單元508將匯集值發送至正規化單元506,其產生待儲存於統一緩衝器中之正規化值。
圖6係用於使用一脈動陣列對激發輸入多於脈動陣列中之列之一給定類神經網路層執行計算之例示性程序之一流程圖。為了方便起見,將關於執行程序600之一系統描述程序600。在一些實施方案中,一主機介面或一定序器(例如,分別為圖2之主機介面202或定序器206)執行程序600。在一些其他實施方案中,主機介面自執行程序600之一外部處理器接收指令。
如上文描述,每一層可具有多個激發輸入集合,且每一權重輸入集合可被傳送至陣列之相異列處之胞元。在一些實施方案中,類神經網路之一些層具有的激發輸入集合多於陣列之列。
系統可(例如)使用一比較器判定給定類神經網路層存在的激發輸入集
合是否多於脈動陣列中之列。在一些實施方案中,系統在編譯時間做出判定。一激發輸入集合可對應於被提供至陣列之一單一列之激發輸入。
若列多於激發輸入集合(步驟602),則系統可如上文在圖3之脈動陣列306中描述般產生累加值(步驟604)。
若待處理之激發輸入集合多於陣列中之列(步驟602),則系統可將激發輸入集合劃分為部分使得每一部分具有小於或等於陣列中之列之數目之一大小(步驟606)。
系統接著可針對激發輸入之每一部分產生累加值之一部分(步驟608)。一累加值可為至沿一給定行之胞元之激發輸入及權重輸入之乘積之一總和(例如,如圖3之脈動陣列306中所描述)。可將累加值之每一部分儲存在一緩衝器中直至已處理激發輸入之所有部分。緩衝器可為圖3之累加器單元310中之一緩衝器、脈動陣列中之一緩衝器或圖2之統一緩衝器208。
系統接著可將累加值之所有部分組合成累加值之一向量(步驟610)。特定言之,系統可存取累加值之先前儲存部分之緩衝器並(例如)使用圖3之累加器單元310將累加值累加以產生累加值之一向量。系統可將累加值之向量發送至一向量計算單元(例如,圖2之向量計算單元214)。
例如,若陣列中存在256個列且在一給定層處將處理300個激發輸入集合,則系統可自256個激發輸入集合產生256個最終累加值以完全利用脈動陣列並將256個最終累加值儲存在一緩衝器中。系統接著可自44個剩餘激發輸入集合產生44個最終累加值。最後,系統可組合全部300個最終累加值以形成一向量並將向量發送至向量計算單元。
若權重輸入集合多於陣列之行,則系統可執行類似操作。即,系統
可將權重輸入集合劃分為具有的權重輸入集合少於陣列中之行數之部分,針對每一部分產生累加值且將累加值組合成一向量以在向量計算單元中使用。在一些實施方案中,系統可比較累加值之數目與陣列中之行數,而非比較權重輸入集合之數據與陣列中之行數。
雖然已描述其中將權重輸入傳送至陣列之行且將激發輸入傳送至陣列之列之系統,但在一些實施方案中,將權重輸入傳送至陣列之列且將激發輸入被傳送至陣列之行。
雖然硬體被描述為用於計算推理,但硬體可用於以下一或多者:卷積或完全連接類神經網路訓練、線性或邏輯回歸、叢集(例如,k平均值叢集)、視訊編碼及影像處理。
本說明書中描述之標的物及功能操作之實施例可在數位電子電路、有形體現電腦軟體或韌體、電腦硬體(包含本說明書中揭示之結構及其等結構等效物)或其等之一或多者之組合中實施。本說明書中描述之標的物之實施例可被實施為一或多個電腦程式(即,編碼在一有形非暫時性程式載體上用於由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組)。替代地或此外,可將程式指令編碼在經產生以編碼傳輸至適合接收器設備以由一資料處理設備執行之資訊之一人工產生之傳播信號(例如,一機器產生之電、光學或電磁信號)上。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。
術語「資料處理設備」涵蓋用於處理資料之所有種類的設備、裝置及機器,包含(例如)一可程式化處理器、一電腦或多個處理器或電腦。該設備可包含專用邏輯電路,例如FPGA(場可程式化閘陣列)或ASIC(專用
積體電路)。除硬體之外,該設備亦可包含針對討論中的電腦程式產生一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。
一電腦程式(其亦可稱為或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令檔或程式碼)可以任何形式的程式設計語言(包含編譯或解譯語言或宣告或程序語言)寫入且其可以任何形式部署(包含部署為一獨立程式或一模組、組件、子常式或適用於在一計算環境中使用之其他單元)。一電腦程式可(但不一定)對應於一檔案系統中之一檔案。一程式可被儲存在保存其他程式或資料(例如,儲存在一標記語言文件中之一或多個指令檔)之一檔案之一部分中,儲存在專用於討論中的程式之一單個檔案或多個協調檔案(例如,儲存一或多個模組、子程式或程式碼部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在定位於一個站點處或跨多個站點分佈且由一通信網路互連之多個電腦上執行。
本說明書中描述之程序及邏輯流程可由執行一或多個電腦程式之一或多個可程式化電腦執行以藉由對輸入資料操作且產生輸出而執行功能。程序及邏輯流程亦可由以下各者執行且設備亦可實施為以下各者:專用邏輯電路,例如,FPGA(場可程式化閘陣列)或ASIC(專用積體電路)。
適用於執行一電腦程式之電腦包含(例如)、可基於通用或專用微處理器或兩者或任何其他種類的中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之必要元件係用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟)或可操作地耦合以自該一或多個
大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦無需具有此等裝置。此外,一電腦可嵌入另一裝置中,例如行動電話、個人數位助理(PDA)、行動音訊或視訊播放器、遊戲控制台、全球定位系統(GPS)接收器或可攜式儲存裝置(例如通用串列匯流排(USB)快閃磁碟機)(僅舉幾例)。
適於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,包含(例如):半導體記憶體裝置,例如,EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換式磁碟;磁光碟;及CD-ROM及DVD-ROM光碟。處理器及記憶體可由專用邏輯電路補充或併入至專用邏輯電路中。
為發送與一使用者之互動,可在具有用於將資訊顯示給使用者之一顯示裝置(例如,一CRT(陰極射線管)或LCD(液晶顯示器)監視器)及一鍵盤及使用者可藉由其將輸入發送至電腦之一指標裝置(例如,一滑鼠或一軌跡球)之一電腦上實施本說明書中所描述之標的物之實施例。其他種類之裝置亦可用以發送與一使用者之互動;例如,提供至使用者之回饋可係任何形式之感官回饋,例如視覺回饋、聽覺回饋或觸覺回饋;來自使用者之輸入可以任何形式接收,包含聲學、語音或觸覺輸入。此外,一電腦可藉由將文件發送至由一使用者使用之一裝置或自該裝置接收文件而與該使用者互動;例如,藉由回應於自一使用者之用戶端裝置上之一網頁瀏覽器接收之請求將網頁發送至該網頁瀏覽器。
可在包含一後端組件(例如作為一資料伺服器)或包含一中間軟體組件(例如一應用程式伺服器)或包含一前端組件(例如,具有一圖形使用者介面或一使用者可透過其與本說明書中所描述之標的物之一實施方案互動之
一網頁瀏覽器之一用戶端電腦)或一或多個此等後端、中間軟體或前端組件之任何組合之一電腦系統中實施本說明書中所描述之標的物之實施例。系統之組件可藉由數位資料通信(例如,一通信網路)之任何形式或媒體互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。
計算系統可包含用戶端及伺服器。用戶端及伺服器通常彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係由運行於各自電腦上且彼此具有一用戶端-伺服器關係之電腦程式引起。
雖然本說明書含有諸多特定實施方案細節,但不應將此等細節理解為對任何發明或可主張之內容之範疇之限制,而應理解為特定發明之特定實施例所特有之特徵之描述。亦可在一單一實施例中組合實施在本說明書中在單獨實施例之上下文中所描述之特定特徵。相反地,亦可在多項實施例中單獨地實施或以任何適合子組合實施在一單一實施例之上下文中所描述之各種特徵。此外,儘管在上文可將特徵描述為以特定組合起作用且甚至最初如此主張,然來自一經主張組合之一或多個特徵可在一些情況中自該組合刪除且該經主張組合可關於一子組合或一子組合之變動。
類似地,雖然在圖式中依一特定順序描繪操作,但此不應理解為要求依所展示之特定順序或循序順序執行此等操作,或執行全部經圖解說明之操作以達成所要結果。在某些情況中,多任務處理及平行處理可為有利的。此外,不應將上文所描述之實施例中之各種系統模組及組件之分離理解為在所有實施例中需要此分離,且應理解,通常可將所描述之程式組件及系統一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例係在以下申請專利範圍之
範疇內。例如,敘述於申請專利範圍中之動作可以一不同順序執行且仍達成所要結果。作為一實例,在附圖中描繪之程序不一定需要所展示之特定順序或循序順序以達成所要結果。在特定實施方案中,多任務及平行處理可係有利的。
200:專用積體電路
202:主機介面
204:直接記憶體存取引擎
206:定序器
208:統一緩衝器
210:動態記憶體
212:矩陣計算單元
214:向量計算單元
Claims (18)
- 一種用於對包括複數個類神經網路層之一類神經網路執行多個類神經網路計算之電路,該電路包括:一主機介面,其經組態以接收用於一類神經網路計算之多個指令;一記憶體裝置,其與該主機介面通信,該記憶體經組態以基於由該主機介面提供之該等指令來儲存各自權重輸入集合及激發輸入集合;一矩陣計算單元,其包括複數個胞元,該複數個胞元經配置為一多維陣列,其中該複數個胞元之每一胞元:i)經組態以接收用於該複數個類神經網路層之一類神經網路層之多個權重輸入及該類神經網路層之多個激發輸入,ii)包含一或多個暫存器,該一或多個暫存器經組態以儲存該等權重輸入或該等激發輸入且基於一控制信號將該等權重輸入或該等激發輸入移位至一相鄰胞元;及iii)包含用於執行用於該類神經網路層之該等類神經網路計算之電路,執行該等類神經網路計算係使用在該胞元處接收之至少該等權重輸入或該等激發輸入;及一向量計算單元,其經組態以:接收用於該類神經網路層且來自該矩陣計算單元之多個累加值之一向量;將一特定功能應用至該等累加值之該向量之每一累加值;及 作為將該特定功能應用至每一累加值之一結果而產生多個激發值。
- 如請求項1之電路,其中該記憶體係一直接記憶體存取引擎,其使用該主機介面提供之該等指令以:將各自激發輸入集合發送至該電路之一記憶體緩衝器,該電路將該各自激發輸入集合提供至該矩陣計算單元;及讀取儲存在該電路之該記憶體緩衝器中之該矩陣計算單元之多個輸出。
- 如請求項1之電路,其中該記憶體裝置係一統一緩衝器,其經組態以:將該各自激發輸入集合發送至該電路之該矩陣計算單元;接收及儲存由一向量計算單元提供之該矩陣計算單元之多個輸出,該向量計算單元與該矩陣計算單元通信;及將自該向量計算單元接收之該等輸出作為該等激發輸入提供至該矩陣計算單元以用於執行該複數個類神經網路層中之另一層之類神經網路計算。
- 如請求項1之電路,其中該矩陣計算單元經組態以使用該矩陣計算單元之該複數個胞元之至少兩個不同胞元中之該各自電路來處理複數個權重輸入及複數個激發輸入以產生用於該類神經網路層之多個累加值。
- 如請求項1之電路,其進一步包括電路,該電路經組態以:判定該類神經網路層存在的激發輸入集合是否多於該多維陣列之一第一維之列;將該激發輸入集合劃分為多個各自部分,該等各自部分各經調整尺寸以小於或等於該多維陣列之該第一維之列之一數量;及針對該等激發輸入之每一各自部分產生該等累加值之一部分。
- 如請求項5之電路,其中該等累加值之每一部分儲存在該電路之一記憶體緩衝器中直至已藉由該矩陣計算單元處理該等激發輸入之所有各自部分,該矩陣計算單元用以執行用於該類神經網路層之該等類神經網路計算之至少一子集。
- 如請求項5之電路,其進一步包括電路,該電路經組態以:判定該類神經網路層存在的權重輸入集合是否多於該多維陣列之一第二維之行;將該權重輸入集合劃分為多個各自部分,該等各自部分各經調整尺寸以小於或等於該多維陣列之該第二維之行之一數量;及針對該等權重輸入之每一各自部分產生該等累加值之一部分。
- 如請求項7之電路,其進一步包括電路,該電路經組態以:使用該等激發輸入之該等各自部分及該等權重輸入之該等各自部分計算多個乘積;計算該等乘積之總和,該等乘積係使用該等激發輸入之該等各自 部分及該等權重輸入之該等各自部分計算;及使用該等乘積之經計算之該總和計算點積(dot product)。
- 一種使用包括一主機介面及一矩陣計算單元之一電路以用於對包括複數個類神經網路層之一類神經網路執行多個類神經網路計算之方法,該方法包括:藉由該主機介面提供且用於儲存在該電路之一記憶體裝置中之各自權重輸入集合及各自激發輸入集合以用於執行該等類神經網路計算;在該電路之該記憶體裝置處且基於由該主機介面提供之多個指令,儲存該各自權重輸入集合及該各自激發輸入集合;藉由該矩陣計算單元接收儲存在該記憶體裝置中之多個權重輸入及多個激發輸入,其中該矩陣計算單元包括複數個胞元,該複數個胞元經配置為一多維陣列,且其中該複數個胞元之每一胞元經組態以:i)接收用於該複數個類神經網路層之一類神經網路層之該等權重輸入或該等激發輸入;及ii)使用在該胞元處接收之至少該等權重輸入及該等激發輸入以執行用於該類神經網路層之該等類神經網路計算之一部份以產生多個累加值;藉由該電路之一向量計算單元且自該矩陣計算單元,接收用於該類神經網路層之多個累加值之一向量;藉由該向量計算單元,將一特定功能應用至該等累加值之該向量之每一累加值;及 藉由該向量計算單元,作為將該特定功能應用至每一累加值之一結果而產生多個激發值。
- 如請求項9之方法,其中該矩陣計算單元之該複數個胞元之每一胞元包含一或多個暫存器,且該方法進一步包括:在該胞元之該一或多個暫存器中儲存該等權重輸入或該等激發輸入;及基於一控制信號將該等權重輸入或該等激發輸入移位至該矩陣計算單元之一相鄰胞元。
- 如請求項9之方法,其中該記憶體裝置係一直接記憶體存取引擎,且該方法進一步包括:藉由該直接記憶體存取引擎且基於該主機介面提供之該等指令,將該各自激發輸入集合發送至該電路之一記憶體緩衝器;藉由該電路之該記憶體緩衝器且至該矩陣計算單元,提供該各自激發輸入集合;及藉由該直接記憶體存取引擎,讀取儲存在該電路之該記憶體緩衝器中之該矩陣計算單元之多個輸出,該等輸出經產生以回應於被使用以執行該等類神經網路計算之該矩陣計算單元。
- 如請求項9之方法,其中該記憶體裝置係一統一緩衝器,且該方法進一步包括:藉由該統一緩衝器且基於該主機介面提供之該等指令,將該各自 激發輸入集合發送至該電路之該矩陣計算單元;及在該電路之該統一緩衝器處,儲存經產生以回應於執行該等類神經網路計算之該矩陣計算單元之多個輸出;其中該等輸出藉由與該矩陣計算單元通信之該電路之一向量計算單元提供至該統一緩衝器。
- 如請求項9之方法,其進一步包括:藉由該矩陣計算單元處理用於該類神經網路層之複數個權重輸入及複數個激發輸入;及回應於處理,藉由該矩陣計算單元使用該矩陣計算單元之該複數個胞元之至少兩個不同胞元中之各自計算電路來產生用於該類神經網路層之多個累加值。
- 如請求項9之方法,其進一步包括:藉由該電路判定該類神經網路層存在的激發輸入集合是否多於該多維陣列之一第一維之列;回應於判定該類神經網路層存在的激發輸入集合多於該多維陣列之一第一維之列,藉由該電路將該激發輸入集合劃分為多個各自部分,該等各自部分各經調整尺寸以小於或等於該多維陣列之該第一維之列之一數量;及藉由該電路且針對該等激發輸入之每一各自部分產生多個累加值之一部分。
- 如請求項14之方法,其進一步包括:藉由該電路判定該類神經網路層存在的權重輸入集合是否多於該多維陣列之一第二維之行;回應於判定該類神經網路層存在的權重輸入集合多於該多維陣列之一第二維之行,藉由該電路將該權重輸入集合劃分為多個各自部分,該等各自部分各經調整尺寸以小於或等於該多維陣列之該第二維之行之一數量;及藉由該電路且針對該等權重輸入之每一各自部分產生該等累加值之一部分。
- 一或多個非暫時性機器可讀儲存裝置,其等用於儲存多個指令,該等指令用於對包括複數個類神經網路層之一類神經網路執行多個類神經網路計算,其中該等指令可由一或多個處理裝置執行以引起包括以下之多個操作之效能:藉由一主機介面且用於儲存在一電路之一記憶體裝置中,提供各自權重輸入集合及激發輸入集合以用於執行該等類神經網路計算;在該電路之該記憶體裝置處且基於由該主機介面提供之多個指令,儲存該各自權重輸入集合及該各自激發輸入集合;藉由該電路之一矩陣計算單元接收儲存在該記憶體裝置中之多個權重輸入及多個激發輸入,其中該矩陣計算單元包括複數個胞元,該複數個胞元經配置為一多維陣列,且其中該複數個胞元之每一胞元經組態以:i)接收用於該複數個類神經網路層之一類神經網路層之該等權 重輸入或該等激發輸入;及ii)使用在該胞元處接收之至少該等權重輸入及該等激發輸入以執行用於該類神經網路層之該等類神經網路計算之一部份以產生多個累加值;藉由該電路之一向量計算單元且自該矩陣計算單元,接收用於該類神經網路層之多個累加值之一向量以產生多個累加值;藉由該向量計算單元,將一特定功能應用至該等累加值之該向量之每一累加值;及藉由該向量計算單元,作為將該特定功能應用至每一累加值之一結果而產生多個激發值。
- 如請求項16之一或多個非暫時性機器可讀儲存裝置,其中該記憶體係一直接記憶體存取引擎,且該等操作進一步包括:藉由該直接記憶體存取引擎且基於該主機介面提供之該等指令,將該各自激發輸入集合發送至該電路之一記憶體緩衝器;藉由該電路之該記憶體緩衝器且至該矩陣計算單元,提供該各自激發輸入集合;及藉由該直接記憶體存取引擎,讀取儲存在該電路之該記憶體緩衝器中之該矩陣計算單元之多個輸出,該等輸出經產生以回應於正被使用以執行該等類神經網路計算之該矩陣計算單元。
- 如請求項16之之一或多個非暫時性機器可讀儲存裝置,其中該記憶體裝置係一統一緩衝器,且該等操作進一步包括: 藉由該統一緩衝器且基於該主機介面提供之該等指令,將該各自激發輸入集合發送至該電路之該矩陣計算單元;及在該電路之該統一緩衝器處,儲存經產生以回應於執行該等類神經網路計算之該矩陣計算單元之多個輸出;其中該等輸出藉由與該矩陣計算單元通信之該電路之一向量計算單元提供至該統一緩衝器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562164931P | 2015-05-21 | 2015-05-21 | |
US62/164,931 | 2015-05-21 | ||
US14/844,524 US9747546B2 (en) | 2015-05-21 | 2015-09-03 | Neural network processor |
US14/844,524 | 2015-09-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201830296A TW201830296A (zh) | 2018-08-16 |
TWI715835B true TWI715835B (zh) | 2021-01-11 |
Family
ID=56081541
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111106513A TWI825596B (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW112149110A TW202414277A (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW109143265A TWI759997B (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW107113688A TWI715835B (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW105115867A TWI627592B (zh) | 2015-05-21 | 2016-05-20 | 類神經網路處理器 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111106513A TWI825596B (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW112149110A TW202414277A (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
TW109143265A TWI759997B (zh) | 2015-05-21 | 2016-05-20 | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105115867A TWI627592B (zh) | 2015-05-21 | 2016-05-20 | 類神經網路處理器 |
Country Status (4)
Country | Link |
---|---|
US (8) | US9747546B2 (zh) |
DE (1) | DE202016107436U1 (zh) |
TW (5) | TWI825596B (zh) |
WO (1) | WO2016186801A1 (zh) |
Families Citing this family (157)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11797641B2 (en) | 2015-02-03 | 2023-10-24 | 1Qb Information Technologies Inc. | Method and system for solving the lagrangian dual of a constrained binary quadratic programming problem using a quantum annealer |
CA2881033C (en) | 2015-02-03 | 2016-03-15 | 1Qb Information Technologies Inc. | Method and system for solving lagrangian dual of a constrained binary quadratic programming problem |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US10275394B2 (en) * | 2015-10-08 | 2019-04-30 | Via Alliance Semiconductor Co., Ltd. | Processor with architectural neural network execution unit |
US10616314B1 (en) | 2015-12-29 | 2020-04-07 | Amazon Technologies, Inc. | Dynamic source routing for data transfer |
US10482380B2 (en) * | 2015-12-30 | 2019-11-19 | Amazon Technologies, Inc. | Conditional parallel processing in fully-connected neural networks |
GB201607713D0 (en) | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
US10417560B2 (en) * | 2016-12-01 | 2019-09-17 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs efficient 3-dimensional convolutions |
US10037490B2 (en) | 2016-12-13 | 2018-07-31 | Google Llc | Performing average pooling in hardware |
CN108241484B (zh) * | 2016-12-26 | 2021-10-15 | 上海寒武纪信息科技有限公司 | 基于高带宽存储器的神经网络计算装置和方法 |
US10521488B1 (en) | 2016-12-30 | 2019-12-31 | X Development Llc | Dynamic partitioning |
US10824934B2 (en) * | 2017-01-12 | 2020-11-03 | Texas Instruments Incorporated | Methods and apparatus for matrix processing in a convolutional neural network |
US10062378B1 (en) * | 2017-02-24 | 2018-08-28 | International Business Machines Corporation | Sound identification utilizing periodic indications |
US10896367B2 (en) * | 2017-03-07 | 2021-01-19 | Google Llc | Depth concatenation using a matrix computation unit |
US9691019B1 (en) * | 2017-03-07 | 2017-06-27 | Google Inc. | Depth concatenation using a matrix computation unit |
US10909447B2 (en) | 2017-03-09 | 2021-02-02 | Google Llc | Transposing neural network matrices in hardware |
US10241972B2 (en) * | 2017-03-16 | 2019-03-26 | International Business Machines Corporation | Matrix multiplication on a systolic array |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
TWI728247B (zh) * | 2017-05-17 | 2021-05-21 | 美商谷歌有限責任公司 | 特殊用途神經網路訓練晶片 |
EP3757823B1 (en) | 2017-05-17 | 2023-07-05 | Google LLC | Low latency matrix multiply unit |
US10019668B1 (en) * | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
CN110476101B (zh) | 2017-06-13 | 2022-02-18 | 谷歌有限责任公司 | 用于病理学的增强现实显微镜 |
CN107146616B (zh) * | 2017-06-13 | 2020-05-08 | Oppo广东移动通信有限公司 | 设备控制方法及相关产品 |
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
CN112214726B (zh) | 2017-07-07 | 2024-05-03 | 华为技术有限公司 | 运算加速器 |
US10671349B2 (en) * | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11409692B2 (en) * | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11157287B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system with variable latency memory access |
US11507429B2 (en) | 2017-09-14 | 2022-11-22 | Electronics And Telecommunications Research Institute | Neural network accelerator including bidirectional processing element array |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
US20190114548A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Static block scheduling in massively parallel software defined hardware systems |
CN111194451B (zh) * | 2017-10-20 | 2024-02-27 | 渊慧科技有限公司 | 门控激活单元运算的并行执行 |
KR102586173B1 (ko) * | 2017-10-31 | 2023-10-10 | 삼성전자주식회사 | 프로세서 및 그 제어 방법 |
CN111602126A (zh) * | 2017-10-31 | 2020-08-28 | 美光科技公司 | 具有混合线程处理器的***、具有可配置计算元件的混合线程组构以及混合互连网络 |
US10902318B2 (en) | 2017-11-06 | 2021-01-26 | Neuralmagic Inc. | Methods and systems for improved transforms in convolutional neural networks |
KR20190051697A (ko) | 2017-11-07 | 2019-05-15 | 삼성전자주식회사 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
KR102561261B1 (ko) | 2017-11-14 | 2023-07-28 | 삼성전자주식회사 | 커널을 이용한 컨볼루션 연산 처리 방법 및 장치 |
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 |
KR102610842B1 (ko) | 2017-12-01 | 2023-12-07 | 한국전자통신연구원 | 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법 |
CN111465943B (zh) * | 2017-12-12 | 2023-10-31 | 亚马逊技术股份有限公司 | 一种集成电路和用于神经网络处理的方法 |
US10409889B2 (en) * | 2017-12-18 | 2019-09-10 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
US11360930B2 (en) | 2017-12-19 | 2022-06-14 | Samsung Electronics Co., Ltd. | Neural processing accelerator |
CN109977071A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 神经网络处理器板卡及相关产品 |
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 |
US11164072B2 (en) | 2018-02-08 | 2021-11-02 | Western Digital Technologies, Inc. | Convolution engines for systolic neural network processor |
US11461579B2 (en) | 2018-02-08 | 2022-10-04 | Western Digital Technologies, Inc. | Configurable neural network engine for convolutional filter sizes |
US10416899B2 (en) * | 2018-02-13 | 2019-09-17 | Tesla, Inc. | Systems and methods for low latency hardware memory management |
TWI659324B (zh) * | 2018-02-14 | 2019-05-11 | 倍加科技股份有限公司 | 電路規劃結果產生方法與系統 |
TWI673614B (zh) * | 2018-03-30 | 2019-10-01 | 倍加科技股份有限公司 | 壓縮資料識別模型的方法及電腦裝置、電腦可讀取的記錄媒體 |
US11907834B2 (en) | 2018-02-14 | 2024-02-20 | Deepmentor Inc | Method for establishing data-recognition model |
US20190266111A1 (en) * | 2018-02-27 | 2019-08-29 | Goke Us Research Laboratory | Method and apparatus for high speed data processing |
US10452871B2 (en) | 2018-02-27 | 2019-10-22 | Goke Us Research Laboratory | Method and apparatus for data encryption using a standardized data storage and retrieval protocol |
US10509698B2 (en) | 2018-02-27 | 2019-12-17 | Goke Us Research Laboratory | Method and apparatus for data encoding and decoding using a standardized data storage and retrieval protocol |
US10509600B2 (en) | 2018-02-27 | 2019-12-17 | Goke Us Research Laboratory | Method and apparatus for data compression and decompression using a standardized data storage and retrieval protocol |
CN110222833B (zh) | 2018-03-01 | 2023-12-19 | 华为技术有限公司 | 一种用于神经网络的数据处理电路 |
KR20190106010A (ko) | 2018-03-07 | 2019-09-18 | 삼성전자주식회사 | 전자 장치 및 머신 러닝 수행 방법 |
CN111886605B (zh) * | 2018-03-22 | 2024-03-22 | 亚马逊技术股份有限公司 | 针对多个输入数据集的处理 |
CN110210610B (zh) | 2018-03-27 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
US10621489B2 (en) | 2018-03-30 | 2020-04-14 | International Business Machines Corporation | Massively parallel neural inference computing elements |
US11188814B2 (en) | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
WO2019199392A1 (en) | 2018-04-12 | 2019-10-17 | Google Llc | Augmented reality microscope for pathology with overlay of quantitative biomarker data |
EP3788518A1 (en) | 2018-04-30 | 2021-03-10 | Google LLC | Managing enclave creation through a uniform enclave interface |
CN112041838B (zh) | 2018-04-30 | 2024-07-23 | 谷歌有限责任公司 | 安全区交互 |
CN112005237B (zh) | 2018-04-30 | 2024-04-30 | 谷歌有限责任公司 | 安全区中的处理器与处理加速器之间的安全协作 |
US10387122B1 (en) | 2018-05-04 | 2019-08-20 | Olsen Ip Reserve, Llc | Residue number matrix multiplier |
CA3100495A1 (en) | 2018-05-16 | 2019-11-21 | Benevis Informatics, Llc | Systems and methods for review of computer-aided detection of pathology in images |
JP2019207458A (ja) * | 2018-05-28 | 2019-12-05 | ルネサスエレクトロニクス株式会社 | 半導体装置及びメモリアクセス設定方法 |
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 |
US11216732B2 (en) | 2018-05-31 | 2022-01-04 | Neuralmagic Inc. | Systems and methods for generation of sparse code for convolutional neural networks |
JP7038608B2 (ja) * | 2018-06-15 | 2022-03-18 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US20190392287A1 (en) | 2018-06-22 | 2019-12-26 | Samsung Electronics Co., Ltd. | Neural processor |
US10839894B2 (en) * | 2018-06-29 | 2020-11-17 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory computation circuit and method |
US10606797B2 (en) * | 2018-07-05 | 2020-03-31 | Mythic, Inc. | Systems and methods for implementing an intelligence processing computing architecture |
US11954573B2 (en) | 2018-09-06 | 2024-04-09 | Black Sesame Technologies Inc. | Convolutional neural network using adaptive 3D array |
WO2020072274A1 (en) | 2018-10-01 | 2020-04-09 | Neuralmagic Inc. | Systems and methods for neural network pruning with accuracy preservation |
US11443185B2 (en) | 2018-10-11 | 2022-09-13 | Powerchip Semiconductor Manufacturing Corporation | Memory chip capable of performing artificial intelligence operation and method thereof |
TWI714003B (zh) * | 2018-10-11 | 2020-12-21 | 力晶積成電子製造股份有限公司 | 可執行人工智慧運算的記憶體晶片及其操作方法 |
KR20200043169A (ko) | 2018-10-17 | 2020-04-27 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 방법 및 장치 |
KR102637733B1 (ko) | 2018-10-31 | 2024-02-19 | 삼성전자주식회사 | 뉴럴 네트워크 프로세서 및 그것의 컨볼루션 연산 방법 |
KR20200053886A (ko) | 2018-11-09 | 2020-05-19 | 삼성전자주식회사 | 뉴럴 프로세싱 유닛, 뉴럴 프로세싱 시스템, 및 어플리케이션 시스템 |
JP7315317B2 (ja) | 2018-11-09 | 2023-07-26 | 株式会社Preferred Networks | プロセッサおよびプロセッサのデータ転送方法 |
US11341369B2 (en) * | 2018-11-15 | 2022-05-24 | Nvidia Corporation | Distributed batch normalization using partial populations |
US11301546B2 (en) | 2018-11-19 | 2022-04-12 | Groq, Inc. | Spatial locality transform of matrices |
KR20200064264A (ko) | 2018-11-28 | 2020-06-08 | 삼성전자주식회사 | 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
US10867399B2 (en) | 2018-12-02 | 2020-12-15 | Himax Technologies Limited | Image processing circuit for convolutional neural network |
KR20200066953A (ko) | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
TWI694413B (zh) * | 2018-12-12 | 2020-05-21 | 奇景光電股份有限公司 | 影像處理電路 |
TWI696961B (zh) | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN109670581B (zh) * | 2018-12-21 | 2023-05-23 | 中科寒武纪科技股份有限公司 | 一种计算装置及板卡 |
US11544559B2 (en) | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
US11550971B1 (en) | 2019-01-18 | 2023-01-10 | X Development Llc | Physics simulation on machine-learning accelerated hardware platforms |
US10992314B2 (en) | 2019-01-21 | 2021-04-27 | Olsen Ip Reserve, Llc | Residue number systems and methods for arithmetic error detection and correction |
CN110163338B (zh) * | 2019-01-31 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 具有运算阵列的芯片运算方法、装置、终端及芯片 |
CN109933371A (zh) * | 2019-02-01 | 2019-06-25 | 京微齐力(北京)科技有限公司 | 其单元可访问本地存储器的人工智能模块和***芯片 |
KR20200107295A (ko) * | 2019-03-07 | 2020-09-16 | 에스케이하이닉스 주식회사 | 시스톨릭 어레이 및 프로세싱 시스템 |
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 |
US11169957B2 (en) * | 2019-03-31 | 2021-11-09 | Intel Corporation | Systems and methods for reconfigurable systolic arrays |
US20200320373A1 (en) * | 2019-04-03 | 2020-10-08 | Realtek Semiconductor Corp. | Mixed-signal neurons for neuromorphic computing and method thereof |
US11671111B2 (en) | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
US11880760B2 (en) | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
WO2020255076A1 (en) | 2019-06-19 | 2020-12-24 | 1Qb Information Technologies Inc. | Method and system for mapping a dataset from a hilbert space of a given dimension to a hilbert space of a different dimension |
KR20210001574A (ko) * | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 벡터-매트릭스 곱셈을 수행하는 연산 회로 및 이를 포함하는 반도체 장치 |
US11195095B2 (en) | 2019-08-08 | 2021-12-07 | Neuralmagic Inc. | System and method of accelerating execution of a neural network |
US12008463B2 (en) * | 2019-09-11 | 2024-06-11 | Expedera, Inc. | Methods and apparatus for accessing external memory in a neural network processing system |
WO2021061329A1 (en) * | 2019-09-24 | 2021-04-01 | Alibaba Group Holding Limited | Apparatus and system for execution of neural network |
US11443163B2 (en) | 2019-10-11 | 2022-09-13 | Alibaba Group Holding Limited | Method and system for executing neural network |
KR20210060024A (ko) * | 2019-11-18 | 2021-05-26 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 포함하는 메모리 장치 |
CN114930351A (zh) | 2019-11-26 | 2022-08-19 | 格罗克公司 | 使用仅单个侧从多维阵列加载操作数并输出结果 |
US20210166110A1 (en) * | 2019-12-03 | 2021-06-03 | Anaflash Inc. | Serialized neural network computing unit |
CN111325332B (zh) * | 2020-02-18 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 卷积神经网络的处理方法和装置 |
US11507817B2 (en) | 2020-04-17 | 2022-11-22 | Samsung Electronics Co., Ltd. | System and method for performing computations for deep neural networks |
JP6834097B1 (ja) | 2020-05-15 | 2021-02-24 | エッジコーティックス ピーティーイー. リミテッド | 推論のニューラルネットワークアクセラレータのハードウェア固有分割 |
WO2021237350A1 (en) | 2020-05-27 | 2021-12-02 | 1Qb Information Technologies Inc. | Methods and systems for solving an optimization problem using a flexible modular approach |
US11120805B1 (en) * | 2020-06-19 | 2021-09-14 | Micron Technology, Inc. | Intelligent microphone having deep learning accelerator and random access memory |
JP7358312B2 (ja) * | 2020-08-25 | 2023-10-10 | 株式会社東芝 | 記憶装置およびニューラルネットワーク装置 |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11874900B2 (en) | 2020-09-29 | 2024-01-16 | Hailo Technologies Ltd. | Cluster interlayer safety mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US11875261B2 (en) | 2020-10-16 | 2024-01-16 | Ford Global Technologies, Llc | Automated cross-node communication in distributed directed acyclic graph |
EP4237936A4 (en) * | 2020-10-29 | 2024-07-10 | Hewlett Packard Development Co | RECONFIGURABLE COMPUTER MATRIX FOR MACHINE LEARNING PROCESSING |
US11417373B2 (en) * | 2020-12-09 | 2022-08-16 | Micron Technology, Inc. | Neuromorphic computing devices and methods |
US11556757B1 (en) | 2020-12-10 | 2023-01-17 | Neuralmagic Ltd. | System and method of executing deep tensor columns in neural networks |
JP2024502716A (ja) | 2020-12-10 | 2024-01-23 | ワンキュービー インフォメーション テクノロジーズ インク. | 重み付き最大クリーク問題を解くための方法およびシステム |
RU2754605C1 (ru) * | 2020-12-28 | 2021-09-03 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") | Вычислительная сеть высокопроизводительной вычислительной системы |
US11144822B1 (en) * | 2021-01-04 | 2021-10-12 | Edgecortix Pte. Ltd. | Neural network accelerator run-time reconfigurability |
US20220223201A1 (en) * | 2021-01-11 | 2022-07-14 | Micron Technology, Inc. | Caching Techniques for Deep Learning Accelerator |
US11631210B2 (en) * | 2021-03-03 | 2023-04-18 | Nvidia Corporation | Fully-fused neural network execution |
CN112949834B (zh) * | 2021-03-26 | 2022-09-06 | 北京航空航天大学 | 一种概率计算脉冲式神经网络计算单元和架构 |
US11669331B2 (en) | 2021-06-17 | 2023-06-06 | International Business Machines Corporation | Neural network processing assist instruction |
US11797270B2 (en) | 2021-06-17 | 2023-10-24 | International Business Machines Corporation | Single function to perform multiple operations with distinct operation parameter validation |
US11734013B2 (en) | 2021-06-17 | 2023-08-22 | International Business Machines Corporation | Exception summary for invalid values detected during instruction execution |
US11269632B1 (en) | 2021-06-17 | 2022-03-08 | International Business Machines Corporation | Data conversion to/from selected data type with implied rounding mode |
US11693692B2 (en) | 2021-06-17 | 2023-07-04 | International Business Machines Corporation | Program event recording storage alteration processing for a neural network accelerator instruction |
US11675592B2 (en) | 2021-06-17 | 2023-06-13 | International Business Machines Corporation | Instruction to query for model-dependent information |
CN113705773B (zh) * | 2021-07-27 | 2023-09-19 | 西安交通大学 | 用于图神经网络推理的动态可重构pe单元及pe阵列 |
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 |
US11657864B1 (en) * | 2021-12-17 | 2023-05-23 | Winbond Electronics Corp. | In-memory computing apparatus and computing method having a memory array includes a shifted weight storage, shift information storage and shift restoration circuit to restore a weigh shifted amount of shifted sum-of-products to generate multiple restored sum-of-products |
WO2023249859A1 (en) * | 2022-06-23 | 2023-12-28 | Expedera, Inc. | Methods and apparatus for accessing external memory in a neural network processing system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422348A2 (en) * | 1989-10-10 | 1991-04-17 | Hnc, Inc. | Two-dimensional systolic array for neural networks, and method |
US7082419B1 (en) * | 1999-02-01 | 2006-07-25 | Axeon Limited | Neural processing element for use in a neural network |
TW201128542A (en) * | 2010-02-04 | 2011-08-16 | Univ Nat Taipei Technology | Parallel learning architecture of back propagation artificial neural networks and mthod thereof |
TW201331855A (zh) * | 2012-01-19 | 2013-08-01 | Univ Nat Taipei Technology | 具自由回饋節點的高速硬體倒傳遞及回饋型類神經網路 |
Family Cites Families (35)
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 |
WO1991018351A1 (en) | 1990-05-22 | 1991-11-28 | International Business Machines Corporation | Pyramid learning architecture neurocomputer |
US5146543A (en) | 1990-05-22 | 1992-09-08 | International Business Machines Corp. | Scalable neural array processor |
US5337395A (en) | 1991-04-08 | 1994-08-09 | International Business Machines Corporation | SPIN: a sequential pipeline neurocomputer |
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 |
US5799134A (en) | 1995-03-13 | 1998-08-25 | Industrial Technology Research Institute | One dimensional systolic array architecture for neural network |
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 |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
JPH11177399A (ja) | 1997-12-15 | 1999-07-02 | Mitsubishi Electric Corp | クロック遅延回路およびこれを用いた発振回路、位相同期回路、クロック生成回路 |
TW538381B (en) * | 2000-07-13 | 2003-06-21 | Ibm | Method and circuits for associating a norm to each component of an input pattern presented to a neural network |
US6801655B2 (en) * | 2001-05-10 | 2004-10-05 | The United States Of America As Represented By The Secretary Of The Navy | Spatial image processor |
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 |
JP5171118B2 (ja) * | 2007-06-13 | 2013-03-27 | キヤノン株式会社 | 演算処理装置及びその制御方法 |
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 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
US8442927B2 (en) | 2009-07-30 | 2013-05-14 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
US8417758B1 (en) * | 2009-09-01 | 2013-04-09 | Xilinx, Inc. | Left and right matrix multiplication using a systolic array |
TWI525558B (zh) | 2011-01-17 | 2016-03-11 | Univ Nat Taipei Technology | Resilient high - speed hardware reverse transfer and feedback type neural network system |
US8924455B1 (en) | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
US9477926B2 (en) * | 2012-11-20 | 2016-10-25 | Qualcomm Incorporated | Piecewise linear neuron modeling |
US9477925B2 (en) | 2012-11-20 | 2016-10-25 | Microsoft Technology Licensing, Llc | Deep neural networks training for speech and pattern recognition |
WO2014081671A1 (en) * | 2012-11-20 | 2014-05-30 | Qualcomm Incorporated | Dynamical event neuron and synapse models for learning spiking neural networks |
US9373073B2 (en) * | 2012-12-21 | 2016-06-21 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation |
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 |
US9384168B2 (en) * | 2013-06-11 | 2016-07-05 | Analog Devices Global | Vector matrix product accelerator for microprocessor integration |
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 |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
-
2015
- 2015-09-03 US US14/844,524 patent/US9747546B2/en active Active
-
2016
- 2016-04-26 DE DE202016107436.3U patent/DE202016107436U1/de active Active
- 2016-04-26 WO PCT/US2016/029294 patent/WO2016186801A1/en active Application Filing
- 2016-05-20 TW TW111106513A patent/TWI825596B/zh active
- 2016-05-20 TW TW112149110A patent/TW202414277A/zh unknown
- 2016-05-20 TW TW109143265A patent/TWI759997B/zh active
- 2016-05-20 TW TW107113688A patent/TWI715835B/zh active
- 2016-05-20 TW TW105115867A patent/TWI627592B/zh active
- 2016-12-22 US US15/389,202 patent/US9710748B2/en active Active
-
2017
- 2017-08-25 US US15/686,615 patent/US10699188B2/en active Active
-
2019
- 2019-08-01 US US16/529,782 patent/US20190354862A1/en not_active Abandoned
- 2019-10-25 US US16/663,876 patent/US20200057942A1/en not_active Abandoned
-
2020
- 2020-03-19 US US16/824,411 patent/US11049016B2/en active Active
- 2020-06-29 US US16/915,161 patent/US11586920B2/en active Active
-
2022
- 2022-07-27 US US17/874,573 patent/US20220366255A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422348A2 (en) * | 1989-10-10 | 1991-04-17 | Hnc, Inc. | Two-dimensional systolic array for neural networks, and method |
US7082419B1 (en) * | 1999-02-01 | 2006-07-25 | Axeon Limited | Neural processing element for use in a neural network |
TW201128542A (en) * | 2010-02-04 | 2011-08-16 | Univ Nat Taipei Technology | Parallel learning architecture of back propagation artificial neural networks and mthod thereof |
TW201331855A (zh) * | 2012-01-19 | 2013-08-01 | Univ Nat Taipei Technology | 具自由回饋節點的高速硬體倒傳遞及回饋型類神經網路 |
Also Published As
Publication number | Publication date |
---|---|
US20200057942A1 (en) | 2020-02-20 |
TWI759997B (zh) | 2022-04-01 |
US20180046907A1 (en) | 2018-02-15 |
TW202223760A (zh) | 2022-06-16 |
US20220366255A1 (en) | 2022-11-17 |
TWI627592B (zh) | 2018-06-21 |
TW201710959A (zh) | 2017-03-16 |
US10699188B2 (en) | 2020-06-30 |
US20160342891A1 (en) | 2016-11-24 |
TW202123092A (zh) | 2021-06-16 |
US9747546B2 (en) | 2017-08-29 |
US11586920B2 (en) | 2023-02-21 |
US9710748B2 (en) | 2017-07-18 |
US20200218981A1 (en) | 2020-07-09 |
TW201830296A (zh) | 2018-08-16 |
TWI825596B (zh) | 2023-12-11 |
US20210019618A1 (en) | 2021-01-21 |
US20170103313A1 (en) | 2017-04-13 |
US20190354862A1 (en) | 2019-11-21 |
TW202414277A (zh) | 2024-04-01 |
WO2016186801A1 (en) | 2016-11-24 |
US11049016B2 (en) | 2021-06-29 |
DE202016107436U1 (de) | 2017-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI715835B (zh) | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 | |
US12014272B2 (en) | Vector computation unit in a neural network processor | |
TWI645301B (zh) | 使用類神經網路處理器計算卷積 | |
US10878316B2 (en) | Prefetching weights for use in a neural network processor |