TW202205269A - 用於執行深度神經網路運算的記憶體及其操作方法 - Google Patents
用於執行深度神經網路運算的記憶體及其操作方法 Download PDFInfo
- Publication number
- TW202205269A TW202205269A TW109124237A TW109124237A TW202205269A TW 202205269 A TW202205269 A TW 202205269A TW 109124237 A TW109124237 A TW 109124237A TW 109124237 A TW109124237 A TW 109124237A TW 202205269 A TW202205269 A TW 202205269A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- weight
- memory
- representative
- encoded data
- 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/04—Architecture, e.g. interconnection topology
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Neurology (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一種記憶體適用於執行深度神經網路運算。記憶體包括:處理單元以及權重單元。處理單元具有資料輸入端與資料輸出端。權重單元經配置以耦接處理單元的資料輸入端。權重單元包括索引記憶體與映射表。索引記憶體經配置以儲存多個權重索引。映射表經配置以將多個權重索引分別對應至多個代表權重資料。
Description
本發明是有關於一種用於執行深度神經網路運算的記憶體及其操作方法。
隨著人工智慧(Artificial Intelligence,AI)運算的演進,AI運算的應用範圍越來越廣泛。例如,經由神經網路模型來進行影像分析、語音分析、自然語言處理等神經網路運算。因此,各技術領域持續地投入AI的研發與應用,適用於深度神經網路(Deep Neural Networks,DNN)、卷積神經網路(Convolutional Neural Network,CNN)等等的各種演算法也不斷推陳出新。
然而,無論是哪一種神經網路運算所使用的演算法,在隱藏層(Hidden layer)中所使用的資料量非常龐大,才能達成機器學習的功能。具體而言,深度神經網路的運算基礎實際上是來自於神經元與權重之間的矩陣運算。在此情況下,在執行深度神經網路運算時,需要花費大量的記憶體空間來儲存權重。倘若儲存權重的記憶體出現卡住錯誤(stuck-at-faults)的現象,將會導致深度神經網路的運算有誤。因此,如何提供一種記憶體及其操作方法可降低卡住錯誤的現象並提高深度神經網路運算的正確率將成為重要的一門課題。
本發明提供一種適用於執行深度神經網路運算的記憶體及其操作方法,其可找出具有最少卡住錯誤的編碼資料來表示權重索引與代表權重資料之間的映射關係,進而減少索引記憶體的卡住錯誤。
本發明提供一種記憶體適用於執行深度神經網路運算。上述的記憶體包括:處理單元以及權重單元。處理單元具有資料輸入端與資料輸出端。權重單元經配置以耦接處理單元的資料輸入端。權重單元包括索引記憶體與映射表。索引記憶體經配置以儲存多個權重索引。映射表經配置以將多個權重索引分別對應至多個代表權重資料。
本發明提供一種記憶體的操作方法,適用於執行深度神經網路運算。上述的記憶體的操作方法包括映射方法。上述的映射方法包括:將權重單元耦接至處理單元的資料輸入端,其中權重單元包括儲存有多個權重索引的索引記憶體以及將多個權重索引分別對應至多個代表權重資料的映射表;檢測索引記憶體,以產生錯誤映射圖(fault map),其中錯誤映射圖包括多個卡住錯誤;依據錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤的數量;以及依序挑選最少卡住錯誤的編碼資料來建立多個代表權重資料與多個權重索引之間的映射表。
基於上述,本發明實施例可藉由將多個權重值分群為多個代表權重資料,並藉由映射表將多個權重索引分別對應至多個代表權重資料,以大幅降低記憶體儲存多個權重值的空間。另外,本發明實施例可藉由檢測索引記憶體來產生錯誤映射圖、依據錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤的數量以及依序挑選最少卡住錯誤的編碼資料來建立上述的映射表。如此一來,本發明實施例可有效地減少索引記憶體的卡住錯誤,進而提高深度神經網路運算的正確率。
為了使本發明之內容可以被更容易明瞭,以下特舉實施例做為本發明確實能夠據以實施的範例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟,係代表相同或類似部件。
請參照圖1,本發明實施例提供一種記憶體100包括處理單元110、資料輸入單元120、權重單元130、回饋單元140以及資料輸出單元150。具體來說,處理單元110具有資料輸入端112與資料輸出端114。在一些實施例中,處理單元110可以是人工智慧引擎,例如是由控制邏輯、運算邏輯以及快取(cache)記憶體等諸如此類的電路元件所建構而成的記憶體內運算(Processing In Memory,PIM)架構或近記憶體運算(Near Memory Processing,NMP)架構。在本實施例中,處理單元110是設計以具有執行深度神經網路運算的功能。在此情況下,本實施例的記憶體100可為一種動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)晶片、電阻式隨機存取記憶體(resistive random access memory,RRAM)、相變隨機存取記憶體(phase-change random access memory,PCRAM)、磁阻隨機存取記憶體(Magnetoresistive random-access memory,MRAM)等等,但本發明不以此為限。
在一些實施例中,資料輸入單元120與權重單元130經配置以分別耦接至處理單元110的資料輸入端112,且回饋單元140經配置以耦接處理單元110的資料輸入端112與資料輸出端114。舉例來說,當處理單元110執行深度神經網路運算時,處理單元110可存取資料輸入單元120中的運算輸入資料(或運算輸入值)D1以及權重單元130中的權重資料136,並且依據輸入資料D1以及權重資料136來執行深度神經網路運算。在本實施例中,處理單元110可視為深度神經網路中的隱藏層,其由多個前後相互連結的層116所構成,其中每一層116具有多個神經元118。當輸入資料D1與權重資料136通過處理單元110運算並得到一運算結果值R1時,此運算結果值R1會通過回饋單元140重新輸入處理單元110以作為新的運算輸入資料(或運算輸入值)D2,以此完成一次隱藏層之運算。依此類推,直到完成所有隱藏層計算,並將輸出層的最終運算結果R2傳送給資料輸出單元150。
值得注意的是,在習知技術中,權重資料通常以浮點數(floating point)表示並儲存在權重記憶體中。在此情況下,在執行深度神經網路運算時,需要花費大量的記憶體空間來儲存權重資料。基於此,本發明實施例將權重單元130來取代習知的權重記憶體,由此降低記憶體的儲存空間。具體而言,權重單元130包括索引記憶體132與映射表134。如圖2所示,索引記憶體132經配置以儲存多個權重索引I0
、I1
、I2
…In
(以下統稱為權重索引I)。權重索引I的數量相當於習知的權重資料的數量,其與隱藏層中相互連結的層數以及每一層中的神經元的數量有關,應為神經網路領域中具有通常知識者所熟知,於此便不再詳述。另外,映射表134經配置以將多個權重索引I分別對應至多個代表權重資料RW0
、RW1
、RW2
…RWk-1
(以下統稱為代表權重資料RW)。在一些實施例中,可將多個權重值(例如習知的權重資料)分群為代表權重資料RW,由此減少代表權重資料RW的數量。在此情況下,代表權重資料RW的權重變化可小於權重值的權重變化,以降低深度神經網路運算錯誤率。此外,權重索引I的數量可多於代表權重資料RW的數量。如圖2所示,一或多個權重索引I可同時對應同一個代表權重資料RW。
在一些實施例中,如圖3所示,映射表134具有多個編碼資料E,以表示多個權重索引I與多個代表權重資料RW之間的映射關係。舉例來說,如圖2與圖3所示,權重索引I中的I0
可通過編碼資料E中的「0000」對應至代表權重資料RW0
中的代表權重值W為「-0.7602」。然而,當儲存權重索引I的索引記憶體132出現卡住錯誤的現象,仍會導致深度神經網路的運算有誤。在此情況下,以下實施例提供一種映射方法,其可找出具有最少卡住錯誤的編碼資料E來表示權重索引I與代表權重資料RW之間的映射關係,進而減少索引記憶體132的卡住錯誤。
請參照圖4,本發明實施例提供一種記憶體的操作方法400適用於執行深度神經網路運算。記憶體的操作方法400包括映射方法,如下所示。首先,進行步驟402,檢測索引記憶體,以產生錯誤映射圖500,如圖5所示。在一些實施例中,錯誤映射圖500包括多個卡住錯誤502。於此,所謂的卡住錯誤(stuck-at-faults)是指記憶胞的狀態準位總是為0,或者總是為1。舉例來說,如圖5所示,儲存有權重索引I的每一個記憶胞的狀態準位可使用四個位元來表示。每一位元位置為二的冪。儲存有權重索引I1
的記憶胞的狀態準位可以是「X1XX」,也就是說,此記憶胞的第二位元位置總是為1,其他位元位置則可以是1或是0(以X來表示)。在此情況下,若是以「X0XX」的編碼資料來對應權重索引I1
便會發生卡住錯誤。相似地,儲存有權重索引I2
的記憶胞的狀態準位可以是「XX11」;而儲存有權重索引I3
的記憶胞的狀態準位可以是「0XXX」。此外,儲存有權重索引I0
的記憶胞的狀態準位可以是「XXXX」,也就是說,可以任意編碼資料來對應權重索引I0
。應理解,上述的記憶胞亦可以兩個位元來表示四個狀態準位,或是更多個位元來表示更多個狀態準位。
接著,進行步驟404,依據錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤的數量。舉例來說,如圖5所示,當權重索引I1
對應代表權重資料RW3
時,儲存有權重索引I1
的記憶胞的狀態準位為「X1XX」。也就是說,具有「X0XX」的編碼資料會出現卡住錯誤,其以+1的符號來表示,如圖6A所示。相似地,如圖5所示,當權重索引I2
對應代表權重資料RW1
時,儲存有權重索引I2
的記憶胞的狀態準位為「XX11」。也就是說,具有「XX00」的編碼資料會出現卡住錯誤,其以+1的符號來表示,如圖6B所示。接著,如圖5所示,當權重索引I3
對應代表權重資料RW3
時,儲存有權重索引I3
的記憶胞的狀態準位為「0XXX」。也就是說,具有「1XXX」的編碼資料會出現卡住錯誤,其以+1的符號來表示,如圖6C所示。依此類推,直到統計完每一個代表權重資料RW與其對應的權重索引I之間的編碼資料E的卡住錯誤的數量。
然後,進行步驟406,依序挑選最少卡住錯誤的編碼資料來建立多個代表權重資料與多個權重索引之間的映射表。圖7繪示出代表權重資料RW與編碼資料E的關係表700。雖然上述實施例中的編碼資料是以四個位元來表示十六個狀態準位,為了便於解釋,圖7改以兩個位元來表示四個狀態準位。
詳細地說,當代表權重資料RW以代表權重資料RW0
、RW1
、RW2
、RW3
依序排列,可以此順序來挑選對應其的編碼資料E。舉例來說,如圖7所示,由於在代表權重資料RW0
的列中,編碼資料「01」具有最少卡住錯誤(亦即0個),因此可挑選多個編碼資料E中的編碼資料「01」來對應代表權重資料RW0
。也就是說,編碼資料「01」的卡住錯誤數量小於其他編碼資料「11」、「10」、「00」的卡住錯誤數量。接著,在代表權重資料RW1
的列中,編碼資料「10」具有最少卡住錯誤(亦即0個),因此可挑選多個編碼資料E中的編碼資料「10」來對應代表權重資料RW1
。值得注意的是,雖然在代表權重資料RW2
的列中,編碼資料「01」或「10」具有較少卡住錯誤(亦即1個或2個),但由於編碼資料「01」或「10」已被挑選以對應代表權重資料RW0
或RW1
,因此,可改挑選多個編碼資料E中的編碼資料「11」來對應代表權重資料RW2
。也就是說,每一個權重資料RW可對應於不同的編碼資料E。最後,在代表權重資料RW3
的列中,編碼資料「00」具有最少卡住錯誤(亦即2個),因此可挑選多個編碼資料E中的編碼資料「00」來對應代表權重資料RW3
。在進行上述記憶體的操作方法400的步驟402、404、406之後,可找出具有最少卡住錯誤的編碼資料E來表示權重索引I與代表權重資料RW之間的映射關係,以有效地減少索引記憶體132(如圖1所示)的卡住錯誤,進而提高深度神經網路運算的正確率。
在一些實施例中,在執行深度神經網路運算時,如圖1所示,可從索引記憶體132讀取所需的權重索引並藉由上述的映射表映射出對應的代表權重資料(或代表權重值)。然後,將對應的代表權重資料輸入處理單元110來執行深度神經網路運算。
綜上所述,本發明實施例可藉由將多個權重值分群為多個代表權重資料,並藉由映射表將多個權重索引分別對應至多個代表權重資料,以大幅降低記憶體儲存多個權重值的空間。另外,本發明實施例可藉由檢測索引記憶體來產生錯誤映射圖、依據錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤的數量以及依序挑選最少卡住錯誤的編碼資料來建立上述的映射表。如此一來,本發明實施例可有效地減少索引記憶體的卡住錯誤,進而提高深度神經網路運算的正確率。
100:記憶體
110:處理單元
112:資料輸入端
114:資料輸出端
116:層
118:神經元
120:資料輸入單元
130:權重單元
132:索引記憶體
134:映射表
136:權重資料
140:回饋單元
150:資料輸出單元
400:記憶體的操作方法
402、404、406:步驟
500:錯誤映射圖
502:卡住錯誤
700:關係表
D1、D2:運算輸入資料
E:編碼資料
I、I0
、I1
、I2
、I3
…In
:權重索引
RW、RW0
、RW1
、RW2
、RW3
…RWk-1
:代表權重資料
R1:運算結果值
R2:最終運算結果
W:代表權重值
圖1是依照本發明一實施例所繪示的一種記憶體的架構示意圖。
圖2是依照本發明一實施例所繪示的索引記憶體與映射表之間的關係圖。
圖3是依照本發明一實施例所繪示的映射表。
圖4是依照本發明一實施例所繪示的一種記憶體的操作方法的流程圖。
圖5是依照本發明一實施例所繪示的錯誤映射圖。
圖6A至圖6C是圖4的步驟404的流程圖。
圖7是依照本發明一實施例所繪示的代表權重資料與編碼資料的關係表。
100:記憶體
110:處理單元
112:資料輸入端
114:資料輸出端
116:層
118:神經元
120:資料輸入單元
130:權重單元
132:索引記憶體
134:映射表
136:權重資料
140:回饋單元
150:資料輸出單元
D1、D2:運算輸入資料
R1:運算結果值
R2:最終運算結果
Claims (10)
- 一種記憶體,適用於執行深度神經網路運算,所述記憶體包括: 處理單元,具有資料輸入端與資料輸出端;以及 權重單元,經配置以耦接所述處理單元的所述資料輸入端,其中所述權重單元包括: 索引記憶體,經配置以儲存多個權重索引;以及 映射表,經配置以將所述多個權重索引分別對應至多個代表權重資料。
- 如請求項1所述的記憶體,其中所述映射表具有多個編碼資料,以表示所述多個權重索引與所述多個代表權重資料之間的映射關係。
- 如請求項1所述的記憶體,其中所述映射表是藉由檢測所述索引記憶體以產生錯誤映射圖(fault map)、根據所述錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤(stuck-at-fault)的數量以及依序挑選最少卡住錯誤的編碼資料所建立的。
- 如請求項1所述的記憶體,其中所述多個代表權重資料是將多個權重值分群所得到,且所述多個代表權重資料的權重變化小於所述多個權重值的權重變化。
- 如請求項1所述的記憶體,更包括: 資料輸入單元,經配置以耦接所述處理單元的所述資料輸入端,並用以輸入運算輸入值至所述處理單元;以及 回饋單元,經配置以耦接所述資料輸入端與所述資料輸出端,其中所述回饋單元將所述處理單元所輸出的運算結果值重新輸入所述處理單元以作為新的運算輸入值。
- 一種記憶體的操作方法,適用於執行深度神經網路運算,所述記憶體的操作方法包括映射方法,所述映射方法包括: 將權重單元耦接至處理單元的資料輸入端,其中所述權重單元包括儲存有多個權重索引的索引記憶體以及將所述多個權重索引分別對應至多個代表權重資料的映射表; 檢測所述索引記憶體,以產生錯誤映射圖,其中所述錯誤映射圖包括多個卡住錯誤; 依據所述錯誤映射圖來統計每一個代表權重資料與其對應的權重索引之間的編碼資料的卡住錯誤的數量;以及 依序挑選最少卡住錯誤的編碼資料來建立所述多個代表權重資料與所述多個權重索引之間的所述映射表。
- 如請求項6所述的記憶體的操作方法,其中所述依序挑選最少卡住錯誤的編碼資料的步驟包括: 挑選所述多個編碼資料中的第一編碼資料來對應所述多個代表權重資料中的第一代表權重資料, 其中以所述第一編碼資料來對應所述第一代表權重資料的卡住錯誤的數量小於以所述多個編碼資料中的其他編碼資料來對應所述第一代表權重資料的卡住錯誤的數量。
- 如請求項7所述的記憶體的操作方法,更包括: 挑選所述多個編碼資料中的第二編碼資料來對應所述多個代表權重資料中的第二代表權重資料; 挑選所述多個編碼資料中的第三編碼資料來對應所述多個代表權重資料中的第三代表權重資料;以及 挑選所述多個編碼資料中的第四編碼資料來對應所述多個代表權重資料中的第四代表權重資料,其中所述第一編碼資料、所述第二編碼資料、所述第三編碼資料以及所述第四編碼資料具有不同編碼資料。
- 如請求項6所述的記憶體的操作方法,更包括讀取方法,其中所述讀取方法包括: 從所述索引記憶體讀取所需的權重索引並藉由所述映射表映射出對應的代表權重資料;以及 將所述對應的代表權重資料輸入所述處理單元來執行所述深度神經網路運算。
- 如請求項6所述的記憶體的操作方法,其中所述映射方法更包括:將多個權重值分群為所述多個代表權重資料,且所述多個代表權重資料的權重變化小於所述多個權重值的權重變化。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109124237A TWI759799B (zh) | 2020-07-17 | 2020-07-17 | 用於執行深度神經網路運算的記憶體及其操作方法 |
CN202110677570.4A CN113947199A (zh) | 2020-07-17 | 2021-06-18 | 用于执行深度神经网络运算的存储器及其操作方法 |
US17/373,725 US20220019881A1 (en) | 2020-07-17 | 2021-07-12 | Memory for performing deep neural network operation and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109124237A TWI759799B (zh) | 2020-07-17 | 2020-07-17 | 用於執行深度神經網路運算的記憶體及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202205269A true TW202205269A (zh) | 2022-02-01 |
TWI759799B TWI759799B (zh) | 2022-04-01 |
Family
ID=79292639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109124237A TWI759799B (zh) | 2020-07-17 | 2020-07-17 | 用於執行深度神經網路運算的記憶體及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220019881A1 (zh) |
CN (1) | CN113947199A (zh) |
TW (1) | TWI759799B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI838797B (zh) * | 2022-07-22 | 2024-04-11 | 臺灣發展軟體科技股份有限公司 | 記憶體裝置及用於記憶體內運算的資料重排方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196799B (zh) * | 2013-11-22 | 2021-03-30 | 华为技术有限公司 | 存储设备的写入方法及写入装置 |
US11080611B2 (en) * | 2017-12-22 | 2021-08-03 | Intel Corporation | Compression for deep learning in case of sparse values mapped to non-zero value |
US11676371B2 (en) * | 2018-08-17 | 2023-06-13 | Fotonation Limited | Apparatus for processing a neural network |
US11625584B2 (en) * | 2019-06-17 | 2023-04-11 | Intel Corporation | Reconfigurable memory compression techniques for deep neural networks |
-
2020
- 2020-07-17 TW TW109124237A patent/TWI759799B/zh active
-
2021
- 2021-06-18 CN CN202110677570.4A patent/CN113947199A/zh active Pending
- 2021-07-12 US US17/373,725 patent/US20220019881A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113947199A (zh) | 2022-01-18 |
US20220019881A1 (en) | 2022-01-20 |
TWI759799B (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2776988B1 (en) | Method and apparatus for using memory in probabilistic manner to store synaptic weights of neural network | |
Liu et al. | Fault tolerance in neuromorphic computing systems | |
EP3671748A1 (en) | In-memory computing for machine learning | |
Putra et al. | Respawn: Energy-efficient fault-tolerance for spiking neural networks considering unreliable memories | |
Ma et al. | Go unary: A novel synapse coding and mapping scheme for reliable ReRAM-based neuromorphic computing | |
US20200134443A1 (en) | Storing neural networks and weights for neural networks | |
US11817173B2 (en) | Timing-based computer architecture systems and methods | |
CN102893529B (zh) | 用于ldpc码的解码的方法和系统 | |
Li et al. | Build reliable and efficient neuromorphic design with memristor technology | |
Yan et al. | iCELIA: A full-stack framework for STT-MRAM-based deep learning acceleration | |
TWI759799B (zh) | 用於執行深度神經網路運算的記憶體及其操作方法 | |
Lou et al. | Embedding error correction into crossbars for reliable matrix vector multiplication using emerging devices | |
Ghosh et al. | Reducing power consumption in memory ECC checkers | |
CN115858235A (zh) | 循环冗余检验处理方法及装置、电路、电子设备和介质 | |
Guo et al. | Att: A fault-tolerant reram accelerator for attention-based neural networks | |
Kim et al. | VCAM: Variation compensation through activation matching for analog binarized neural networks | |
Alam et al. | Stochastic computing in beyond von-neumann era: Processing bit-streams in memristive memory | |
Furber et al. | Sparse distributed memory using rank-order neural codes | |
Liu et al. | Online fault detection in ReRAM-based computing systems for inferencing | |
CN115730673B (zh) | 一种量子计算纠错方法 | |
Oli-Uz-Zaman et al. | Reliability improvement in rram-based dnn for edge computing | |
Liu et al. | Online fault detection in ReRAM-based computing systems by monitoring dynamic power consumption | |
Dhingra et al. | FARe: Fault-Aware GNN Training on ReRAM-based PIM Accelerators | |
Hemaram et al. | Adaptive block error correction for memristive crossbars | |
Lee et al. | Reducing power in error correcting code using genetic algorithm |