TWI739143B - 用於針對神經網路執行神經網路運算之電路 - Google Patents

用於針對神經網路執行神經網路運算之電路 Download PDF

Info

Publication number
TWI739143B
TWI739143B TW108128593A TW108128593A TWI739143B TW I739143 B TWI739143 B TW I739143B TW 108128593 A TW108128593 A TW 108128593A TW 108128593 A TW108128593 A TW 108128593A TW I739143 B TWI739143 B TW I739143B
Authority
TW
Taiwan
Prior art keywords
cross
circuit
excitation
neural network
bar
Prior art date
Application number
TW108128593A
Other languages
English (en)
Other versions
TW202020749A (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 TW202020749A publication Critical patent/TW202020749A/zh
Application granted granted Critical
Publication of TWI739143B publication Critical patent/TWI739143B/zh

Links

Images

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
    • G06N3/065Analogue means
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Complex Calculations (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Image Analysis (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本發明描述一種用於針對一神經網路執行神經網路運算之電路。該電路包含複數個神經網路層,其等各包含一交叉條陣列。該複數個交叉條陣列依一堆疊組態形成於一共同基板中。各交叉條陣列包含一組交叉點裝置。該等交叉點裝置之各者之一各自電性質可調整以表示針對各各自交叉點裝置儲存之一權重值。一處理單元經組態以藉由將一調諧信號預載入該等交叉點裝置之各者而調整該等交叉點裝置之各者之該等各自電性質。用於各交叉點裝置之該調諧信號之一值依據由各各自交叉點裝置表示之該權重值而變化。

Description

用於針對神經網路執行神經網路運算之電路
此文件描述一種用於執行神經網路推斷之運算系統。
神經網路係採用一或多個模型層以針對一所接收輸入產生一輸出(例如,一分類)之機器學習模型。除一輸出層以外,一些神經網路亦包含一或多個隱藏層。各隱藏層之輸出被用作網路中之下一層(即,網路之下一隱藏層或輸出層)之輸入。網路之各層根據一各自參數集之當前值從一所接收輸入產生一輸出。
此文件描述一種用於針對包含複數個神經網路層之一神經網路執行神經網路運算之電路。該電路包含一矩陣運算單元,該矩陣運算單元包含用於該複數個神經網路層之各層之一各自交叉條陣列,其中用於該複數個神經網路層之該等各自交叉條陣列依一堆疊組態形成於一共同基板中。各交叉條陣列包含:一組交叉點裝置,其中該等交叉點裝置之各者之一各自電性質可調整以表示針對各各自交叉點裝置儲存之一權重值;一第一組奈米線,該第一組奈米線之各奈米線經組態以接收一激發輸入;及一第二組奈米線,該第二組奈米線之各奈米線藉由該組交叉點裝置之一各自交叉點裝置連接至該第一組奈米線之各奈米線,其中該第二組奈米線之 各奈米線經組態以輸出一值,該值依據從該第一組奈米線之各奈米線接收之信號及該等各自交叉點裝置之該等各自電性質而變化。該電路包含一處理單元,該處理單元經組態以藉由將一調諧信號預載入該等交叉點裝置之各者而調整該等交叉點裝置之各者之該等各自電性質,其中用於各交叉點裝置之該調諧信號之一值依據由各各自交叉點裝置表示之該權重值而變化。
在一些實施方案中,該電路包含一激發單元,該激發單元通信地耦合至該矩陣運算單元且經組態以針對該等神經網路層之一或多者將一激發函數應用於由該矩陣運算單元產生之累加值以產生用於該神經網路層之複數個激發值。
在一些實施方案中,該電路包含一數位轉類比轉換器(DAC)裝置,該DAC裝置經連接至一第一交叉條陣列之該第一組奈米線之一奈米線。在一些實施方案中,該電路包含一類比轉數位轉換器(ADC)裝置,該ADC裝置經連接至一第二交叉條陣列之該第二組奈米線。該矩陣運算單元藉由該等ADC裝置耦合至該激發單元。在一些實施方案中,該ADC裝置經組態以辨識來自該第二組奈米線之一奈米線之一編碼信號,該編碼信號表示該矩陣運算單元之一累加值之一正負號。
在一些實施方案中,該激發單元形成於具有該複數個交叉條陣列之該共同基板中。
在一些實施方案中,該激發單元正規化各激發值以產生複數個正規化值。在一些實施方案中,該激發單元匯集一或多個激發值以產生複數個匯集值。
在一些實施方案中,該等交叉點裝置包含一憶阻器 (memristor)裝置,且經調諧至該值之電性質係該憶阻器裝置之一電導。在一些實施方案中,該等交叉點裝置包含一憶容器(memcapacitor)裝置,且經調諧至該值之電性質係該憶容器裝置之一電容。
在一些實施例中,藉由金屬通孔將該複數個交叉條陣列之一第一交叉條陣列依該堆疊組態連接至該複數個交叉條陣列之一第二交叉條陣列,且該等金屬通孔經組態以將來自該第一交叉條陣列之激發值傳輸至該第二交叉條陣列。在一些實施方案中,該等金屬通孔具有介於40μm至60μm之間的一長度。
在一些實施方案中,該複數個交叉條陣列之一交叉條陣列包含約0.5mm2之尺寸。在一些實例中,該等交叉條陣列之一或多者可包含至少0.25mm2、視情況至少0.4mm2及/或至少0.75mm2、視情況至少0.6mm2之尺寸。
在一些實施方案中,該電路包含一處理單元,該處理單元經組態以接收指令且從該等指令產生複數個控制信號,且該複數個控制信號控制通過該電路之資料流。在一些實施方案中,該電路包含一多上器,該多上器通信地耦合至該處理單元及該矩陣運算單元,且該多工器經組態以將該複數個激發輸入發送至該矩陣運算單元。
在一些實施方案中,該電路包含一記憶體單元,該記憶體單元經組態以將複數個權重輸入發送至該矩陣運算單元,且直接記憶體存取引擎經組態以將該複數個權重輸入發送至該記憶體單元。
在一些實施方案中,將該複數個權重輸入應用於該複數個交叉條陣列以將該可調諧電性質之該值預載入該組交叉點裝置。
在一些實施方案中,該電路包含:一移位相加電路,其經 組態以加總該複數個激發值;一總和輸入(sum-in)暫存器,其經組態以儲存該加總複數個激發值;及加總電路,其通信地耦合至該矩陣運算單元及該總和輸入暫存器,且該加總電路經組態以輸出一乘積與該加總複數個激發值之一總和。
在一些實施方案中,該複數個交叉條陣列之各交叉條陣列連接至一移位相加電路,各移位相加電路經組態以將一各自總和儲存於一各自累加器單元中,其中該各自總和係一累加值。在一些實施方案中,一交叉條陣列之一輸出值表示該累加值之一正負號。
在一些實施方案中,各交叉條陣列包含約一百萬個交叉點裝置。在一些實例中,各交叉條陣列可包含至少900,000個、視情況至少950,000個交叉點裝置及/或小於1,001,000個、視情況小於1,000,500個交叉點裝置。
在一些實施方案中,該矩陣運算單元包括約100個交叉條陣列。在一些實例中,該矩陣運算單元可包括至少90個、視情況至少95個交叉條陣列及/或小於110個、視情況小於105個交叉條陣列。
在一些實施方案中,各交叉點裝置經組態以儲存由電性質表示之一8位元權重值。在一些實施方案中,該矩陣運算單元經組態以執行一遞迴神經網路之功能,且該等交叉點裝置經預載入一次以執行該遞迴神經網路之該等功能。
此及其他態樣之其他實施方案包含經組態以執行方法之動作的對應系統、設備及編碼於電腦儲存裝置上之電腦程式。一或多個電腦之一系統可憑藉安裝於該系統上之在操作時引起該系統執行動作之軟體、韌體、硬體或其等之一組合而如此組態。一或多個電腦程式可憑藉具有在 由資料處理設備執行時引起該設備執行該等動作之指令而如此組態。
本說明書中描述之標的物可在特定實施例中實施以實現以下優點之一或多者。該堆疊交叉條陣列可包含一單晶片晶粒上之一神經網路模型之所有權重。可繞過或減輕記憶體帶寬之限制,其等係習知神經網路加速器之一限制。與每權重需要若干電路元件之CMOS實施方案相比,交叉條之更高儲存密度(每交叉點裝置一個8位元權重)實現該堆疊交叉條之更大生產模型,諸如大至少一數量級。
該堆疊交叉條陣列消耗之能量比一對應CMOS組態少約一數量級。該堆疊交叉條陣列減少一二維組態所需之分時要求,從而減少使用二維類比神經網路層之延時。在一些實施方案中,將神經網路之所有參數儲存於該堆疊交叉條陣列中,從而消除從晶片外電路擷取該等參數之需求。與二維脈動陣列組態相比,該堆疊交叉條陣列具有陣列之間的較短位元線,從而減少或消除層之間的驅動緩衝器之需求。與具有一類似大小之CMOS組態之數千個運算元相比,該堆疊交叉條陣列可包含數百萬或數十億個運算元。較小佔據面積及較低功率要求實現其中晶片大小及功率消耗受到限制之行動裝置及其他裝置之專用神經網路晶片。
在下文隨附圖式及描述中闡述本說明書之標的物之一或多項實施例之細節。從描述、圖式及發明申請專利範圍將變得明白標的物之其他可能特徵、態樣及優點。
100:運算系統/電路系統
110:處理單元
120:儲存媒體
130:指令集/指令
140:乘法累加(MAC)系統
145:交叉條陣列堆疊
150:第一庫
160:第二庫
170:激發單元
180:數位轉類比轉換(DAC)介面
190:類比轉數位(ADC)介面
195:輸出
200:交叉條陣列堆疊
210:第一交叉條陣列/交叉條層
220:過渡層
230:第二交叉條陣列/交叉條層
240:金屬通孔
250:交叉點裝置
260:奈米線
270:奈米線
280:裝置
300:交叉條陣列堆疊
310:區塊
320:區塊
400:交叉條陣列堆疊
410:交叉條陣列堆疊
420:交叉點裝置/憶阻器
440:交叉點裝置/憶容器
500:交叉條陣列堆疊
510:交叉條陣列/交叉條層
520:交叉條層
530:數位轉類比轉換器(DAC)介面/數位轉類比轉換器(DAC)裝置
540:類比轉數位轉換器(ADC)介面/類比轉數位轉換器(ADC)裝置
600:方法
610:接收
620:預載入
630:發送
640:加總
650:累加值
700:交叉條陣列堆疊
800:交叉條陣列堆疊
圖1係一例示性運算系統之一方塊圖。
圖2繪示堆疊交叉條陣列之一組態之一實例。
圖3繪示堆疊交叉條陣列之一組態之一實例。
圖4A至圖4B展示例示性交叉條陣列交叉點裝置。
圖5展示堆疊交叉條陣列之一圖。
圖6展示使用一交叉條陣列堆疊之一方法之一圖。
圖7繪示堆疊交叉條陣列之一組態之一實例。
圖8繪示堆疊交叉條陣列之一組態之一實例。
在各個圖式中,相似元件符號及名稱指示相似元件。
本說明書描述可用於加速機器學習工作負載使得執行該工作負載之一處理單元可在執行運算時達成高效能及低能量消耗之電腦硬體及軟體系統。下文描述之硬體及軟體系統包含類比及數位邏輯之一整合。由包含與一或多個數位處理單元通信之一多層電路(其包含類比運算元)之一運算系統執行機器學習。
特定言之,本說明書描述藉由包含彼此饋送之多個層之深度神經網路(DNN)加速推斷處理。在一神經網路層內執行之一運算程序可包含一輸入張量與一權重張量之間的一乘法。各乘法運算發生在一運算元(例如,突觸)處。一神經網路層可包含許多運算元,且各層可產生許多乘積,諸如一矩陣乘法。一神經網路層可加總各運算元之乘積以產生一累加值。因此,可寫入一輸入權重乘法作為各權重元素與輸入或矩陣之一列相乘之積和。諸如藉由一激發單元將一激發函數應用於累加值以產生一激發值。激發值可表示神經網路之一隨後層之一輸入。
運算系統可使用經組態以執行上文描述之乘法運算及激發函數之硬體執行神經網路操作。一神經網路層之一部分可由一硬體運算元矩陣表示,各硬體運算元經組態以使一輸入張量與一權重張量相乘。硬體 運算元可經配置至層中,其中各層表示一神經網路層。硬體層可經配置至一多層電路中。
多層電路包含各經組態以操作為一神經網路層之互連交叉條陣列。交叉條陣列各包含數個電子運算元(例如,交叉點裝置),其等共同將層之輸出定義為一或多個輸入之一函數。在一些實施方案中,交叉條陣列經垂直堆疊,從而增加神經網路之運算元密度且增加可放置於給定晶片框架中之運算元數目。
交叉條陣列之堆疊組態允許個別神經網路層更大且包含多於二維交叉條層組態(諸如一脈動陣列組態)之運算元。包含更大層大小之交叉條陣列之堆疊組態消除較小層所需之用於運算相同數目個輸入參數之一累加值輸出之分時運算之至少一部分。消除分時運算減少用於運算激發值之一時間及能量額外耗用,此係因為分時運算需要用於將資料輸入至一交叉條陣列且從交叉條陣列擷取結果之額外數位/類比轉換。實情係,交叉條陣列之三維堆疊能夠實施完全連接之神經網路而無需循序類比轉數位轉換。
針對一給定橫截面大小,堆疊中之交叉條陣列之各者包含多於相等大小之一CMOS實施方案之運算元。例如,一交叉條陣列之交叉點裝置可經組態以執行層之參數/權重值之儲存功能性且執行層之乘法運算。因而,與CMOS實施方案相比,交叉條陣列層之電晶體要求減少一數量級。交叉條陣列可包含約數百萬個運算元,而相稱CMOS實施方案可包含數千個運算元。交叉條陣列使用具有小於0.5mm2至1.0mm2之一大小之層實現遞迴神經網路功能性。堆疊交叉條陣列組態使神經網路能夠針對一單晶片晶粒按比例調整至數百萬個或數十億個運算元。下文描述之多層 電路之神經網路層之較小佔據面積實現較小晶片框架(諸如行動裝置所需之晶片框架)中之專用硬體加速。
另外,一旦堆疊交叉條陣列之一層之交叉點裝置已預載入有參數/權重值,便無需針對遞迴運算再次提取參數/權重值,從而節省時間及能量。與CMOS實施方案及二維脈動陣列實施方案相比,此使效能速度增加10倍或更多且使能量消耗減少一數量級。
圖1展示包含用於針對一神經網路執行運算之一交叉條陣列堆疊145之一例示性運算系統100之一方塊圖。如展示,運算系統100包含一處理單元110、一儲存媒體120、包含交叉條陣列堆疊145之乘法累加(MAC)系統140硬體及一激發單元170。在一些實施方案中,系統100包含額外交叉條陣列堆疊,其等各為額外MAC系統之一部分。
處理單元110經組態以處理用於在運算系統100內執行之指令,包含儲存於儲存媒體120中之指令或程式碼或儲存於另一儲存裝置中之其他指令/程式碼。處理單元110可包含一或多個處理器。儲存媒體120可包含一或多個記憶體庫或單元,包含用於儲存激發輸入之第一庫150及用於儲存權重之第二庫160。在一些實施方案中,儲存媒體120係一或若干揮發性記憶體單元。在一些其他實施方案中,儲存媒體120係一或若干非揮發性記憶體單元,諸如例如唯讀記憶體(ROM)及/或電可擦除可程式化唯讀記憶體(EEPROM)。儲存媒體120亦可為另一形式之電腦可讀媒體,諸如一軟碟裝置、一硬碟裝置、一光碟裝置或一磁帶裝置、一快閃記憶體或其他類似固態記憶體裝置或一裝置陣列(包含一儲存區域網路中之裝置或其他組態)。
指令集130在由處理單元110執行時引起處理單元110執行 一或多個任務,包含例如將激發輸入儲存於第一庫150之記憶體位址位置中及將權重儲存於第二庫160之記憶體位址位置中。再者,指令130亦可引起處理單元110自第一庫150及第二庫160存取所儲存資料且將所存取資料提供至MAC系統140。如下文更詳細描述,MAC系統140可執行乘法運算,其可包含使一激發與一權重相乘以產生一(若干)部分總和或產生提供至激發單元170之一(若干)輸出激發。
主機介面202可將指令發送至處理單元110,處理單元110將指令轉換成控制電路以執行神經網路運算之低階控制信號。在一些實施方案中,控制信號調節電路中之資料流(例如,權重輸入集及激發輸入集如何流動通過電路)。處理單元110可將控制信號發送至第一庫及第二庫、一MAC系統140及一激發單元170。在一些實施方案中,處理單元產生時脈信號。處理單元110可使用時脈信號之時序以在適當時間將控制信號發送至電路系統100之各組件。在一些其他實施方案中,一外部處理器控制時脈信號。時脈速率可為任何習知運算時脈速率,但範圍通常介於500MHz至1GHz之間。
如下文參考圖4A至圖4B更詳細論述,可從對應於堆疊交叉條陣列145之一層中之輸入位元線位置之各自記憶體位址位置中之第一庫150載入激發輸入。例如,一交叉條陣列之各輸入位元線可連接至一多工器(未展示),該多工器選擇適當位元線以基於所儲存激發值之位址接收激發輸入。當MAC系統140需要激發值時,處理單元110控制多工器以經由一數位轉類比轉換(DAC)介面180將適當激發值載入各位元線。同樣地,可將權重載入至對應於堆疊交叉條陣列145中之交叉點裝置之位置之各自記憶體位址位置中之第二庫160。連接至一位元線之各交叉點裝置經預載 入有透過DAC介面180自第二庫160接收之一權重值。交叉點裝置將權重儲存為交叉點裝置之一可調諧電性質之形式,如下文關於圖4A至圖4B進一步詳細描述。在一些實施方案中,將指令、激發輸入及權重從與一神經網路硬體運算系統相關聯之一外部或高階控制裝置提供至系統100。
MAC系統140如由處理單元110指示般接收來自第二庫160之權重值及來自第一庫150之激發輸入。處理單元經組態以在MAC系統140接收激發輸入之前將一權重值預載入交叉條陣列堆疊145之各交叉點裝置。處理單元110使用一或多個多工器裝置(未展示)控制交叉條陣列之哪些位元線接收哪些激發及權重信號。多工器裝置經由DAC介面180連接至各位元線。一旦將權重預載入至交叉條陣列中,處理單元110便可經由DAC介面將來自第一庫150之對應激發信號發送至各位元線。預載入權重可用於多個不同輸入集,諸如運算許多不同推斷而無需一第二預載入程序。
交叉條陣列(其等各執行一神經網路層之操作)經互連以形成堆疊,如關於圖2更詳細描述。各層可經由一緩衝器存取以用於載入權重且用於接收激發值。各層經組態以自堆疊之前一層接收輸出激發值,使得在層之間傳遞激發值。在一些實施方案中,各層經完全連接,使得所有交叉點裝置被用作用於一給定乘法運算之運算元。在一些實施方案中,一層可經部分連接。例如,一或多個層可經部分連接以實施一層之專用操作(諸如用作一卷積層)。在一些實施方案中,專用操作可由處理單元110再程式化。在一些實施方案中,將激發信號提供至一單一交叉條陣列,且信號傳播通過堆疊且離開一單一類比轉數位(ADC)介面190。在一些實施方案中,將激發信號提供至一個以上交叉條陣列。在一些實施方案中,經由 ADC介面190從交叉條陣列堆疊145之一單一交叉條層讀取累加值。在一些實施方案中,可諸如透過一ADC介面190之多個ADC裝置從堆疊之若干或各交叉條陣列及從連接至交叉條陣列之各位元線之取樣保持暫存器讀取累加值。
將由堆疊145之交叉條陣列產生之累加信號發送至激發單元170。在一些實施方案中,激發單元將一激發函數應用於累加信號。可由處理單元110指定函數。激發信號可為儲存於儲存媒體120中或發送回至神經網路中之系統100之輸出195。
圖2展示一交叉條陣列堆疊200之一例示性硬體組態(例如,圖1之交叉條陣列堆疊145)。交叉條陣列堆疊200包含一第一交叉條陣列210及一第二交叉條陣列230。第一及第二交叉條陣列210、230各表示一神經網路層。由一過渡層220連接第一及第二交叉條陣列210、230。雖然展示兩個交叉條層210、230,但交叉條陣列堆疊200可包含數十個層、數百個層等。在一些實施方案中,可需要額外驅動緩衝器以添加額外堆疊層。例如,使用一微凸塊回焊方法堆疊額外交叉條層可需要對交叉條層晶粒之間的一緩衝器驅動強度之一調整。然而,在此內容背景中,與驅動長晶片導線相比,驅動一矽穿孔(TSV)需要較少功率。TSV可短於全尺寸交叉條層所需之奈米線,此係因為一交叉條晶粒可針對一堆疊應用而薄化,且因此可藉由使用較小層尺寸而維持緩衝器驅動強度。在一些實施方案中,無需額外驅動緩衝器來添加額外堆疊層。一些晶粒間接合技術(例如,均質(氧化物間)直接接合)包含小於微凸塊回焊之間距(及因此較小電寄生)。此等技術亦提供較低成本、較低翹曲及較低定限。此等接合技術可繞過對於堆疊應用之一較強緩衝器之一要求。
交叉條陣列210包含一第一組奈米線(諸如奈米線260)及一第二組奈米線(諸如奈米線270)。各奈米線260、270可充當用於矩陣乘法運算之一位元線。由複數個交叉點裝置(諸如交叉點裝置250)連接第一組奈米線及第二組奈米線。第一組奈米線之各奈米線260由一交叉點裝置250連接至第二組奈米線之各奈米線270。交叉條陣列230類似地組態為交叉條陣列210,惟交叉條陣列之激發輸入係交叉條210之輸出激發值除外。
為運算一激發值,將激發輸入之各者發送至第一組奈米線之一奈米線260。針對該組之各奈米線260藉由一數位轉類比轉換將激發輸入值轉換為一電壓位準。在一些實施方案中,各交叉點裝置具有一可調諧電性質,諸如電阻、電容等,其判定從第一奈米線260貢獻至第二奈米線270之電流量。第二組之各奈米線270自第一組之奈米線260之各者接收一些電流。所有電流之總和表示M個激發值乘以N個權重之值點積運算,其中M係第一組之奈米線之數目且其中N係連接至第二組之各奈米線之交叉點裝置之數目。在一些實施方案中,交叉條陣列210、230係方形MxM陣列,其中第一組奈米線中之奈米線之數目M相同於第二組之奈米線之數目M。在一些實施方案中,交叉條陣列具有不同數目個奈米線以產生一MxN陣列。
交叉條陣列210、230可運算至多交叉條陣列210、230之大小之矩陣乘法。例如,對於MxN大小之一交叉條陣列210,其中M表示第一組之奈米線260之數目且N表示第二組中之奈米線270之數目,交叉條陣列210能夠處置MxN個操作器之M個激發輸入,從而導致N個激發輸出。交叉條陣列210可平行執行矩陣乘法運算。針對較大輸入向量,可執行陣 列之分時,其中將向量分成片段,執行矩陣乘法,且可由一累加器組合結果或由一匯集層匯集結果。
由金屬通孔(諸如通孔240)連接交叉條陣列210、230。通孔240可為將交叉條陣列210之第二組奈米線導電地連接至交叉條陣列230之第一組奈米線之一實心金屬件。例如,第一交叉條陣列210之各激發輸出可為第二交叉條陣列230之激發輸入。金屬通孔足夠長以允許足夠基板在交叉條陣列210、230之間,使得減少或消除神經網路層之間的電容效應而不極大增加電感效應。在一些實施方案中,金屬通孔240係約15μm至30μm。然而,金屬通孔240可為約50μm至60μm。通孔係約3μm至5μm寬。在一些實施方案中,諸如若使用均質接合技術以連接堆疊層晶粒,則通孔係<1μm寬。可取決於交叉條陣列之尺寸、奈米線之大小及交叉條陣列之電流位準而使用其他長度及寬度。
儘管將通孔240描述為連接第一及第二奈米線260、270之端部,但通孔可放置於沿著位元線之任何位置,諸如陣列堆疊之中心。在一些實施方案中,通孔240無需如描繪般對準,但可偏移以減少通孔之間的電容效應。在一些實施方案中,通孔240連接交叉條之輸出及輸入(即,神經元/激發)。一連接密度基於一網路層中之交叉點數目,通常交叉點數目之平方根。
在一些實施方案中,金屬通孔240各與一裝置280成序列。裝置280表示安置於交叉條層之間的一或多個類比或數位邏輯裝置、信號輸入或信號輸出。例如,裝置280可包含一驅動緩衝器,其在數個交叉條層之後再新信號且防止交叉條層230之電特性影響交叉條陣列210之類比值。例如,裝置280可包含一緩衝輸出線,使得可從交叉條陣列堆疊讀取 交叉條層210之激發輸出。例如,裝置280可包含一緩衝輸入線,其用於預載入交叉條陣列230之交叉點裝置。
交叉條陣列210、230可在無需對堆疊中之一交叉條陣列分時之情況下運算數個矩陣乘法運算。交叉條陣列堆疊200能夠在無需層之間的資料之中間類比/數位轉換之情況下執行遞迴神經網路操作。分時需要在可執行額外矩陣乘法運算之前諸如使用交叉點裝置之預載入權重重新初始化交叉條陣列。交叉條陣列堆疊200可將激發輸出發送至一第二層而無需在第一層中已發生矩陣乘法之後預載入權重。另外,交叉條陣列210可將激發輸出作為類比信號直接發送至第二交叉條陣列230,從而避免轉換至一數位信號及轉換回至一類比信號之一時間及能量額外耗用。
與交叉條胞元之一脈動陣列相比,交叉條陣列堆疊200消耗較少功率。交叉條陣列之二維組態需要胞元之間的相對長導線(例如,針對一1000x1000交叉條層之500μm至1000μm)以將激發輸出自一第一胞元傳輸至一第二胞元。交叉條陣列堆疊200將交叉條陣列210、230放置於一相對緊湊體積包絡中。可由相對較短(例如,15μm至30μm)之金屬通孔240連接交叉條陣列。交叉條陣列堆疊200可在較低電壓下操作,此係因為交叉條陣列堆疊可使用低於一脈動陣列組態之電壓驅動緩衝器且仍具有交叉條陣列之間的信號保真度。除消耗較少功率以外,交叉條陣列堆疊200亦產生少於二維組態之廢熱。因而,藉由避免分時操作且使用較低功率驅動緩衝器,能量消耗可比二維及數位組態減少10倍,且運算速度可相較於二維及數位組態增加10倍。
由系統之一處理裝置(例如,處理裝置110)調諧交叉點裝置(諸如交叉點裝置250)。可由在交叉條陣列堆疊200之操作之一調諧階段期 間施加之一調諧電壓調諧交叉點裝置250。例如,處理裝置可將一信號(諸如一電壓)發送至裝置250。信號調諧裝置250之一電性質以控制裝置之一電導,如關於圖4A至圖4B進一步詳細說明。裝置250儲存由裝置250之電導表示之一權重值。在計算一激發值期間,各交叉點裝置250之電導判定將來自一激發輸入之多少信號傳輸至激發輸出,諸如多少電流從第一奈米線260流動至第二奈米線270。交叉點裝置250因此具有雙重功能性,因為交叉點裝置儲存各神經網路層之權重且亦藉由用作運算元而形成神經網路層之突觸。在一些實施方案中,在不具有任何專用載入輸入線之情況下使用交叉條線載入交叉點裝置250。運算元值經儲存於交叉點裝置250中且重用於許多推斷(至多數百個、數千個、數百萬個等)。由於保持載入運算元值以用於神經網路之推斷,故用於載入交叉點裝置250之載入時間額外耗用由於推斷數目增加而變成一較小操作時間百分比。
交叉條陣列210、230之尺寸可基於晶片框架之大小及所包含之電晶體技術(諸如用於交叉點裝置250)而變化。為避免交叉條陣列210、230中包含相對長奈米線(此需要較高驅動電壓及較多功率消耗),交叉條陣列210、230之尺寸可限於0.5mm2與1.0mm2之間。各交叉條陣列210、230可包含由交叉點裝置250表示之約一百萬個運算元。在一些實施方案中,可在一交叉點陣列210、230中使用較少交叉點裝置250以藉由減小交叉條之電容而增加操作穩健性且實現較低操作電壓,但以交叉條陣列210、230之間的連接空間之額外耗用為代價。例如,一交叉條陣列210、230可包含僅10x10個交叉點裝置250。在一些實施方案中,每交叉點層210、230可使用較大數目個交叉點裝置250以減少交叉條連接之額外耗用且增加網路中之運算元數目,但此可需要較高驅動電壓及較多廢熱。例 如,交叉條陣列210、230可為2000x2000個交叉點裝置250。交叉條層210、230之其他組態係可行的。例如,圖7展示一交叉條陣列堆疊700對圖2之交叉條陣列堆疊200之一替代佈局。
在一些實施方案中,交叉條陣列堆疊可由一單晶粒形成且可形成於相同於互補類比或數位電路(諸如驅動緩衝器、ADC及DAC介面等)之晶粒中。參考圖3,展示具有由區塊310及320表示之額外電路之一交叉條陣列堆疊300。區塊310、320可包含用以處置來自交叉條陣列堆疊之信號之專用電路。例如,區塊310、320可包含用於交叉條陣列堆疊、多工裝置、可再程式化電路層、緩衝器、暫存器等之介面。在一些實施方案中,專用電路可經組態以最佳化一特定神經網路任務,諸如語音辨識、影像辨識等。
在一些實施方案中,區塊320及320可包含類比轉數位轉換(ADC)及數位轉類比轉換(DAC)裝置。ADC及DAC裝置用於介接類比交叉條堆疊與運算系統之數位裝置。可使用各種類型之ADC裝置及DAC裝置,如下文關於圖5更詳細描述。
在一些實施方案中,區塊310及320可包含取樣保持裝置。取樣保持裝置自交叉條陣列獲取累加信號且保持信號直至ADC裝置準備好轉換信號。一取樣保持裝置可附接至一交叉條陣列之各位元線。
區塊310、320包含將一激發函數應用於累加值之一激發單元。激發單元諸如自ACD裝置接收累加值且應用一激發函數以產生激發值。此一組態保持一單晶片晶粒上之神經網路之操作,從而導致上文描述之優點。在一些實施方案中,激發硬體可在一單獨裝置中。
在一些實施方案中,區塊310、320包含經組態以加總複數 個激發值之一移位相加電路。移位相加電路可連接至一總和輸入暫存器,該總和輸入暫存器經組態以儲存經加總複數個激發值。加總電路可通信地耦合至矩陣運算單元及總和輸入暫存器,其中加總電路經組態以輸出一乘積與經加總複數個激發值之一總和。交叉條層210、230之其他組態係可行的。例如,圖8展示一交叉條陣列堆疊800對圖3之交叉條陣列堆疊300之一替代佈局。
圖4A至圖4B展示用於交叉條陣列(諸如交叉條陣列210、230)之交叉點裝置420、440之實例。交叉點裝置具有雙重功能性。交叉點裝置儲存來自第二庫(例如,圖1之庫160)之權重值。諸如在發生矩陣乘法運算之前,可將權重預載入至交叉條陣列中。當交叉條陣列之位元線(例如,奈米線260)接收激發輸入時,交叉點裝置充當用於矩陣乘法之運算元,且將來自輸入位元線之激發輸入轉換成一輸出位元線上(諸如奈米線270上)之一激發輸出。
交叉點裝置使用交叉點裝置之一電性質儲存權重。交叉條陣列之預載入程序諸如藉由使用一調諧電壓或電流而調諧交叉點裝置之電性質。在預載入程序期間,諸如從一調諧源發送一調諧信號至交叉條陣列之各位元線。在一些實施方案中,可平行執行用於堆疊之各交叉條陣列之預載入程序。在一些實施方案中,循序執行各交叉條陣列之調諧。每當交叉條陣列執行一矩陣乘法時,基於所需權重值調諧交叉點裝置。在遞迴神經網路中,無需在操作之間調諧交叉點裝置,但代替地,針對一第二(及後續)操作,交叉點裝置展現來自先前操作之滯後。
當執行矩陣乘法運算時,交叉點裝置充當從第一組奈米線之奈米線460接收之位元線信號上之運算元。運算元執行運算所憑藉之確 切機制取決於用於交叉點裝置之裝置類型。例如,圖4A展示包含用於交叉點裝置之一憶阻器陣列(諸如憶阻器420)之一交叉條陣列400。憶阻器可包含基於施加至憶阻器裝置之一電流之一可調諧電阻。例如,針對應用於交叉點之一較低權重,將憶阻器420調諧至一較高電阻值。較少電流從連接至憶阻器420之第一奈米線460貢獻至連接至憶阻器之第二奈米線470。第二奈米線470自連接至第二奈米線之各憶阻器交叉點裝置接收一些電流或未自其接收電流。第二奈米線470之激發值輸出表示各激發輸入與連接至第二奈米線之各憶阻器之權重之點積。可將激發輸出傳遞至交叉條堆疊之一隨後層(重複程序)、發送至一輸出暫存器或兩者。
圖4B展示用於交叉點裝置之一憶容器陣列,諸如憶容器440。憶容器以類似於憶阻器之一方式運作。憶容器440經充電至表示交叉條陣列410之一權重之一電壓。憶容器440可儲存電壓值直至執行矩陣乘法運算。當將一激發輸入發送至連接至憶阻器460之一位元線(例如,奈米線460)時,憶容器在輸出位元線(例如,奈米線470)上感應一電壓,該電壓與權重電壓值及輸入電壓值成線性比例。
交叉條陣列堆疊400、410之憶阻器420及憶容器440可形成比數位儲存裝置更密集之儲存器。例如,憶阻器可儲存已使用兩個電晶體從八位元數位信號轉換之類比權重值。交叉點裝置所需之少數電晶體實現對一單一交叉條陣列堆疊中之數百萬或數十億個運算元之可擴縮性。
圖5展示一交叉條陣列堆疊500之三維表示。交叉條陣列510經堆疊於數個交叉條層上方,終止於交叉條層520。交叉條層520藉由交叉條陣列510之各位元線連接至一DAC介面530。DAC裝置530將激發輸入、預載入權重值等轉換成信號之一類比表示。在一些實施方案中,可 使用一單位元驅動緩衝器來驅動類比輸入信號。在一些實施方案中,DAC裝置530轉換四位元信號、8位元信號及16位元信號。在一些實施方案中,藉由一不同位元線處置多位元信號之各位元,且在諸如使用ADC介面540轉換回至一數位信號之後合併運算結果。例如,若操作8位元信號,則可將一位元發送至第一交叉條陣列510之各位元線。針對各位元線,交叉條陣列510之突觸權重可經複製為相同。若信號之位元大小超過位元線數目,則信號可被分成一較高有效部分及一較低有效部分,在多個循環內處理且在已對信號值之各位元執行矩陣乘法之後合併。
同樣地,為表示高精度權重值(諸如16位元權重值),可由相同位元線上之多個交叉點裝置表示權重。例如,若交叉點裝置係4位元憶阻器,則可在列之四個交叉點裝置中表示16位元權重值。隨後合併各運算之結果。
透過ADC裝置540將輸出激發值轉換回至數位信號。ADC裝置540可擷取來自各輸出位元線之端部處之緩衝器(諸如取樣保持緩衝器)之值且轉換成各結果之數位表示。可藉由編碼輸入信號(諸如藉由使用一單位行位元線)而減小ACD裝置540之解析度。單位行位元線可表示在轉換回至一數位信號之期間由ADC辨識之一值。例如,單位行位元線可用於表示帶正負號之運算。可使用有效ADC及DAC之任何已知編碼方案,而無需特定ACD/DAC方案。
圖6表示用於使用上文描述之堆疊交叉條陣列執行神經網路操作之一例示性方法600。運算系統諸如自另一系統接收(610)權重值及一指令集。運算系統將權重值預載入(620)交叉點裝置。一旦已由預載入信號調諧所有交叉點裝置,系統便可將激發值發送(630)至交叉條陣列堆 疊。交叉條陣列堆疊加總(640)激發值以產生激發輸出。可組合激發輸出以形成累加值(650)。可將累加值作為激發值發送回至交叉條陣列,儲存於運算系統儲存器中或以其他方式由系統進行分析。
本說明書中描述之標的物及功能操作之實施例可在以下各者中實施:數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(包含本說明書中揭示之結構及其等結構等效物),或其等之一或多者之組合。本說明書中描述之標的物之實施例可實施為一或多個電腦程式,即,編碼於一有形非暫時性程式載體上以由資料處理設備執行或控制資料處理設備之操作的電腦程式指令之一或多個模組。可將程式指令編碼於一人工產生之傳播信號(例如,一機器產生之電信號、光學信號或電磁信號)上,該傳播信號經產生以編碼用於傳輸至適合接收器設備之資訊以由一資料處理設備執行。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。
一電腦程式(其亦可被稱為或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令檔或程式碼)可以任何形式之程式設計語言(包含編譯或解譯語言或宣告或程序語言)寫入,且其可部署為任何形式,包含作為一獨立程式或作為一模組、組件、副常式或適用於一運算環境中之其他單元。一電腦程式可(但無需)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令檔)之一檔案之一部分中、儲存於專用於所述程式之一單一檔案中,或儲存於多個協同檔案(例如,儲存一或多個模組、子程式或程式碼之部分之檔案)中。一電腦程式可經部署以在一個電腦上或在定位於一個地點處或跨多個地點分佈且由一通信網路互連之多個電腦上執 行。
本說明書中描述之程序及邏輯流程可由一或多個可程式化電腦執行,該一或多個可程式化電腦執行一或多個電腦程式以藉由操作輸入資料且產生輸出而執行功能。程序及邏輯流程亦可藉由專用邏輯電路(例如,一FPGA(場可程式化閘陣列)、一ASIC(特定應用積體電路)、一GPGPU(通用圖形處理單元)或某一其他類型之處理器)執行,且設備亦可實施為專用邏輯電路。
藉由實例,適於執行一電腦程式之電腦包含、可基於通用或專用微處理器或兩者或任何其他種類之中央處理單元。一般言之,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之基本元件係用於執行或執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一般言之,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟),或可操作地耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦無需具有此等裝置。此外,一電腦可嵌入於另一裝置中,例如一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲控制台、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如,一通用串列匯流排(USB)快閃隨身碟)等等。
適於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體裝置,包含例如:半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可抽換式磁碟;磁光碟;及CD ROM及DVD-ROM磁碟。處理器及記憶體可由專用邏輯電路補充或併入於專用邏輯電路中。
可在一運算系統中實施本說明書中描述之標的物之實施例,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中介軟體組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有一圖形使用者介面或一網頁瀏覽器之一用戶端電腦,一使用者可透過其與本說明書中描述之標的物之一實施方案互動)或一或多個此後端組件、中介軟體組件或前端組件之任何組合。系統之組件可由數位資料通信之任何形式或媒體(例如,一通信網路)互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。
運算系統可包含用戶端及伺服器。一用戶端及伺服器一般彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係憑藉在各自電腦上運行且彼此具有一用戶端-伺服器關係之電腦程式引起。
雖然本說明書含有許多具體實施方案細節,但此等細節不應被解釋為限制任何發明或可主張之內容之範疇,而是應解釋為描述可為特定發明之特定實施例所特有之特徵。本說明書中在單獨實施例之內容背景中描述之某些特徵亦可在一單一實施例中組合實施。相反地,在一單一實施例之內容背景中描述之各種特徵亦可單獨地或以任何適合子組合在多個實施例中實施。再者,儘管上文可將特徵描述為以特定組合起作用且即使最初如此主張,然在一些情況中,來自一所主張組合之一或多個特徵可自組合中切除,且所主張組合可關於一子組合或一子組合之變動。
類似地,雖然在圖式中按一特定順序描繪操作,但此不應被理解為要求按所展示之特定順序或循序順序執行此等操作或執行全部所繪示操作以達成期望結果。在某些境況中,多任務處理及平行處理可為有利的。再者,上文描述之實施例中之各種系統模組及組件之分離不應被理 解為在全部實施例中皆需要此分離,且應瞭解,所描述程式組件及系統一般可一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下發明申請專利範圍之範疇內。例如,在發明申請專利範圍中敘述之動作可按一不同順序執行且仍達成期望結果。作為一個實例,在附圖中描繪之程序不一定需要所展示之特定順序或連續順序以達成期望結果。在特定實施方案中,多任務處理及平行處理可為有利的。
100:運算系統/電路系統
110:處理單元
120:儲存媒體
130:指令集/指令
140:乘法累加(MAC)系統
145:交叉條陣列堆疊
150:第一庫
160:第二庫
170:激發單元
180:數位轉類比轉換(DAC)介面
190:類比轉數位(ADC)介面
195:輸出

