TW202341012A - 用於記憶體內運算之加速器架構之二維網格 - Google Patents
用於記憶體內運算之加速器架構之二維網格 Download PDFInfo
- Publication number
- TW202341012A TW202341012A TW112101704A TW112101704A TW202341012A TW 202341012 A TW202341012 A TW 202341012A TW 112101704 A TW112101704 A TW 112101704A TW 112101704 A TW112101704 A TW 112101704A TW 202341012 A TW202341012 A TW 202341012A
- Authority
- TW
- Taiwan
- Prior art keywords
- cim
- analog
- computing
- memory
- cores
- Prior art date
Links
- 239000013598 vector Substances 0.000 claims abstract description 35
- 239000011159 matrix material Substances 0.000 claims abstract description 17
- 238000013528 artificial neural network Methods 0.000 claims abstract description 8
- 239000011449 brick Substances 0.000 claims description 91
- 230000015654 memory Effects 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 16
- 238000004377 microelectronic Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 9
- 238000011176 pooling Methods 0.000 claims description 8
- 230000005284 excitation Effects 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 5
- 239000000872 buffer Substances 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 3
- 239000004744 fabric Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 11
- 238000010304 firing Methods 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 229910052751 metal Inorganic materials 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 239000000543 intermediate Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052770 Uranium Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 229910052720 vanadium Inorganic materials 0.000 description 1
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/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
- G06N3/065—Analogue 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Complex Calculations (AREA)
Abstract
本文所揭示之實施例包括一種用於深度神經網路(DNN)之記憶體內運算(CIM)之加速器架構。該CIM加速器架構可包括具有複數個記憶體內運算(CIM)之類比磚格之一第一類比網狀架構引擎。各CIM類比磚格可經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算。該第一類比網狀架構亦可包括複數個運算核心。各CIM類比磚格及各運算核心可包括經組態以執行一指令集之一微控制器。該第一類比網狀架構亦可包括以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該等運算核心的晶片上互連件。
Description
本發明大體上係關於製造深度神經網路(DNN),且更特定地,係關於用於DNN之記憶體內運算之加速器架構。
AI硬體加速器的快速改良已經成為深度神經網路(DNN)發展的一個難以發現但關鍵的驅動因素。較佳硬體能夠訓練具有巨大資料集的極大網路,以及對所得的大型且因此功能強大的DNN模型進行快速推斷。當前DNN硬體介於自具有經特別設計用於DNN訓練及推斷之眾多特徵的現代圖形處理單元(GPU)至併有降低之精確性、稀疏性、資料流架構、硬體-軟體最佳化及極大面積加速器晶片的專業數位CMOS加速器。一般而言,此類加速器必須小心地協調晶片上或晶片外揮發性記憶體(SRAM及DRAM)與高度專業的單指令多資料(SIMD)單元之間的大量資料流。此等單元執行乘法累加指令,該等指令主導大部分DNN運算工作負荷。此資料流不僅涵蓋由各DNN層產生的許多神經元激發,而且亦涵蓋DNN模型權重及部分和。
最近,可改善能效(例如,藉由晶片上記憶體中執行具有時間複雜度之乘法累加操作)的記憶體內運算(CIM)之設計會藉由減少DNN模型權重及部分和之運動而如此改善能效。藉由在短時間間隔內利用諸如SRAM或DRAM之揮發性記憶體或在較長時間間隔內利用諸如快閃記憶體、電阻性RAM (RRAM)、磁性隨機存取記憶體(MRAM)或相變記憶體(PCM)的慢速且耐久有限的非揮發性記憶體(NVM)來採用此類權重穩態性,CIM方法可提供高速及高能效。此等益處可存在於所有DNN工作負荷中,但對於展現具有低權重再使用之大的全連接層的工作負荷尤其明顯。然而,由於大部分此等記憶體僅提供二進位或極少位元的儲存,因此必須調用橫越多個字線或位元線之空間多工以實施最新技術DNN效能所需的多位元權重。此會權衡區域及能量以達成必要的乘法累加精確性,通常與字線或位元線上之時間多工配對以支援多位元激發。
一些新興的非揮發性記憶體(諸如PCM及RRAM)展現廣泛且連續之類比傳導狀態範圍,從而提供朝向高密度權重儲存之路徑。此類裝置亦引入額外考慮因素,諸如權重程式化誤差、讀出雜訊及傳導漂移。對類比非揮發性記憶體的面積高效型交叉陣列磚格執行高能效MAC操作之此類比AI範式代表了用於DNN工作負荷的硬體加速的特別有吸引力的記憶體內運算形式。
雖然在宏觀層級實施單個或極少磚格示範器相對容易,但實施全CIM加速器系統存在許多挑戰。首先,雖然MAC操作易於主導運算需求,但存在許多必須實行、嵌入整個每一DNN工作負荷中的非MAC操作。此等任務未必總是很好地映射至CIM磚格,且因此需要習知的SIMD數位運算核心。為使系統高效,可能需要多種類型之此類運算核心。舉例而言,與變換器網路中注意力運算的複雜矩陣-矩陣乘積相比,簡單的ReLU或縮放操作需要簡單得多的運算核心。經常需要專用的晶片上記憶體核心來將中間信號儲存在本端高速暫存SRAM中,以供稍後在運算中使用。此可為句子中之先前符記,或正經處理之影像或中間影像中之相鄰像素。除提供合宜數量的晶片上暫存器及合宜數量及混合的運算核心,亦必須謹慎地組織磚格、運算核心及記憶體核心之空間置放,且核心間及磚格間的資料傳輸必須為快速且高能效的,以便將與通信相關的損失減至最小。不管如剛剛描述之此類整體系統層級最佳化的明確需要,大部分先前工作已專注於包括新穎材料、裝置及電路之任一組件層級設計,在此狀況下,新穎交叉磚格僅僅固定至習知的數位加速器架構中或已專注於演算法升級以用於在功能上等效於數位對應物的類比AI系統之應用層級準確性。儘管已藉由此等努力解決了許多架構上的挑戰,但忽視了若干重要的設計考慮因素。因此,此等架構的所報告峰值效能及能效與實際持續效能及能效之間的差異可較大,此歸因於系統層級利用率低。在先前工作中發現的此等系統層級低效率源於過度強調MAC操作,以及對輔助操作、晶片上互連及資料傳送以及功率管理的實施關注不足。此外,早期的工作專注於迴旋神經網路(CNN),且幾乎沒有努力支援更廣類別之重要DNN工作負荷(諸如語言及語音網路),該等工作負荷亦已被大部分習知的數位加速器工作忽略。
本發明提供一種微電子結構。該微電子結構可包括一第一記憶體內運算(CIM)之類比磚格,該類比磚格經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣。該第一CIM類比磚格可包括經組態以執行指令及執行記憶體內操作的一第一微控制器。該微電子結構可包括以通信方式耦接至該第一CIM類比磚格之一第一運算核心。該第一運算核心可包括經組態以執行指令之一第二微控制器。該等微控制器提供本端控制操作的一益處,使得各類比磚格或各運算核心可有效地運行,且使類比磚格與運算核心之間的通信時間最短。
本發明之實施例包括一種用於深度神經網路(DNN)之記憶體內運算(CIM)之加速器架構。該CIM加速器架構可包括一第一類比網狀架構引擎(fabric engine)。該第一類比網狀架構引擎可包括複數個記憶體內運算(CIM)之類比磚格。各CIM類比磚格可經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算。該第一類比網狀架構亦可包括複數個運算核心。各CIM類比磚格及各運算核心包含經組態以執行一指令集之一微控制器。該第一類比網狀架構亦可包括以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該等運算核心的晶片上互連件。
本發明之實施例包括一種非均質且可程式化的記憶體內運算(CIM)之加速器架構,其包括經組態以儲存一權重運算元矩陣的複數個記憶體內運算(CIM)之類比磚格。各CIM類比磚格可經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算。該CIM加速器架構可包括一第一複數個運算核心,其中各運算核心包括經組態以執行自注意力輔助操作的高速暫存記憶體。該CIM加速器架構可包括經組態以執行複雜的LSTM輔助操作及選自由以下各者組成之群之操作的一第二複數個運算核心:tanh、sigmoid、乘法及加法。該CIM加速器架構亦可包括:一微控制器,其嵌入於該第一複數個類比磚格中之至少一個CIM類比磚格及該第二複數個運算核心中之至少一個運算核心中;及晶片上互連件,其以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該第一複數個運算核心及該第二複數個運算核心。
本發明之實施例包括一種非均質且可程式化的記憶體內運算(CIM)之加速器架構,其包括經組態以儲存一權重運算元矩陣的複數個記憶體內運算(CIM)之類比磚格。各CIM類比磚格可經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算。該CIM加速器架構可包括一第一複數個運算核心,其中各運算核心包括經組態以執行自注意力輔助操作的高速暫存記憶體。該CIM加速器架構可包括經組態以執行複雜的LSTM輔助操作及選自由以下各者組成之群之操作的一第二複數個運算核心:tanh、sigmoid、乘法及加法。該CIM加速器架構亦可包括以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該第一複數個運算核心及該第二複數個運算核心的晶片上互連件。
將參考以下詳細描述及圖式獲得本發明之更完整理解以及本發明之另外特徵及優勢。
本文提供非均質且可程式化的記憶體內運算(CIM)之加速器架構及用於深度神經網路(DNN)推斷之微電子結構。此架構將用於權重穩定的高能效乘法累加(MAC)操作之空間分佈式CIM記憶體陣列「磚格」與用於輔助數位運算之非均質特殊功能「運算核心」相組合。使用二維(2D)網格來在短距離內交換大量並行的神經元激發資料向量,為包括迴旋神經網路(CNN)、長短期記憶體(LSTM)及變換器的各種DNN工作負荷提供全面的端到端支援。本文中所揭示之實施例包括用於「類比網狀架構」(亦即,由2D網格互連之磚格及運算核心之2D柵格)的設計,該設計解決了DNN至硬體上之映射以及橫跨一系列小批量尺寸之各種DNN工作負荷的管線作業的效率。實施例亦可包括基於低功率非揮發性類比記憶體元件之密集交叉陣列的使用用於現實「類比AI」系統的投射組件參數之系統層級評估,同時併有單個共同類比網狀架構設計,該設計可藉由在多個類比AI晶片之間引入資料傳輸而擴展至大型網路。
現轉而參看圖式,圖1描繪根據本發明之一個實施例的繪示深度神經網路(DNN)推斷環境100之功能方塊圖。圖1僅提供一個實施之圖示且並不暗示關於可實施不同實施例之環境的任何限制。熟習此項技術者可在不脫離由申請專利範圍所敍述之本發明範疇的情況下對所描繪環境進行許多修改。
DNN推斷環境100包括經由網路102連接的加速器架構104及主機裝置106。網路102可為例如電信網路、區域網路(LAN)、諸如網際網路之廣域網路(WAN)或三者的組合,且可包括有線、無線或光纖連接。網路102可包括一或多個有線及/或無線網路,其能夠接收並傳輸資料、語音及/或視訊信號,包括包括語音、資料及視訊資訊之多媒體信號。一般而言,網路102可為將支援加速器架構104、主機裝置106及DNN推斷環境100內之其他運算裝置(未圖示)之間的通信的連接及協定之任何組合。在各種實施例中,網路102經由有線、無線或光學連接而在本端操作,且可為連接及協定(例如,個人區域網路(PAN)、近場通信(NFC)、雷射、紅外線、超音波等)之任何組合。
主機裝置106可為獨立式運算裝置、管理伺服器、網頁伺服器、行動運算裝置或能夠接收、發送及處理資料的任何其他電子裝置或運算系統。在其他實施例中,主機裝置106可表示諸如在雲端運算環境中利用多個電腦作為伺服器系統的伺服器運算系統。在另一實施例中,主機裝置106可為膝上型電腦、平板電腦、迷你筆記型電腦、個人電腦(PC)、桌上型電腦、個人數位助理(PDA)、智慧型手機或能夠經由網路102與DNN推斷環境100內之其他運算裝置(未圖示)通信的任何可程式化電子裝置。在另一實施例中,主機裝置106表示利用已連接電腦及組件(例如,資料庫伺服器電腦、應用程式伺服器電腦等)的運算系統,該等已連接電腦及組件在DNN推斷環境100內存取時充當無縫資源之單個集區。在所描繪之實施例中,主機裝置106包括資料集112,其可包括自資料源108收集之原始原料價格資料或原料體資料。在其他實施例中,主機裝置106可含有尚未在DNN推斷環境100中描繪之其他應用程式、資料庫、程式等。
圖2描繪繪示用於CIM加速器架構中之類比網狀架構200的示意圖。類比網狀架構200包括具有配置成行及列的諸如CIM類比磚格202及運算核心204之單位胞元的微電子結構。類比磚格202及運算核心204在整個類比網狀架構200中非均質地分佈,以在類比磚格202與運算核心204之間的通信中增加通信速度及減小能量使用率。非均質分佈包括各種類型之類比磚格202及運算核心204之組合,該等類比磚格及運算核心可製造成具有相異屬性以用於執行提高DNN推斷環境100的總效率及速度之特定任務。各運算核心204可定位於類比磚格202之間且以通信方式耦接至該等類比磚格。各CIM類比磚格及各運算核心以通信方式連接至所有緊鄰的CIM類比磚格或運算核心。在某些實施例中,運算核心204可位於其他運算核心204之間且以通信方式耦接至該等其他運算核心。類似地,各類比磚格202可位於類比磚格202及/或運算核心204之間且以通信方式耦接至該等類比磚格及/或運算核心。換言之,各類比磚格202及各運算核心204可以通信方式連接至所有緊鄰的CIM類比磚格202或運算核心204。
類比磚格202為主要的乘法累加(MAC)運算及權重儲存單元,其經組態以儲存用於DNN推斷工作負荷之權重運算元矩陣。激發作為並行位元流達成,並且被轉換成類比脈衝持續時間,從而實現包含在類比磚格202中之類比記憶體陣列的並行激勵。藉由歐姆(Ohm)電流定律及克希荷夫(Kirchhoff)電流定律之組合執行乘法累加。所得原始總和自類比電流及積分電荷轉換回至數位位元流,該等數位位元流可在下文詳細描述之二維(2D)網格上發出。使用類比數位轉換器(ADC)並行地執行轉換。由於儲存於類比磚格202上之DNN模型操作權重運算元在推斷開始之前經預先程式化至類比磚格202中,所以必須謹慎地選擇類比磚格202之輸入及輸出位元精確性。過度的輸入精確性會導致更長的讀取時間及更高的讀取能量。過度的輸出精確性需要ADC中之較高解析度,其會產生額外面積及能量消耗。所需要的精確性取決於DNN工作負荷之準確性要求以及單位胞元及周邊電路兩者的非理想性。
類比磚格202可執行多種操作,其中一些類比磚格202經製造以更高效地執行某些操作且其他類比磚格經製造以更高效地執行其他操作。舉例而言,操作可包括類比MAC操作,其可易於在類比交叉物上執行。
由類比網狀架構200執行的操作亦可包括無法容易地在類比交叉物上執行的輔助操作(例如ReLU、tanh、softmax)。對於此等操作,類比網狀架構200包括運算核心204,且將所有輔助操作映射至含有專業化單元的數位運算核心上以支援此等運算。此等操作可包括以下各者中之一或多者:批次正規化、ReLU、GeLU、逐元素相加、逐元素相乘、平均池化、最大池化、層正規化、經由查找表之激發函式、LSTM輔助、tanh、sigmoid、softmax及自注意力。
對於LSTM輔助,以下運算自MAC輸出產生下一隱藏(h)及單元(c)狀態:
其中W、U及b表示儲存權重運算元之DNN權重-矩陣。
對於自注意力,嵌入激發通常劃分成多個向量大小為64之頭。對於含有查詢(Q)、金鑰(K)及值(V)矩陣之各組注意力頭,需要以下運算:
Attention(
Q,K,V) = softmax(
QK
T / sqrt(d
k ))
V其中d
k為金鑰之尺寸,其通常為64。類比網狀架構200之所繪示之實施例包括三種類型之專業化運算核心以處理此等輔助操作。「重」運算核心CC
H206包括雙埠SRAM,其用於自注意力運算(變換器)之激發之分段,以及用於重新組織權重-穩態迴旋(CNN)之分段激發的對準器操作。除softmax外,CC
H206將10位元整數精確性用於自注意力運算,足以達成BERT上之近軟體等效準確性。「輕」運算核心CC
L208設計成用於重量較輕但大規模並行的運算,諸如激發函式、稠合LSTM輔助Ops及LN運算。在不進行注意力運算之情況下,記憶體核心MC 210與CC
H206類似,其中單埠SRAM在相同區域佔據面積中具有較高容量,以支援CNN及用於雙向LSTM網路之激發分段。
此等專業運算核心206、208、210及其不同運算操作使得能夠在類比磚格202中藉由MAC操作產生且稍後消耗資料的位置附近來執行輔助操作。運算核心206、208、210可基於諸如:精確性、資料格式、資料流、儲存容量及可程式性之專業化而不同。類比網狀架構200亦可包括與DRAM 216通信的輸入著陸墊212及輸出著陸墊214,且可經組態以執行晶片外輸入輸出(I/O)資料傳送操作以最終與主機裝置218通信。
類比網狀架構200亦可執行並非原始DNN圖的部分的額外操作。此等額外操作添加至類比AI系統以執行雜訊管理及誤差補償功能。因而,此等操作不可計入效能量度,且執行此等操作所花費的能量及時間必須由執行「真實」DNN操作的高能效及速度攤銷。然而,此等額外操作有助於提供DNN準確性的功能等效性,且因此由類比網狀架構200支援。
為了支援及組織由類比網狀架構200執行的操作中之各者,磚格202及核心204中之各者可包括控制用於特定組件(亦即,磚格202或核心204)之操作的微控制器220。圖2的類比網狀架構200僅展示用於磚格202、CC
H206、CC
L208及MC 210中之各者的微控制器220。然而,在某些實施例中,類比網狀架構200的磚格202、CC
H206、CC
L208及MC 210中之全部可包括微控制器220。微控制器220控制用於特定磚格202或核心204之操作。舉例而言,當DNN工作負荷需要分段激發資料時,磚格202或核心204可能需要高速暫存記憶體。在所繪示之實施例的類比網狀架構200中,SRAM佈建於各CC
H206及MC 210之各微控制器220內。每一核心之暫存器需求由最大序列長度、影像解析度(輸入尺寸)及層之數目(網路深度)與支援核心204之數目之比率規定。為了涵蓋最普遍的用例,微控制器220可在各CC
H206及MC 210中包括SRAM以用於尺寸及複雜度增加的序列長度的完全本端支援。藉由使用用於各DNN層之多個CC
H206及MC 210或藉由將資料存放在晶片外主記憶體中,可在每區域吞吐量或能效有所下降的情況下支援較長序列。
微控制器220亦可執行儲存於專用
i - mem記憶體中之指令集。在程式準備期間編譯指令及同步序列且接著將其連同用於新工作負荷之DNN權重程式化一起預先載入至適當
i - mems。在推斷期間,各組件(亦即,磚格202或核心204)獨立地執行由週期性全域同步介導之特定指令集,以確保成功執行總體DNN工作負荷。控制及同步經軟體管理以將額外硬體面積預算及功率預算減至最小。
圖3描繪併入至圖2之類比網狀架構200中的二維(2D)網格250。2D網格250包括形成至各CIM類比磚格202中且形成於各運算核心204之對應部分上方的平行金屬列線252及平行金屬行線254。雖然僅僅繪示了有限數目個列線252及行線254,但單位胞元列及行中之各者可藉由專用於其之兩種線製造,從而准許以水平、垂直或加號圖案傳輸(水平及垂直線對已連接)。運算核心204可經組態成在相鄰的類比磚格202上同時操作功能。2D網格250亦可啟用多播,其中接收器之子集可同時獲得相同資料。亦即,2D網格實現涉及多個發送器核心204或發送磚格202以及多個核心204或接收器磚格之多個資料傳送,所有組件皆同時參與。
空間架構將具有許多組件,該等組件僅對於總管線潛時之一部分起作用以提供功率節省功能性,從而執行選自由以下各者組成之群的操作中之至少一者:粗粒度時脈閘控、細粒度時脈閘控、粗粒度功率閘控、細粒度功率閘控。亦可存在在整個給定DNN工作負荷中完全閒置的許多未映射組件。在此上下文中,適當功率閘控為達成高能效的關鍵態樣。因此,類比網狀架構200可包括多種功率閘控及時脈閘控選項。基準選項出於比較目的為無功率閘控,其中所有組件基於彼組件之無效功率規範在整個工作負荷中持續消耗能量。第二選項為粗粒度功率閘控,其中若組件在整個工作負荷種保持未映射,則組件被斷電及/或被時脈閘控。粗粒度功率閘控亦包括基於磚格202區段利用之部分磚格功率閘控及時脈閘控,其中完全未映射之區段被時脈閘控且其相關聯之周邊電路系統斷電,但部分利用之區段消耗其完全無效功率。第三選項為細粒度功率閘控。細粒度功率閘控包括用於切斷未映射核心204、磚格202及磚格區段的粗粒度功率閘控之所有特徵,且另外,各組件在當在總體工作負荷執行時間期間首先及最後使用組件時的時間之外被時脈閘控及功率閘控。
在某些實施例中,類比磚格202可包括配置成512列及512行的單位胞元。各512×512類比磚格202經分層設計成具有八列及八行的區段,各區段含有64×64單位胞元。各區段列及行可經獨立地被功率閘控及時脈閘控,本文中定義為粗粒度功率閘控,且此有助於減輕因映射效率不佳導致的效率損失。
圖4描繪根據本發明之一個實施例的2D網格400之示意圖。2D網格400形成於組件區塊403上方,該等組件區塊可為上文所描述之磚格(例如磚格202)或核心(例如核心204)中之任一者。2D網格400以類似於上文亦描述之2D網格250的方式包括平行金屬列線452及平行金屬行線454。然而,圖4中之2D網格400亦繪示組件區塊403之間的邊界460。在各組件區塊403的所有四個邊界460上,2D網格400包括控制資料傳輸之邊界保護電路(BG) 462。BG 462包括藉由儲存於各組件區塊403之本端微控制器(例如,圖2的微控制器220)中的數位位元的向量組態之信號緩衝器及通過閘,以在組件區塊403將資料廣播至一或多個目標組件區塊403之前建立電路切換通信路徑。
各BG 462可獨立地組態其網格佈線(例如,列線452或行線454)之各區段。因此,可在傳送期間對資料向量執行在DNN工作負荷內有用之高效操縱操作,包括串聯、拆分、搜集及全搜集。舉例而言,在隱藏尺寸為512的LSTM網路中,常見用例為四個向量的串聯,各向量之長度為128,跨越兩個區段,如四個相鄰CC
L核心產生。可藉由一個並行2D網格操作而有效地執行此串聯。為了使資料通信及運算重疊,發送及接收電路各自配備有兩組資料暫存器。此允許在不導致管線暫停之情況下收緊排程,此係由於2D網格可同時在組件區塊403 (例如,個別核心204或磚格202)內部來傳輸資料且消耗資料。
圖5描繪根據本發明之一個實施例的具有一個類比網狀架構引擎570之CIM架構500之示意圖。類比網狀架構引擎570可包括形成為二維(2D)網格之複數個CIM類比磚格及連接至2D網格之複數個運算核心。為了解釋簡單,在圖5中不具體繪示磚格及核心。然而,各類比磚格及各運算核心可以通信方式連接至所有緊鄰的CIM類比磚格或運算核心。類比網狀架構引擎570可由高頻寬晶片對晶片輸入/輸出572包圍。此外,可針對類比網狀架構引擎500之各邊界分隔及個別化高頻寬晶片對晶片輸入/輸出572。
圖6描繪根據本發明之一個實施例的具有帶有四個類比網狀架構引擎670之類比網狀架構(AF)晶片674之CIM架構600之示意圖。四個類比網狀架構引擎670可以類似於圖5之類比網狀架構引擎570的方式包括磚格及核心。圖6之類比網狀架構引擎670可全部與單個2D網格連接。此外,圖6之類比網狀架構引擎670可包括圍繞所有四個類比網狀架構引擎670之周邊的單個高頻寬晶片對晶片輸入/輸出672,而非單獨地包括用於各類比網狀架構引擎670之高頻寬晶片對晶片輸入/輸出。
圖7描繪根據本發明之一個實施例的具有各自帶有四個類比網狀架構引擎770的四個AF晶片774之CIM架構700之示意圖。為了按比例擴大至較大工作負荷,多個類比網狀架構引擎770可平鋪在一起以實施大的權重穩態系統。可藉由在同一晶片上延伸2D網格線或藉由引入合適晶片對晶片輸入/輸出772而將多個AF晶片774連接在一起以啟用多晶片模組系統。由於類比CIM及CMOS技術持續按比例調整至較高面積密度,因此可預期各AF晶片774之佔據面積縮小。此將在一個晶片上產生更多的AF引擎,從而在提供足夠的類比CIM磚格(及支援核心)以儲存所有DNN權重運算元時將交叉晶片通信減至最小,亦允許再使用模組化設計構築體以實現輕鬆的可擴展性。
上文所揭示之實施例可用於完成矩陣向量乘法(MVM)操作。舉例而言,類比網狀架構可用於完成長短期記憶體(LSTM)工作負荷。LSTM網路由循環連接之記憶體區塊組成,該等區塊各自含有自連接之記憶體單元及三個乘法閘(輸入、輸出及遺忘)以控制單元激發。上文所揭示之類比網狀架構微電子結構可在時間t處被給予輸入向量x(t),自先前時間步長(t-1)藉由四組具有權重運算元之MAC操作繼之以輔助操作來更新單元狀態c(t)及隱藏狀態h(t)。在簡單的LSTM網路中,輸入向量(x)、單元狀態(c)及隱藏狀態(h)的尺寸均相等,通常介於50至2000範圍內。因此,具有尺寸為512的輸入及隱藏向量的1層LSTM網路需要各自有512×512個單位胞元的8個磚格。在各時間步長中,在輸入向量x(t)發送至磚格之前,其首先與來自先前時間步長之隱藏向量h(t-1)串聯。將具有相同輸入尺寸之權重運算元映射至水平相鄰磚格,以利用在2D網格上之多播。藉由將具有相同輸出尺寸之權重運算元映射至垂直相鄰的磚格,來自磚格之各行的輸出向量可逐個有效地移動至其行中之CC
L核心以用於逐元素加法及輔助操作。類比網狀架構可進一步交錯權重以用於單元及閘MAC操作,以使得各磚格+CC
L行產生h
f(t)、h
i(t)、h
o(t)及h
c(t)各自的128個元素,從而允許CC
L核心使用稠合LSTM輔助Ops建構c(t)及h(t)的128個元素。來自4個單獨CC
L核心之4組h(t)元素在網格上串聯以產生整個h(t)向量,且c(t)元素在各個別CC
L核心處在本端保存以用於下一時間步長。藉由跨越多個CC
L核心分佈數位運算,核心潛時、剩餘核心及磚格工作負荷減少,且避免不必要的網格爭用。此等吞吐量增益隨著較大網路及較大的小批量尺寸而有較大增長。
上文所揭示之實施例亦可用以完成諸如變換器工作負荷之矩陣向量乘法(MVM)操作。變換器工作負荷層由自注意力區塊繼之以兩個較大全連接層組成。自注意力區塊包括投射中MAC操作以產生對於序列內之各符記具有相等長度之查詢(Q)、金鑰(K)及值(V)向量,以及投射外MAC操作以為輸入準備注意力資料。給定向量在512與2048之間的嵌入尺寸,所揭示之實施例中的類比網狀架構水平地映射投射中磚格以利用2D網格上之多播。多頭自注意力運算在最近之可用CC
H中進行,各自並行地處理多個頭。
在此自注意力區塊之後,在將輸入激發廣播至其他大量磚格之前,在附近的CC
L核心處執行殘差逐元素相加及層正規化(LN)操作。所有磚格的部分輸出被收集至最終的CC
L核心,在該最終的CC
L核心處執行最終的殘差相加及LN操作。對於較大的變換器模型,基於網路之嵌入尺寸,磚格、CC
H及CC
L核心之所需數目直接增加。
迴旋神經網路(CNN)為包含大量小型權重核濾波器組之重激發網路。儘管權重及激發再使用為重要的,但其的確隨著網路深度而變化,此係因為在初始層中對大型影像進行迴旋的少數濾波器讓步於網路更深處的許多濾波器及小型中間影像。在權重穩態環境中,必須重新組織所儲存之激發並將其發送出以存取呈不同圖案之相同權重內核。此引發顯著SRAM存取且需要謹慎的記憶體管理以獲得良好能效。由於MAC操作之潛時係由所需類比CIM磚格讀取之數目判定,而非由總Ops之數目判定,因此權重再使用可減少所需磚格之總數目卻增加總潛時。本文中所揭示之實施例專注於準確地考慮CNN之能效且並不為了進一步最佳化吞吐量而實施有意的權重複製。
即使在CNN層之相同部分(如,殘差瓶頸區塊)內,權重層尺寸及形狀亦可能有很大差異,從而引發所需磚格之數目變化。此外,在CNN激發之細粒度管線作業之情況下,一旦已產生來自先前層之足夠輸出,各CNN層便可開始處理。此處,各權重層在磚格上儘可能地水平地組織,以確保至執行激發校準之對應核心(CC
H或MC)的專用的2D網格路徑。
電腦可讀儲存媒體可為可保持及儲存指令以供指令執行裝置使用的有形裝置。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前文之任何合適組合。電腦可讀儲存媒體之更特定實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶棒、軟性磁碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由電線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理裝置或經由網路(例如,網際網路、局域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道電腦及/或邊緣伺服器。各運算/處理裝置中之網路配接器卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以儲存於各別運算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫的組譯程式指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料或原始程式碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言及諸如「C」程式設計語言或類似程式設計語言之習知程序程式設計語言。電腦可讀程式指令可完全在使用者之電腦上執行,部分地在使用者之電腦上執行,作為獨立套裝軟體而執行,部分地在使用者之電腦上且部分地在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在後種情形中,遠端電腦可經由任一類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可(例如,經由使用網際網路服務提供者之網際網路)連接至外部電腦。在一些實施例中,包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路系統可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
已出於說明之目的呈現本發明之各種實施例之描述,但該等描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神之情況下,許多修改及變化對一般熟習此項技術者而言將顯而易見。本文中所使用之術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現之技術的技術改良,或使得其他一般熟習此項技術者能夠理解本文中所描述之實施例。
100:推斷環境
102:網路
104:加速器架構
106:主機裝置
200:類比網狀架構
202:磚格
204:核心
206:「重」運算核心CC
H208:「輕」運算核心CC
L210:記憶體核心MC
212:輸入著陸墊
214:輸出著陸墊
216:DRAM
218:主機裝置
220:微控制器
250:二維網格
252:列線
254:行線
400:二維網格
403:組件區塊
452:列線
454:行線
460:邊界
462:邊界保護電路
500:類比網狀架構引擎
570:類比網狀架構引擎
572:高頻寬晶片對晶片輸入/輸出
600:記憶體內運算之架構
670:類比網狀架構引擎
672:高頻寬晶片對晶片輸入/輸出
674:類比網狀架構晶片
700:記憶體內運算之架構
770:類比網狀架構引擎
772:晶片對晶片輸入/輸出
774:類比網狀架構晶片
圖1描繪根據本發明之一個實施例的繪示深度神經網路(DNN)推斷環境100之功能方塊圖;
圖2描繪根據本發明之一個實施例的繪示用於CIM加速器架構中之類比網狀架構200之示意圖;
圖3描繪根據本發明之一個實施例的併入至圖2之類比網狀架構中的二維(2D)網格;
圖4描繪根據本發明之一個實施例的2D網格之示意圖;
圖5描繪根據本發明之一個實施例的具有一個類比網狀架構引擎之CIM架構之示意圖;
圖6描繪根據本發明之一個實施例的具有帶有四個類比網狀架構引擎之類比網狀架構(AF)晶片之CIM架構之示意圖;且
圖7描繪根據本發明之一個實施例的具有各自帶有四個類比網狀架構引擎的四個AF晶片之CIM架構之示意圖。
400:二維網格
403:組件區塊
452:列線
454:行線
460:邊界
462:邊界保護電路
Claims (25)
- 一種微電子結構,其包含: 一第一記憶體內運算(CIM)之類比磚格,其經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,其中該第一CIM類比磚格包含經組態以執行指令及執行記憶體內操作的一第一微控制器;及 一第一運算核心,其以通信方式耦接至該第一CIM類比磚格,其中該第一運算核心包含經組態以執行指令之一第二微控制器。
- 如請求項1之微電子結構,其中該第一運算核心包含一高速暫存記憶體。
- 如請求項1之微電子結構,其中該第一運算核心經組態以執行選自由以下各者組成之群的一操作:批次正規化、整流線性激發函式、高斯誤差線性單元、逐元素相加、逐元素相乘、平均池化、最大池化、層正規化、經由查找表之激發函式、長短期記憶體輔助、tanh、sigmoid、softmax及自注意力。
- 如請求項1之微電子結構,其中該第一運算核心包含一功率節省功能性以執行選自由以下各者組成之群的操作中之至少一者:粗粒度時脈閘控、細粒度時脈閘控、粗粒度功率閘控、細粒度功率閘控。
- 如請求項1之微電子結構,其中該第一運算核心經組態以執行晶片外輸入輸出(I/O)資料傳送操作。
- 如請求項1之微電子結構,其中該第一CIM類比磚格經組態以執行向量矩陣乘法(VMM)操作。
- 如請求項1之微電子結構,其進一步包含以通信方式耦接至該第一CIM類比磚格及該第一運算核心之一第二運算核心,其中該第二運算核心包含組態以執行一指令集之一第三微控制器。
- 如請求項7之微電子結構,其中該第一運算核心與該第二運算核心基於選自由以下各者組成之群的專業化而不同:精確性、資料格式、資料流、儲存容量及可程式性。
- 一種用於深度神經網路(DNN)之記憶體內運算(CIM)之加速器架構,其包含: 一第一類比網狀架構引擎,其包含: 複數個記憶體內運算(CIM)之類比磚格,其中各CIM類比磚格經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,且執行記憶體內運算; 複數個運算核心,其中各CIM類比磚格及各運算核心包含經組態以執行一指令集之一微控制器;及 晶片上互連件,其以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該等運算核心。
- 如請求項9之CIM加速器架構,其中該複數個運算核心包含: 運算核心之一第一子集,其包含高速暫存記憶體之一第一容量;及 運算核心之一第二子集,其包含高速暫存記憶體之一第二容量。
- 如請求項9之CIM加速器架構,其中該複數個運算核心包含經組態以執行晶片外輸入輸出(I/O)資料傳送操作之運算核心之一子集。
- 如請求項9之CIM加速器架構,其中該複數個運算核心中之各運算核心經組態以執行選自由以下各者組成之群的一操作:批次正規化、ReLU、GeLU、逐元素相加、逐元素相乘、平均池化及最大池化、層正規化、經由查找表之激發函式、LSTM輔助、tanh、sigmoid、softmax及自注意力。
- 如請求項9之CIM加速器架構,其中各CIM類比磚格及各運算核心包含一功率節省功能性以執行選自由以下各者組成之群之一操作:粗粒度時脈閘控、細粒度時脈閘控、粗粒度功率閘控、細粒度功率閘控。
- 如請求項9之CIM加速器架構,其中來自該複數個運算核心之一第一運算核心及來自該複數個運算核心之一第二運算核心基於選自由以下各者組成之群之專業化而不同:精確性、資料格式、資料流、儲存容量及可程式性。
- 如請求項9之CIM加速器架構,其進一步包含: 一第一四引擎系統,其包含: 一第二類比網狀架構引擎; 一第三類比網狀架構引擎;及 一第四類比網狀架構引擎,其中該第二類比網狀架構引擎、該第三類比網狀架構引擎及該第四類比網狀架構引擎藉由一2D網格與該第一類比網狀架構引擎以通信方式連接,且該2D網格由一高頻寬晶片對晶片輸入/輸出包圍。
- 如請求項15之CIM加速器架構,其進一步包含: 一第二四引擎系統; 一第三四引擎系統;及 一第四四引擎系統,其作為一多晶片系統以通信方式連接。
- 如請求項9之CIM加速器架構,其中使用包含平行列線及平行行線之一二維(2D)網格來連接複數個CIM類比磚格及運算核心,該2D網格實現該複數個CIM類比磚格與該複數個運算核心之間的多播。
- 如請求項9之CIM加速器架構,其進一步包含一邊界保護電路(BG),該邊界保護電路處於該複數個CIM類比磚格及該複數個運算核心之各邊界處的各平行列線及各平行行線上。
- 如請求項18之CIM加速器架構,其中該等BG包含由在各運算核心及CIM類比磚格上之一微控制器控制的信號緩衝器及通過閘。
- 一種非均質且可程式化記憶體內運算(CIM)之加速器架構,其包含: 複數個記憶體內運算(CIM)之類比磚格,其經組態以儲存一權重運算元矩陣,其中各CIM類比磚格經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算; 一第一複數個運算核心,其中各運算核心包含經組態以執行自注意力輔助操作之一高速暫存記憶體; 一第二複數個運算核心,其經組態以執行複雜的LSTM輔助操作; 一微控制器,其嵌入於第一複數個類比磚格中之至少一個CIM類比磚格以及該第二複數個運算核心中之至少一個運算核心中;及 晶片上互連件,其以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該第一複數個運算核心及該第二複數個運算核心。
- 如請求項20之CIM加速器架構,其進一步包含一第三複數個運算核心,其可經組態以執行晶片外輸入輸出(I/O)資料傳送操作。
- 如請求項20之CIM加速器架構,其進一步包含一第三複數個運算核心,其中該第三複數個運算核心中之各運算核心包含一功率節省功能性以執行選自由以下各者組成之群的操作中之至少一者:粗粒度時脈閘控、細粒度時脈閘控、粗粒度功率閘控、細粒度功率閘控。
- 如請求項20之CIM加速器架構,其中該第一複數個運算核心及第二複數個運算核心經組態以執行選自由以下各者組成之群的一操作:批次正規化、ReLU、GeLU、逐元素相加、逐元素相乘、平均池化及最大池化、層正規化、經由查找表之激發函式、tanh、sigmoid及LSTM輔助。
- 如請求項20之CIM加速器架構,其進一步包含一邊界保護電路(BG),該邊界保護電路在該第一複數個運算核心、該第二複數個運算核心及該複數個CIM類比磚格之間的該等晶片上互連件之平行列線及平行行線上。
- 一種非均質且可程式化記憶體內運算(CIM)之加速器架構,其包含: 複數個記憶體內運算(CIM)之類比磚格,其經組態以儲存一權重運算元矩陣,其中各CIM類比磚格經組態以儲存自一輸入向量產生一輸出向量的一權重運算元矩陣,及執行記憶體內運算; 一第一複數個運算核心,其中各運算核心包含經組態以執行自注意力輔助操作之高速暫存記憶體; 一第二複數個運算核心,其經組態以執行複雜的LSTM輔助操作及選自由以下各者組成之群之操作:tanh、sigmoid、乘法及加法;及 晶片上互連件,其以通信方式將該複數個CIM類比磚格中之所有CIM類比磚格連接至該第一複數個運算核心及該第二複數個運算核心。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/657,431 | 2022-03-31 | ||
US17/657,431 US20230316060A1 (en) | 2022-03-31 | 2022-03-31 | Two-dimensional mesh for compute-in-memory accelerator architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202341012A true TW202341012A (zh) | 2023-10-16 |
Family
ID=85685752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112101704A TW202341012A (zh) | 2022-03-31 | 2023-01-16 | 用於記憶體內運算之加速器架構之二維網格 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230316060A1 (zh) |
TW (1) | TW202341012A (zh) |
WO (1) | WO2023186503A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12118397B2 (en) * | 2022-09-15 | 2024-10-15 | Lemon Inc. | Accelerating data processing by offloading thread computation |
CN117631751B (zh) * | 2024-01-25 | 2024-05-03 | 北京壁仞科技开发有限公司 | 人工智能芯片、特殊函数计算方法和计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11270197B2 (en) * | 2019-03-12 | 2022-03-08 | Nvidia Corp. | Efficient neural network accelerator dataflows |
-
2022
- 2022-03-31 US US17/657,431 patent/US20230316060A1/en active Pending
-
2023
- 2023-01-16 TW TW112101704A patent/TW202341012A/zh unknown
- 2023-03-13 WO PCT/EP2023/056303 patent/WO2023186503A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20230316060A1 (en) | 2023-10-05 |
WO2023186503A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chi et al. | Prime: A novel processing-in-memory architecture for neural network computation in reram-based main memory | |
Imani et al. | Floatpim: In-memory acceleration of deep neural network training with high precision | |
Shafiee et al. | ISAAC: A convolutional neural network accelerator with in-situ analog arithmetic in crossbars | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
TW202341012A (zh) | 用於記憶體內運算之加速器架構之二維網格 | |
US10846591B2 (en) | Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks | |
WO2022183759A1 (zh) | 存算一体处理器、处理系统、处理装置以及算法模型的部署方法 | |
JP2022554371A (ja) | メモリスタに基づくニューラルネットワークの並列加速方法およびプロセッサ、装置 | |
CN114254733A (zh) | 使用树形直接存储器存取(dma)总线的神经网络权重分布 | |
Jain et al. | A heterogeneous and programmable compute-in-memory accelerator architecture for analog-ai using dense 2-d mesh | |
Jain et al. | Neural network accelerator design with resistive crossbars: Opportunities and challenges | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
EP3971787A1 (en) | Spatial tiling of compute arrays with shared control | |
Heo et al. | T-PIM: An energy-efficient processing-in-memory accelerator for end-to-end on-device training | |
Chen et al. | Emat: an efficient multi-task architecture for transfer learning using reram | |
Delaye et al. | Deep learning challenges and solutions with xilinx fpgas | |
Arlagadda et al. | Hardware-Software Co-Design for Efficient Deep Learning Acceleration | |
US11704562B1 (en) | Architecture for virtual instructions | |
US20220058468A1 (en) | Field Programmable Neural Array | |
Sharma et al. | A Heterogeneous Chiplet Architecture for Accelerating End-to-End Transformer Models | |
Zhou et al. | Bring memristive in-memory computing into general-purpose machine learning: A perspective | |
You et al. | New paradigm of FPGA-based computational intelligence from surveying the implementation of DNN accelerators | |
Liu et al. | A cloud server oriented FPGA accelerator for LSTM recurrent neural network | |
Liu et al. | FPRA: A fine-grained parallel RRAM architecture | |
CN116997910A (zh) | 张量控制器架构 |