Claims (21)

  1. 一種用於針對包括複數個神經網路層之一神經網路執行神經網路運算之電路,該電路包括:一運算單元,其包括用於該複數個神經網路層之各層之一各自交叉條陣列,其中用於該複數個神經網路層之該等交叉條陣列依一堆疊組態形成於一共同基板中,各交叉條陣列包括:一組交叉點裝置,其中該組交叉點裝置之至少一交叉點裝置之一電性質可調整以表示針對該至少一交叉點裝置儲存之一權重值;一第一組線,該第一組線之一第一線經組態以接收一激發輸入;及一第二組線,該第二組線之一第一線藉由該至少一交叉點裝置連接至該第一組線之該第一線,該第二組線之該第一線經組態以輸出一值,該值係依據從該第一組線之該第一線接收之信號及該至少一交叉點裝置之該電性質而變化;及一處理單元,其經組態以藉由將一調諧信號載入該至少一交叉點裝置而執行一第一負載序列以調整該至少一交叉點裝置之該電性質,其中用於該至少一交叉點裝置之該調諧信號之一值係依據由該至少一交叉點裝置表示之該權重值而變化,且其中該運算單元經組態以在執行一第二負載序列之前,使用該至少一交叉點裝置之該權重值而執行複數個運算。
  2. 如請求項1之電路,其進一步包括一激發單元,該激發單元通信地耦合至該運算單元且經組態以針對該等神經網路層之一或多者將一激發函數 應用於由該運算單元產生之累加值以產生用於該神經網路層之該一或多者之複數個激發值。
  3. 如請求項2之電路,其進一步包括:一數位轉類比轉換器(DAC)裝置,該DAC裝置經連接至一第一交叉條陣列之該第一組線之一線;及一類比轉數位轉換器(ADC)裝置,該ADC裝置經連接至一第二交叉條陣列之該第二組線,其中該運算單元藉由該ADC裝置耦合至該激發單元。
  4. 如請求項3之電路,其中該ADC裝置經組態以辨識來自該第二組線之一線之一編碼信號,該編碼信號表示該運算單元之一累加值之一正負號。
  5. 如請求項2之電路,其中該激發單元與該等交叉條陣列形成於該共同基板中。
  6. 如請求項2之電路,其中該激發單元正規化各激發值以產生複數個正規化值。
  7. 如請求項2之電路,其中該激發單元經組態以匯集一或多個激發值而產生複數個匯集值。
  8. 如請求項1之電路,其中該至少一交叉點裝置包括一憶阻器裝置,且 其中由該調諧信號調諧至該值之該電性質係該憶阻器裝置之一電導。
  9. 如請求項1之電路,其中該至少一交叉點裝置包括一憶容器裝置,且其中由該調諧信號調諧至該值之該電性質係該憶容器裝置之一電容。
  10. 如請求項1之電路,其中藉由金屬通孔將該等交叉條陣列之一第一交叉條陣列依該堆疊組態連接至該等交叉條陣列之一第二交叉條陣列,其中該等金屬通孔經組態以將激發值自該第一交叉條陣列傳輸至該第二交叉條陣列。
  11. 如請求項10之電路,其中該等金屬通孔具有介於40μm至60μm之間的一長度。
  12. 如請求項1之電路,其中該等交叉條陣列之一交叉條陣列包括0.5mm2之尺寸。
  13. 如請求項1之電路,其進一步包括:該處理單元經組態以接收指令且從該等指令產生至少一個控制信號,其中該至少一個控制信號控制通過該電路之資料流;及一多工器,其通信地耦合至該處理單元及該運算單元,其中該多工器經組態以將該激發輸入發送至該運算單元。
  14. 如請求項13之電路,其進一步包括: 一記憶體單元,其經組態以將複數個權重輸入發送至該運算單元。
  15. 如請求項14之電路,其中該複數個權重輸入經施加於該等交叉條陣列以將該電性質之各自值預載入該組交叉點裝置。
  16. 如請求項1之電路,其中該等交叉條陣列之各交叉條陣列連接至一移位相加電路,各移位相加電路經組態以將一各自總和儲存於一各自累加器單元中,其中該各自總和係一累加值。
  17. 如請求項16之電路,其中一交叉條陣列之一輸出值表示該累加值之一正負號。
  18. 如請求項1之電路,其中各交叉條陣列包括一百萬個交叉點裝置。
  19. 如請求項1之電路,其中該運算單元包括100個交叉條陣列。
  20. 如請求項1之電路,其中各交叉點裝置經組態以儲存由該電性質之一值表示之一8位元權重值。
  21. 如請求項1之電路,其中該運算單元經組態以執行一遞迴神經網路之功能,且其中該至少一交叉點裝置以該權重值經預載入一次以執行該遞迴神經網路之該等功能。
TW108128593A 2017-08-02 2018-06-27 用於針對神經網路執行神經網路運算之電路 TWI739143B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/667,230 2017-08-02
US15/667,230 US10127494B1 (en) 2017-08-02 2017-08-02 Neural network crossbar stack
PCT/US2018/033672 WO2019027535A1 (en) 2017-08-02 2018-05-21 MATRIX STACK OF NEURONAL NETWORK
WOPCT/US2018/033672 2018-05-21

Publications (2)

Publication Number Publication Date
TW202020749A TW202020749A (zh) 2020-06-01
TWI739143B true TWI739143B (zh) 2021-09-11

Family

ID=63667984

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108128593A TWI739143B (zh) 2017-08-02 2018-06-27 用於針對神經網路執行神經網路運算之電路
TW107121986A TWI671689B (zh) 2017-08-02 2018-06-27 用於針對神經網路執行神經網路運算之電路

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW107121986A TWI671689B (zh) 2017-08-02 2018-06-27 用於針對神經網路執行神經網路運算之電路

Country Status (5)

Country Link
US (3) US10127494B1 (zh)
EP (1) EP3610422A1 (zh)
CN (1) CN110770762A (zh)
TW (2) TWI739143B (zh)
WO (1) WO2019027535A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417560B2 (en) * 2016-12-01 2019-09-17 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
US10438115B2 (en) * 2016-12-01 2019-10-08 Via Alliance Semiconductor Co., Ltd. Neural network unit with memory layout to perform efficient 3-dimensional convolutions
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack
KR102126791B1 (ko) * 2017-11-23 2020-06-25 서울대학교산학협력단 교차점 어레이를 이용한 신경 연결망 및 그 패턴 인식방법
US11222259B2 (en) * 2017-12-13 2022-01-11 International Business Machines Corporation Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
US10867239B2 (en) * 2017-12-29 2020-12-15 Spero Devices, Inc. Digital architecture supporting analog co-processor
US10970441B1 (en) 2018-02-26 2021-04-06 Washington University System and method using neural networks for analog-to-information processors
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
CN117669663A (zh) * 2018-12-06 2024-03-08 西部数据技术公司 具有深度学习神经网络的非易失性存储器管芯
US10802994B1 (en) * 2019-01-08 2020-10-13 Tetramem Inc. Caliberating a plurality of conductances of columns in memristor crossbar based computing
US20200226447A1 (en) * 2019-01-14 2020-07-16 Tetramem Inc. Implementing hardware neurons using tunneling devices
CN111767995B (zh) * 2019-04-02 2023-12-05 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
EP3742351A1 (en) * 2019-05-22 2020-11-25 eMemory Technology Inc. Control circuit for multiply accumulate circuit of neural network system
US11487990B2 (en) 2019-06-14 2022-11-01 International Business Machines Corporation Resistive crossbar arrays with reduced numbers of elements
US20200410319A1 (en) * 2019-06-26 2020-12-31 Micron Technology, Inc. Stacked artificial neural networks
KR20210001574A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 벡터-매트릭스 곱셈을 수행하는 연산 회로 및 이를 포함하는 반도체 장치
US11587612B2 (en) 2019-07-03 2023-02-21 Micron Technology, Inc. Neural network memory with an array of variable resistance memory cells
US20220365782A1 (en) * 2019-07-03 2022-11-17 Huaxia General Processor Technologies Inc. Instructions for operating accelerator circuit
CN114341805A (zh) * 2019-07-03 2022-04-12 华夏芯(北京)通用处理器技术有限公司 纯函数语言神经网络加速器系统及结构
US20210049504A1 (en) * 2019-08-14 2021-02-18 Rain Neuromorphics Inc. Analog system using equilibrium propagation for learning
TWI688871B (zh) * 2019-08-27 2020-03-21 國立清華大學 矩陣乘法裝置及其操作方法
JP7436968B2 (ja) 2019-09-06 2024-02-22 国立大学法人東北大学 Aiモジュール
US10879308B1 (en) 2019-09-19 2020-12-29 International Business Machines Corporation Stacked nanosheet 4T2R unit cell for neuromorphic computing
CN111293952B (zh) * 2020-02-27 2023-04-18 桂林电子科技大学 一种基于电感率模型的开关磁阻电机转矩控制系统和方法
US11604976B2 (en) * 2020-04-29 2023-03-14 International Business Machines Corporation Crossbar arrays for computations in memory-augmented neural networks
US11500614B2 (en) 2020-05-11 2022-11-15 International Business Machines Corporation Stacked FET multiply and accumulate integrated circuit
US20220027712A1 (en) * 2020-07-27 2022-01-27 National Technology & Engineering Solutions Of Sandia, Llc Neural mosaic logic unit
TWI746126B (zh) 2020-08-25 2021-11-11 創鑫智慧股份有限公司 矩陣乘法裝置及其操作方法
US11200948B1 (en) * 2020-08-27 2021-12-14 Hewlett Packard Enterprise Development Lp System for a flexible conductance crossbar
CN112598122B (zh) * 2020-12-23 2023-09-05 北方工业大学 一种基于可变电阻式随机存储器的卷积神经网络加速器
US20210150323A1 (en) * 2020-12-23 2021-05-20 Intel Corporation Methods and apparatus to implement a neural network
WO2022187405A2 (en) 2021-03-05 2022-09-09 Rain Neuromorphics Inc. Learning in time varying, dissipative electrical networks
TWI778537B (zh) * 2021-03-05 2022-09-21 國立臺灣科技大學 神經網路加速單元的動態設計方法
US11800698B2 (en) 2021-08-17 2023-10-24 International Business Machines Corporation Semiconductor structure with embedded capacitor

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544336A (en) * 1991-03-19 1996-08-06 Fujitsu Limited Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time
US20020164840A1 (en) * 2001-05-01 2002-11-07 Industrial Technology Research Institute Method for forming a wafer level package incorporating a multiplicity of elastomeric blocks and package formed
US20080164907A1 (en) * 2007-01-09 2008-07-10 University Of Washington Customized silicon chips produced using dynamically configurable polymorphic network
US20120001654A1 (en) * 2009-04-06 2012-01-05 Dmitri Borisovich Strukov Three Dimensional Multilayer Circuit
US20120007038A1 (en) * 2009-07-27 2012-01-12 Dmitri Borisovich Strukov Reconfigurable Multilayer Circuit
US20150106316A1 (en) * 2013-10-16 2015-04-16 University Of Tennessee Research Foundation Method and apparatus for providing real-time monitoring of an artifical neural network
CN105447498A (zh) * 2014-09-22 2016-03-30 三星电子株式会社 配置有神经网络的客户端设备、系统和服务器系统
US9673878B1 (en) * 2012-08-28 2017-06-06 Marvell International Ltd. Systems and methods for performing precoding in multi-user systems

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625636A (en) * 1991-10-11 1997-04-29 Bryan; Robert P. Integration of photoactive and electroactive components with vertical cavity surface emitting lasers
US5479579A (en) * 1992-09-04 1995-12-26 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Cascaded VLSI neural network architecture for on-line learning
US8004876B2 (en) * 2002-08-30 2011-08-23 Hewlett-Packard Development Company, L.P. Configurable molecular switch array
US7763978B2 (en) 2007-03-28 2010-07-27 Hewlett-Packard Development Company, L.P. Three-dimensional crossbar array systems and methods for writing information to and reading information stored in three-dimensional crossbar array junctions
US8431474B2 (en) * 2009-09-25 2013-04-30 Hewlett-Packard Development Company, L.P. Three dimensional multilayer circuit
WO2011093863A1 (en) * 2010-01-29 2011-08-04 Hewlett-Packard Development Company, L.P. Three dimensional multilayer circuit
US8510239B2 (en) 2010-10-29 2013-08-13 International Business Machines Corporation Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern
US8803212B2 (en) 2011-08-15 2014-08-12 Hewlett-Packard Development Company, L.P. Three-dimensional crossbar array
US8977583B2 (en) 2012-03-29 2015-03-10 International Business Machines Corporation Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
TWI529987B (zh) 2014-08-27 2016-04-11 華邦電子股份有限公司 自整流電阻式隨機存取記憶體(rram)記憶胞結構及電阻式隨機存取記憶體之3d交錯陣列
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US11055607B2 (en) * 2016-06-20 2021-07-06 International Business Machines Corporation Neural network using floating gate transistor
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US9779355B1 (en) * 2016-09-15 2017-10-03 International Business Machines Corporation Back propagation gates and storage capacitor for neural networks
US10164179B2 (en) * 2017-01-13 2018-12-25 International Business Machines Corporation Memristive device based on alkali-doping of transitional metal oxides
CN109146070B (zh) * 2017-06-16 2021-10-22 华为技术有限公司 一种支撑基于rram的神经网络训练的外围电路及系统
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544336A (en) * 1991-03-19 1996-08-06 Fujitsu Limited Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time
US20020164840A1 (en) * 2001-05-01 2002-11-07 Industrial Technology Research Institute Method for forming a wafer level package incorporating a multiplicity of elastomeric blocks and package formed
US20080164907A1 (en) * 2007-01-09 2008-07-10 University Of Washington Customized silicon chips produced using dynamically configurable polymorphic network
US20120001654A1 (en) * 2009-04-06 2012-01-05 Dmitri Borisovich Strukov Three Dimensional Multilayer Circuit
US20120007038A1 (en) * 2009-07-27 2012-01-12 Dmitri Borisovich Strukov Reconfigurable Multilayer Circuit
US9673878B1 (en) * 2012-08-28 2017-06-06 Marvell International Ltd. Systems and methods for performing precoding in multi-user systems
US20150106316A1 (en) * 2013-10-16 2015-04-16 University Of Tennessee Research Foundation Method and apparatus for providing real-time monitoring of an artifical neural network
CN105447498A (zh) * 2014-09-22 2016-03-30 三星电子株式会社 配置有神经网络的客户端设备、系统和服务器系统

Also Published As

Publication number Publication date
WO2019027535A1 (en) 2019-02-07
US11341402B2 (en) 2022-05-24
TW201911139A (zh) 2019-03-16
TW202020749A (zh) 2020-06-01
CN110770762A (zh) 2020-02-07
US10127494B1 (en) 2018-11-13
US20190065943A1 (en) 2019-02-28
TWI671689B (zh) 2019-09-11
EP3610422A1 (en) 2020-02-19
US20220358355A1 (en) 2022-11-10

Similar Documents

Publication Publication Date Title
TWI739143B (zh) 用於針對神經網路執行神經網路運算之電路
Amirsoleimani et al. In‐Memory Vector‐Matrix Multiplication in Monolithic Complementary Metal–Oxide–Semiconductor‐Memristor Integrated Circuits: Design Choices, Challenges, and Perspectives
Sarwar et al. Multiplier-less artificial neurons exploiting error resiliency for energy-efficient neural computing
Gupta et al. Deep learning with limited numerical precision
US10346347B2 (en) Field-programmable crossbar array for reconfigurable computing
US20230385619A1 (en) Neuromorphic chip for updating precise synaptic weight values
US9384168B2 (en) Vector matrix product accelerator for microprocessor integration
JP2018518730A (ja) ニューラルネットワークプロセッサにおけるバッチ処理
Choi et al. An energy-efficient deep convolutional neural network training accelerator for in situ personalization on smart devices
US20210319305A1 (en) System on a Chip with Deep Learning Accelerator and Random Access Memory
US11942135B2 (en) Deep learning accelerator and random access memory with a camera interface
US20210319822A1 (en) Deep Learning Accelerator and Random Access Memory with Separate Memory Access Connections
WO2021257373A1 (en) Video compression in removable storage device having deep learning accelerator and random access memory
Meng et al. Exploring compute-in-memory architecture granularity for structured pruning of neural networks
Liu et al. Era-bs: Boosting the efficiency of reram-based pim accelerator with fine-grained bit-level sparsity
EP3816869A1 (en) Batch size pipelined pim accelerator for vision inference on multiple images
EP3812971A1 (en) Ultra pipelined accelerator for machine learning inference
AU2020395435B2 (en) Flexible precision neural inference processing units
US11551075B2 (en) Artificial neural networks
Hu et al. A Co-Designed Neuromorphic Chip With Compact (17.9 KF 2) and Weak Neuron Number-Dependent Neuron/Synapse Modules
CN220983883U (zh) 矩阵计算装置、小芯片设备及人工智能加速器装置
CN117194051B (zh) 脑仿真处理方法及装置、电子设备、计算机可读存储介质
Spoon et al. Accelerating Deep Neural Networks with Phase-Change Memory Devices
Ardestani Design and Optimization of Hardware Accelerators for Deep Learning
CN117454970A (zh) 用于训练自然语言处理模型的方法和计算机系统