TWI708193B - 應用於卷積神經網路之記憶體適應性處理方法及其系統 - Google Patents
應用於卷積神經網路之記憶體適應性處理方法及其系統 Download PDFInfo
- Publication number
- TWI708193B TWI708193B TW108129886A TW108129886A TWI708193B TW I708193 B TWI708193 B TW I708193B TW 108129886 A TW108129886 A TW 108129886A TW 108129886 A TW108129886 A TW 108129886A TW I708193 B TWI708193 B TW I708193B
- Authority
- TW
- Taiwan
- Prior art keywords
- feature map
- output
- input
- size
- block
- Prior art date
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 68
- 238000003672 processing method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000003044 adaptive effect Effects 0.000 claims description 77
- 238000013507 mapping Methods 0.000 claims description 75
- 238000004364 calculation method Methods 0.000 claims description 30
- 238000005516 engineering process Methods 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000009825 accumulation Methods 0.000 claims description 9
- 230000009466 transformation Effects 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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/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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本發明提供一種應用於卷積神經網路之記憶體適應性處理方法,其特徵映射計算步驟係計算出卷積層操作的輸入特徵映射之輸入通道之數量、輸入特徵映射區塊大小、輸出特徵映射之輸出通道之數量及輸出特徵映射區塊大小。尺寸關係計算步驟係求得特徵映射快取之快取可用空間大小,並依據通道之數量、區塊大小及快取可用空間大小計算出尺寸關係。卷積運算步驟係依據記憶體適應性處理技術針對輸入特徵映射執行卷積層操作而產生輸出特徵映射,記憶體適應性處理技術係依據尺寸關係執行卷積層操作。藉此,利用改變處理迴圈結構以有效減少存取次數。
Description
本發明是關於一種應用於卷積神經網路之處理方法及其系統,特別是關於一種應用於卷積神經網路之記憶體適應性處理方法及其系統。
卷積神經網路(Convolutional Neural Network;CNN)係指應用於多層神經網路結構之卷積層操作,例如:透過受訓之卷積神經網路實現基於深度學習之臉部及語音的生物識別。卷積神經網路廣泛地使用於各種技術中,尤其是圖像及視頻應用,而當中的卷積層是卷積神經網路的核心計算部分。
功率消耗為硬體執行卷積神經網絡計算之最重要問題,而動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)之存取佔有系統中大部分的功率消耗。因此,如何在人工智慧邊緣運算(Edge AI Computing)中優化動態隨機存取記憶體之存取將是關鍵 問題。由此可知,目前市場上缺乏一種可減少動態隨機存取記憶體的存取次數的應用於卷積神經網路之記憶體適應性處理方法及其系統,故相關業者均在尋求其解決之道。
因此,本發明之目的在於提供一種應用於卷積神經網路之記憶體適應性處理方法及其系統,其利用記憶體適應性處理技術結合尺寸關係,以動態地改變處理迴圈結構,可減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
依據本發明的方法態樣之一實施方式提供一種應用於卷積神經網路之記憶體適應性處理方法,其包含特徵映射計算步驟、尺寸關係計算步驟及卷積運算步驟,其中特徵映射計算步驟係計算出卷積層操作的複數輸入特徵映射之複數輸入通道之數量、輸入特徵映射區塊大小、複數輸出特徵映射之複數輸出通道之數量及輸出特徵映射區塊大小。再者,尺寸關係計算步驟係求得特徵映射快取之快取可用空間大小,並依據輸入特徵映射之輸入通道之數量、輸入特徵映射區塊大小、輸出特徵映射之輸出通道之數量、輸出特徵映射區塊大小及快取可用空間大小計算出尺寸關係。此外,卷積運算步驟係依據記憶體適應性處理技術針對輸入特徵映射執行卷積層操作而產生輸出特徵映射,記憶體適應性處理技術包含處理迴圈結構之轉換,處理迴圈結構之轉換係依據尺寸關係執行卷積層操作。
藉此,本發明的應用於卷積神經網路之記憶體適應性處理方法利用記憶體適應性處理技術與尺寸關係動態地改變處理迴圈結構,可以有效減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
前述實施方式之其他實施例如下:前述處理迴圈結構之轉換可包含改變處理迴圈結構之輸入特徵映射區塊大小,藉以依據尺寸關係執行單區塊處理疊代。
前述實施方式之其他實施例如下:前述快取可用空間大小可大於一總和數,且此總和數等於輸入特徵映射之輸入通道之數量乘以輸入特徵映射區塊大小加上輸出特徵映射之輸出通道之數量乘以輸出特徵映射區塊大小。
前述實施方式之其他實施例如下:前述快取可用空間大小可大於一總和數,且此總和數等於輸入特徵映射區塊大小加上輸出特徵映射之輸出通道之數量乘以輸出特徵映射區塊大小。
前述實施方式之其他實施例如下:前述快取可用空間大小可大於一總和數,且此總和數等於輸入特徵映射之輸入通道之數量乘以輸入特徵映射區塊大小加上輸出特徵映射區塊大小。
前述實施方式之其他實施例如下:前述處理迴圈結構之轉換可包含將處理迴圈結構轉換於一輸入層優先處理程序與一輸出層優先處理程序之間。
前述實施方式之其他實施例如下:前述輸入特徵映射之輸入通道之數量乘以輸入特徵映射區塊大小以產 生一整體輸入大小,輸出特徵映射之輸出通道之數量乘以輸出特徵映射區塊大小以產生一整體輸出大小,整體輸入大小與整體輸出大小之其中一者小於特徵映射快取之快取可用空間大小。當整體輸入大小小於特徵映射快取之快取可用空間大小時,輸入特徵映射區塊之輸入通道儲存於特徵映射快取,輸入特徵映射區塊代表輸入特徵映射之區塊。當整體輸出大小小於特徵映射快取之快取可用空間大小時,輸出特徵映射區塊之輸出通道儲存於特徵映射快取,輸出特徵映射區塊代表輸出特徵映射之區塊。
前述實施方式之其他實施例如下:前述輸入層優先處理程序代表特徵映射快取包含輸入特徵映射區塊之輸入通道之僅一者及輸出特徵映射區塊之輸出通道之至少一者。輸入特徵映射區塊代表輸入特徵映射之區塊,輸出特徵映射區塊代表輸出特徵映射之區塊。處理迴圈結構透過輸出特徵映射與輸出特徵映射執行卷積層操作,輸入特徵映射係以一外迴圈進行疊代,且輸出特徵映射係以一內迴圈進行疊代。
前述實施方式之其他實施例如下:前述輸出層優先處理程序代表特徵映射快取包含輸入特徵映射區塊之輸入通道之至少一者及輸出特徵映射區塊之輸出通道之僅一者。輸入特徵映射區塊代表輸入特徵映射之區塊,輸出特徵映射區塊代表輸出特徵映射之區塊。處理迴圈結構透過輸出特徵映射與輸出特徵映射執行卷積層操作,輸出特 徵映射係以一外迴圈進行疊代,且輸入特徵映射係以一內迴圈進行疊代。
依據本發明的方法態樣之另一實施方式提供一種應用於卷積神經網路之記憶體適應性處理方法,其包含特徵映射計算步驟、尺寸關係計算步驟以及卷積運算步驟。其中特徵映射計算步驟係計算出一卷積層操作的複數輸入特徵映射之複數輸入通道之數量、輸入特徵映射區塊大小、複數輸出特徵映射之複數輸出通道之數量及輸出特徵映射區塊大小。另外,尺寸關係計算步驟係求得特徵映射快取之快取可用空間大小,並依據輸入特徵映射之輸入通道之數量、輸入特徵映射區塊大小、輸出特徵映射之輸出通道之數量、輸出特徵映射區塊大小及快取可用空間大小計算出尺寸關係。此外,卷積運算步驟係依據一記憶體適應性處理技術針對輸入特徵映射執行卷積層操作而產生輸出特徵映射,記憶體適應性處理技術包含一分群步驟與一輸出群優先處理步驟,其中分群步驟係依據尺寸關係將輸出通道分成複數輸出群組。輸出群優先處理步驟包含複數輸入層優先處理步驟,各輸入層優先處理步驟對應各輸出群組執行。
藉此,本發明的應用於卷積神經網路之記憶體適應性處理方法透過卷積運算步驟之分群步驟與輸出群優先處理步驟的交互作用,可以減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
前述實施方式之其他實施例如下:前述各輸入層優先處理步驟係執行一輸入層優先處理程序,輸入層優先處理程序代表特徵映射快取包含輸入特徵映射區塊之輸入通道之僅一者及輸出特徵映射區塊之輸出通道之至少一者。輸入特徵映射區塊代表輸入特徵映射之區塊,輸出特徵映射區塊代表輸出特徵映射之區塊。處理迴圈結構透過輸出特徵映射及各輸出群組之複數輸出特徵映射執行卷積層操作,輸入特徵映射係以一外迴圈進行疊代,且各輸出群組之輸出特徵映射係以一內迴圈進行疊代。
前述實施方式之其他實施例如下:前述輸入特徵映射之輸入通道之數量乘以輸入特徵映射區塊大小以產生一整體輸入大小,輸出特徵映射之輸出通道之數量乘以輸出特徵映射區塊大小以產生一整體輸出大小,整體輸入大小與整體輸出大小均大於特徵映射快取之快取可用空間大小。
前述實施方式之其他實施例如下:前述輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS,輸出群組之數量表示為G且符合下式:G=M/(CFS-1)。
前述實施方式之其他實施例如下:前述輸入特徵映射之輸入通道之數量表示為N,輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS,輸出群組之數量表示為G且符合下式: G=M/(CFS-n);其中n為正整數,n<N,且n<CFS。
前述實施方式之其他實施例如下:前述輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS,輸出群組之數量表示為G且符合下式:G=M/CFS+n;其中n為正整數,且0<n≦M-M/CFS。
依據本發明的結構態樣之一實施方式提供一種應用於卷積神經網路之記憶體適應性處理系統,其包含動態隨機存取記憶體、特徵映射快取以及處理單元。其中動態隨機存取記憶體用以儲存一輸入特徵映射區塊之複數輸入通道及一輸出特徵映射區塊之複數輸出通道。特徵映射快取連接動態隨機存取記憶體,特徵映射快取用以儲存輸入特徵映射區塊之輸入通道之至少一者及輸出特徵映射區塊之輸出通道之至少一者。再者,處理單元連接特徵映射快取。處理單元包含乘法累加單元與處理迴圈控制器,處理迴圈控制器連接乘法累加單元,乘法累加單元受處理迴圈控制器配置並依據記憶體適應性處理技術針對輸入特徵映射區塊執行卷積層操作而產生輸出特徵映射區塊。輸入特徵映射區塊具有整體輸入大小,輸出特徵映射區塊具有整體輸出大小,特徵映射快取具有快取可用空間大小。處理迴圈控制器依據複數輸入特徵映射之複數輸入通道之數量、輸入特徵映射區塊大小、複數輸出特徵映射之複數輸 出通道之數量、輸出特徵映射區塊大小及快取可用空間大小計算出尺寸關係。記憶體適應性處理技術包含處理迴圈結構之轉換,處理迴圈結構之轉換係依據尺寸關係執行卷積層操作。
藉此,本發明的應用於卷積神經網路之記憶體適應性處理系統利用特徵映射快取與動態隨機存取記憶體的結構搭配記憶體適應性處理技術,可以有效減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
100、100a‧‧‧應用於卷積神經網路之記憶體適應性處理方法
S12、S22‧‧‧特徵映射計算步驟
S14、S24‧‧‧尺寸關係計算步驟
200‧‧‧輸入特徵映射區塊
300‧‧‧輸出特徵映射區塊
400‧‧‧應用於卷積神經網路之記憶體適應性處理系統
410‧‧‧動態隨機存取記憶體
420‧‧‧特徵映射快取
S16、S26‧‧‧卷積運算步驟
S262‧‧‧分群步驟
S264‧‧‧輸出群優先處理步驟
N、M‧‧‧數量
Mr‧‧‧總列數
Mc‧‧‧總行數
Tr‧‧‧列數
Tc‧‧‧行數
430‧‧‧處理單元
432‧‧‧乘法累加單元
434‧‧‧處理迴圈控制器
Layer_1、Layer_2、Layer_3‧‧‧層
R、r‧‧‧讀取
W、w‧‧‧寫入
第1圖係繪示本發明第一實施例之應用於卷積神經網路之記憶體適應性處理方法的流程示意圖;第2圖係繪示第1圖的應用於卷積神經網路之記憶體適應性處理方法的卷積運算步驟之示意圖;第3圖係繪示本發明的特徵映射中處理迴圈結構之輸入特徵映射區塊大小的示意圖;第4圖係繪示本發明的處理迴圈結構之輸出層優先處理程序的示意圖;第5圖係繪示本發明的處理迴圈結構之輸入層優先處理程序的示意圖;第6圖係繪示本發明第二實施例之應用於卷積神經網路之記憶體適應性處理方法的流程示意圖;第7圖係繪示第6圖的應用於卷積神經網路之記憶體適 應性處理方法的卷積運算步驟之輸出群優先處理步驟的示意圖;第8圖係繪示第一習知技術的應用於卷積神經網路之處理方法的動態隨機存取記憶體與特徵映射快取之讀取與寫入的示意圖;第9圖係繪示第二習知技術的應用於卷積神經網路之處理方法的動態隨機存取記憶體與特徵映射快取之讀取與寫入的示意圖;第10圖係繪示第6圖的應用於卷積神經網路之記憶體適應性處理方法的動態隨機存取記憶體與特徵映射快取之讀取與寫入的示意圖;第11圖係繪示本發明第三實施例的應用於卷積神經網路之記憶體適應性處理系統的方塊示意圖;第12圖係繪示本發明第四實施例的應用於卷積神經網路之記憶體適應性處理方法的卷積運算步驟之示意圖;第13圖係繪示第12圖第一範例的卷積運算步驟之示意圖,其透過輸入層優先處理程序執行卷積層操作;第14圖係繪示第12圖第二範例的卷積運算步驟之示意圖,其透過輸出層優先處理程序執行卷積層操作;第15圖係繪示第12圖第三範例的卷積運算步驟之示意圖,其透過輸入層優先處理程序執行卷積層操作;以及第16圖係繪示第12圖第四範例的卷積運算步驟之示意圖,其透過輸出層優先處理程序執行卷積層操作。
以下將參照圖式說明本發明之複數個實施例。為明確說明起見,許多實務上的細節將在以下敘述中一併說明。然而,應瞭解到,這些實務上的細節不應用以限制本發明。也就是說,在本發明部分實施例中,這些實務上的細節是非必要的。此外,為簡化圖式起見,一些習知慣用的結構與元件在圖式中將以簡單示意的方式繪示之;並且重複之元件將可能使用相同的編號表示之。
此外,本文中當某一元件(或單元或模組等)「連接」於另一元件,可指所述元件是直接連接於另一元件,亦可指某一元件是間接連接於另一元件,意即,有其他元件介於所述元件及另一元件之間。而當有明示某一元件是「直接連接」於另一元件時,才表示沒有其他元件介於所述元件及另一元件之間。而第一、第二、第三等用語只是用來描述不同元件,而對元件本身並無限制,因此,第一元件亦可改稱為第二元件。且本文中之元件/單元/電路之組合非此領域中之一般周知、常規或習知之組合,不能以元件/單元/電路本身是否為習知,來判定其組合關係是否容易被技術領域中之通常知識者輕易完成。
請一併參閱第1圖至第5圖,其中第1圖係繪示本發明第一實施例之應用於卷積神經網路之記憶體適應性處理方法100的流程示意圖;第2圖係繪示第1圖的應用於卷積神經網路之記憶體適應性處理方法100的卷積運算步驟S16之示意圖;第3圖係繪示本發明的特徵映射(Feature Map)中處理迴圈結構之輸入特徵映射區塊大小Si的示意圖;第4圖係繪示本發明的處理迴圈結構之輸出層優先處理程序的示意圖;以及第5圖係繪示本發明的處理迴圈結構之輸入層優先處理程序的示意圖。如圖所示,應用於卷積神經網路之記憶體適應性處理方法100包含特徵映射計算步驟S12、尺寸關係計算步驟S14及卷積運算步驟S16。
特徵映射計算步驟S12係計算出卷積層操作的複數個輸入特徵映射之複數個輸入通道之數量N、輸入特徵映射區塊大小Si、複數個輸出特徵映射之複數個輸出通道之數量M及輸出特徵映射區塊大小So。
尺寸關係計算步驟S14係求得特徵映射快取之快取可用空間大小CFS(Cache Free Space Size),並依據輸入特徵映射之輸入通道之數量N、輸入特徵映射區塊大小Si、輸出特徵映射之輸出通道之數量M、輸出特徵映射區塊大小So及快取可用空間大小CFS計算出尺寸關係。快取可用空間大小CFS代表特徵映射快取中可用空間的大小,且可被動態地計算。換句話說,在特徵映射快取刷新或存取之後,特徵映射快取中可用的空間會被計算。此外,快取可用空間大小CFS可以透過下列三種方式之一計算求得。第一,快取可用空間大小CFS等於整個特徵映射快取的大小;第二,快取可用空間大小CFS等於卷積神經網路處理過程所分配的可用快取空間大小;第三,快取可用空間大小CFS等於上述分配之可用快取空間大小減去其他張量(Tensor)的保留空間大小。
卷積運算步驟S16係依據記憶體適應性處理技術針對輸入特徵映射執行卷積層操作而產生輸出特徵映射,記憶體適應性處理技術包含處理迴圈結構之轉換,此處理迴圈結構之轉換係依據尺寸關係執行卷積層操作。卷積層操作代表每個卷積層的卷積運算(Convolution Calculation)與激活函數(Activation Function)。卷積層操作可包含批量標準化(Batch Normalization)或者串聯操作(Concatenation Operation)。表一列出第2圖的卷積層操作之處理迴圈結構的一個例子。在處理迴圈結構中,一個特徵映射(例如:輸入特徵映射和輸出特徵映射之一者)可以劃分成多個區塊(tile),如第3圖所示。在其他實施例中,一個特徵映射可以是一個區塊。在表一中,Mr代表特徵映射的總列數,Mc代表特徵映射的總行數。Tr代表其中一個區塊的列數,Tc代表其中一個圖塊的行數。N代表輸入特徵映射之輸入通道之數量,M代表輸出特徵映射之輸出通道之數量。單區塊處理疊代為區塊之二維卷積(2D Convolution)的疊代運算。
在一實施例中,處理迴圈結構之轉換包含改變處理迴圈結構之輸入特徵映射區塊大小Si(Si=Tr×Tc),藉以依據尺寸關係執行一單區塊處理疊代。輸入特徵映射區塊大小Si等於Tr乘以Tc,輸入特徵映射區塊大小Si由處理迴圈結構之第一迴圈與第二迴圈來決定。換句話說,第一迴圈和第二迴圈被配置對每個區塊(tile)執行卷積運算,而處理所有區塊需要(Mr/Tr)×(Mc/Tc)次的疊代。此外,當輸入特徵映射區塊大小Si小於快取可用空間大小CFS除以輸入特徵映射之輸入通道之數量N及輸出特徵映射之輸出通道之數量M的總和時(即Si<CFS/(N+M),且Si=So),儲存於外部存儲器(例如:第11圖之動態隨機存取記憶體410)以處理所有層之特徵映射資料的存取次數可以被最小化。
在另一實施例中,處理迴圈結構之轉換包含將處理迴圈結構轉換於一輸入層優先處理程序與一輸出層優先處理程序之間。處理迴圈結構可以是依據第三迴圈與第四迴圈的輸入層優先處理程序或輸出層優先處理程序。在表一中,處理迴圈結構的第三迴圈與第四迴圈係對應輸出層優先處理程序。輸出層優先處理程序代表特徵映射快取包含一輸入特徵映射區塊200之輸入通道之至少一者及一輸出特徵映射區塊300之輸出通道之僅一者。輸入特徵映射區塊200代表輸入特徵映射之區塊,輸出特徵映射區塊300代表輸出特徵映射之區塊。處理迴圈結構透過輸出特徵映射與輸出特徵映射執行卷積層操作,輸出特徵映射係 以一外迴圈進行疊代(即表一之第三迴圈),且輸入特徵映射係以一內迴圈進行疊代(即表一之第四迴圈)。另外,值得一提的是,前述快取可用空間大小CFS可大於一總和數,且此總和數等於輸入特徵映射之輸入通道之數量N乘以輸入特徵映射區塊大小Si加上輸出特徵映射之輸出通道之數量M乘以輸出特徵映射區塊大小So(亦即N×Si+M×So<CFS)。再者,前述快取可用空間大小CFS可大於一總和數,且此總和數等於輸入特徵映射區塊大小Si加上輸出特徵映射之輸出通道之數量M乘以輸出特徵映射區塊大小So(亦即Si+M×So<CFS)。此外,前述快取可用空間大小CFS可大於一總和數,且此總和數等於輸入特徵映射之輸入通道之數量N乘以輸入特徵映射區塊大小Si加上輸出特徵映射區塊大小So(亦即N×Si+So<CFS)。藉此,本發明之快取可用空間大小CFS可透過不同的限制條件來實現不同的處理程序,藉以令處理迴圈結構能夠適應性地轉換於輸入層優先處理程序與輸出層優先處理程序之間。
表二列出第2圖的卷積層操作之處理迴圈結構的另一個例子。在表二中,處理迴圈結構的第三迴圈與第四迴圈係對應輸入層優先處理程序。輸入層優先處理程序代表特徵映射快取包含一輸入特徵映射區塊200之輸入通道之僅一者及一輸出特徵映射區塊300之輸出通道之至少一者。輸入特徵映射區塊200代表輸入特徵映射之區塊,輸出特徵映射區塊300代表輸出特徵映射之區塊。處理迴圈結構透過輸出特徵映射與輸出特徵映射執行卷積層操 作,輸入特徵映射係以一外迴圈進行疊代(即表二之第三迴圈),且輸出特徵映射係以一內迴圈進行疊代(即表二之第四迴圈)。
在又一實施例中,輸入特徵映射區塊200的每個輸入通道具有輸入特徵映射區塊大小Si=Tr×Tc。輸出特徵映射區塊300的每個輸出通道具有輸出特徵映射區塊大小So=(Tr-kh)×(Tc-kw),其中kh與kw分別是卷積內核(Convolutional Kernel)的高度與寬度除以2。輸入特徵映射之輸入通道之數量N乘以輸入特徵映射區塊大小Si以產生一整體輸入大小,輸出特徵映射之輸出通道之數量M乘以輸出特徵映射區塊大小So以產生一整體輸出大小。整體輸入大小與整體輸出大小之其中一者小於特徵映射快取之快取可用空間大小CFS。當整體輸入大小(N×Si)小於特徵映射快取之快取可用空間大小CFS時,輸入特徵映射區塊200之輸入通道儲存於特徵映射快取,輸入特徵映射區塊200代表輸入特徵映射之區塊。當整體輸出大小(M×So)小於特徵映射快取之快取可用空間大小CFS時,輸出特徵 映射區塊300之輸出通道儲存於特徵映射快取,輸出特徵映射區塊300代表輸出特徵映射之區塊。藉此,本發明的應用於卷積神經網路之記憶體適應性處理方法100利用記憶體適應性處理技術以動態地改變處理迴圈結構,且處理迴圈結構係依據尺寸關係執行卷積層操作,其中尺寸關係依據輸入特徵映射之輸入通道之數量N、輸入特徵映射區塊大小Si、輸出特徵映射之輸出通道之數量M、輸出特徵映射區塊大小So及快取可用空間大小CFS計算求得。
請一併參閱第6圖與第7圖,其中第6圖係繪示本發明第二實施例之應用於卷積神經網路之記憶體適應性處理方法100a的流程示意圖;以及第7圖係繪示第6圖的應用於卷積神經網路之記憶體適應性處理方法100a的卷積運算步驟S26之輸出群優先處理步驟S264的示意圖。如圖所示,應用於卷積神經網路之記憶體適應性處理方法100a包含特徵映射計算步驟S22、尺寸關係計算步驟S24及卷積運算步驟S26。
特徵映射計算步驟S22係計算出卷積層操作的複數個輸入特徵映射之複數個輸入通道之數量N、輸入特徵映射區塊大小Si、複數個輸出特徵映射之複數個輸出通道之數量M及輸出特徵映射區塊大小So。
尺寸關係計算步驟S24係求得特徵映射快取之快取可用空間大小CFS,並依據輸入特徵映射之輸入通道之數量N、輸入特徵映射區塊大小Si、輸出特徵映射之輸 出通道之數量M、輸出特徵映射區塊大小So及快取可用空間大小CFS計算出尺寸關係。
卷積運算步驟S26係依據一記憶體適應性處理技術針對輸入特徵映射執行卷積層操作而產生輸出特徵映射。記憶體適應性處理技術包含一分群步驟S262與一輸出群優先處理步驟S264,其中分群步驟S262係依據尺寸關係將輸出通道分成複數輸出群組。輸出群優先處理步驟S264包含複數輸入層優先處理步驟,各輸入層優先處理步驟對應各輸出群組執行。詳細地說,各輸入層優先處理步驟係執行一輸入層優先處理程序,輸入層優先處理程序代表特徵映射快取包含輸入特徵映射區塊200之輸入通道之僅一者及輸出特徵映射區塊300之輸出通道之至少一者。處理迴圈結構透過輸入特徵映射區塊200與及各輸出群組之輸出特徵映射區塊300執行卷積層操作,輸入特徵映射區塊200係以一外迴圈進行疊代,且各輸出群組之輸出特徵映射區塊300係以一內迴圈進行疊代。
在卷積運算步驟S26中,輸入特徵映射區塊200的每個輸入通道具有輸入特徵映射區塊大小Si=Tr×Tc。輸出特徵映射區塊300的每個輸出通道具有輸出特徵映射區塊大小So=(Tr-kh)×(Tc-kw),其中kh與kw分別是卷積內核的高度與寬度除以2。輸入特徵映射之輸入通道之數量N乘以輸入特徵映射區塊大小Si以產生一整體輸入大小,輸出特徵映射之輸出通道之數量M乘以輸出特徵映射區塊大小So以產生一整體輸出大小,整體輸入大小與整 體輸出大小均大於特徵映射快取之快取可用空間大小CFS。
請一併參閱第6圖、第8圖、第9圖以及第10圖,其中第8圖係繪示第一習知技術的應用於卷積神經網路之處理方法的動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)與特徵映射快取之讀取與寫入的示意圖;第9圖係繪示第二習知技術的應用於卷積神經網路之處理方法的動態隨機存取記憶體與特徵映射快取之讀取與寫入的示意圖;以及第10圖係繪示第6圖的應用於卷積神經網路之記憶體適應性處理方法100a的動態隨機存取記憶體與特徵映射快取之讀取與寫入的示意圖。在第8圖、第9圖以及第10圖中,特徵映射快取的容量為三個特徵映射區塊,且四個輸入通道(輸入映射_0、輸入映射_1、輸入映射_2、輸入映射_3)及四個輸出通道(輸出映射_0、輸出映射_1、輸出映射_2、輸出映射_3)被處理運算(亦即N=4,M=4)。R與W分別代表動態隨機存取記憶體的讀取與寫入。r與w則分別代表特徵映射快取的讀取與寫入。由第8圖可知,第一習知技術之動態隨機存取記憶體的存取次數為13R與4W。由第9圖可知,第二習知技術之動態隨機存取記憶體的存取次數為10R與4W。前述第一習知技術與第二習知技術均是將第一個輸入通道(輸入映射_0)存放於特徵映射快取中,而第一習知技術與第二習知技術之間的差異在於使用不同的迴圈順序。由第10圖可知,本發明的應用於卷積神經網路之記憶體適應性處理方 法100a之動態隨機存取記憶體的存取次數為8R與4W。藉此,本發明的應用於卷積神經網路之記憶體適應性處理方法100a可以有效減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
在另一實施例中,輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS(以區塊大小為單位),輸出群組之數量表示為G且符合下式:G=M/(CFS-1) (1)。
在又一實施例中,輸入特徵映射之輸入通道之數量表示為N,輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS,輸出群組之數量表示為G且符合下式:G=M/(CFS-n) (2);其中n為正整數,n<N,且n<CFS。
在再一實施例中,輸出特徵映射之輸出通道之數量表示為M,特徵映射快取之快取可用空間大小表示為CFS,輸出群組之數量表示為G且符合下式:G=M/CFS+n (3);其中n為正整數,且0<n≦M-M/CFS。
請一併參閱第1圖、第6圖及第11圖,其中第11圖係繪示本發明第三實施例的應用於卷積神經網路之記憶體適應性處理系統400的方塊示意圖。應用於卷積神經網路之記憶體適應性處理系統400可用於第1圖的應用於卷 積神經網路之記憶體適應性處理方法100以及第6圖的應用於卷積神經網路之記憶體適應性處理方法100a。應用於卷積神經網路之記憶體適應性處理系統400包含動態隨機存取記憶體410、特徵映射快取420以及處理單元430。
動態隨機存取記憶體410用以儲存一輸入特徵映射區塊200之複數輸入通道及一輸出特徵映射區塊300之複數輸出通道。特徵映射快取420連接動態隨機存取記憶體410,特徵映射快取420用以儲存輸入特徵映射區塊200之輸入通道之至少一者及輸出特徵映射區塊300之輸出通道之至少一者。再者,處理單元430連接特徵映射快取420。處理單元430包含乘法累加單元432(Multiply Accumulate;MAC)與處理迴圈控制器434。處理迴圈控制器434連接乘法累加單元432,乘法累加單元432受處理迴圈控制器434配置並依據記憶體適應性處理技術針對輸入特徵映射區塊200執行卷積層操作而產生輸出特徵映射區塊300。輸入特徵映射區塊200具有整體輸入大小(N×Si),輸出特徵映射區塊300具有整體輸出大小(M×So),特徵映射快取420具有快取可用空間大小CFS。處理迴圈控制器434依據輸入特徵映射之輸入通道之數量N、輸入特徵映射區塊大小Si、輸出特徵映射之輸出通道之數量M、輸出特徵映射區塊大小So及特徵映射快取420之快取可用空間大小CFS計算出尺寸關係。記憶體適應性處理技術包含處理迴圈結構之轉換,處理迴圈結構之轉換係依據尺寸關係執行卷積層操作。藉此,本發明的應用於 卷積神經網路之記憶體適應性處理系統400可以有效減少動態隨機存取記憶體的存取次數,進而降低功率消耗。
請一併第12圖至第16圖,其中第12圖係繪示本發明第四實施例的應用於卷積神經網路之記憶體適應性處理方法的卷積運算步驟之示意圖;第13圖係繪示第12圖第一範例的卷積運算步驟之示意圖,其透過輸入層優先處理程序執行卷積層操作;第14圖係繪示第12圖第二範例的卷積運算步驟之示意圖,其透過輸出層優先處理程序執行卷積層操作;第15圖係繪示第12圖第三範例的卷積運算步驟之示意圖,其透過輸入層優先處理程序執行卷積層操作;以及第16圖係繪示第12圖第四範例的卷積運算步驟之示意圖,其透過輸出層優先處理程序執行卷積層操作。其中第12圖的應用於卷積神經網路之記憶體適應性處理方法的卷積運算步驟係用以處理非對齊狀況(非平衡狀況)之輸入通道及輸出通道。在第13圖至第16圖中,特徵映射快取的容量為三個特徵映射區塊,且三個層Layer_1、Layer_2、Layer_3用以處理兩個卷積層操作。其中一個卷積層操作用以處理第一層Layer_1之八個特徵映射而產生第二層Layer_2的二個特徵映射。另一個卷積層操作則用以處理第二層Layer_2的二個特徵映射而產生第三層Layer_3的八個特徵映射。
在第13圖與第14圖中,八個輸入通道(輸入映射_0、輸入映射_1、輸入映射_2、輸入映射_3、輸入映射_4、輸入映射_5、輸入映射_6、輸入映射_7)及二個輸 出通道(輸出映射_0、輸出映射_1)被處理運算(亦即N=8,M=2)。由第13圖可知,在卷積層操作使用輸入層優先處理程序的條件下,動態隨機存取記憶體的存取次數為8R與2W。由第14圖可知,在卷積層操作使用輸出層優先處理程序的條件下,動態隨機存取記憶體的存取次數為15R與2W。整體輸出大小(M×So)小於特徵映射快取之快取可用空間大小CFS,且輸出特徵映射區塊300的所有輸出通道可儲存在特徵映射快取中。因此,本發明之輸入層優先處理程序於本實施例中具有較少的存取次數,故較適用於第一層Layer_1與第二層Layer_2之間的捲積層操作。
在第15圖與第16圖中,二個輸入通道(輸入映射_0、輸入映射_1)及八個輸出通道(輸出映射_0、輸出映射_1、輸出映射_2、輸出映射_3、輸出映射_4、輸出映射_5、輸出映射_6、輸出映射_7)被處理運算(亦即N=2,M=8)。由第15圖可知,在卷積層操作使用輸入層優先處理程序的條件下,動態隨機存取記憶體的存取次數為9R與15W。由第16圖可知,在卷積層操作使用輸出層優先處理程序的條件下,動態隨機存取記憶體的存取次數為2R與8W。整體輸入大小(N×Si)小於特徵映射快取之快取可用空間大小CFS,且輸入特徵映射區塊200的所有輸出通道可儲存在特徵映射快取中。因此,本發明之輸出層優先處理程序於本實施例中具有較少的存取次數,故較適用於第二層Layer_2與第三層Layer_3之間的捲積層操作。
由上述實施方式可知,本發明具有下列優點:其一,利用記憶體適應性處理技術與尺寸關係動態地改變處理迴圈結構,可以有效減少動態隨機存取記憶體的存取次數,進而降低功率消耗。其二,透過卷積運算步驟之分群步驟與輸出群優先處理步驟,可以減少動態隨機存取記憶體的存取次數,進而降低功率消耗。其三,當處理非對齊狀況之輸入通道及輸出通道時,輸入層優先處理程序或輸出層優先處理程序可以被適應性地選擇以進行卷積層操作,藉以減少存取次數並降低功率消耗。其四,本發明的應用於卷積神經網路之記憶體適應性處理方法及其系統可應用於區塊處理(Tile Processing)與融合處理(Fusion Processing)。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧應用於卷積神經網路之記憶體適應性處理方法
S12‧‧‧特徵映射計算步驟
S14‧‧‧尺寸關係計算步驟
S16‧‧‧卷積運算步驟
Claims (16)
- 一種應用於卷積神經網路之記憶體適應性處理方法,包含以下步驟:一特徵映射計算步驟,係計算出一卷積層操作的複數輸入特徵映射之複數輸入通道之一數量、一輸入特徵映射區塊大小、複數輸出特徵映射之複數輸出通道之一數量及一輸出特徵映射區塊大小;一尺寸關係計算步驟,係求得一特徵映射快取之一快取可用空間大小,並依據該些輸入特徵映射之該些輸入通道之該數量、該輸入特徵映射區塊大小、該些輸出特徵映射之該些輸出通道之該數量、該輸出特徵映射區塊大小及該快取可用空間大小計算出一尺寸關係;以及一卷積運算步驟,係依據一記憶體適應性處理技術針對該些輸入特徵映射執行該卷積層操作而產生該些輸出特徵映射,該記憶體適應性處理技術包含一處理迴圈結構之一轉換,該處理迴圈結構之該轉換係依據該尺寸關係執行該卷積層操作。
- 如申請專利範圍第1項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該處理迴圈結構之該轉換包含: 改變該處理迴圈結構之該輸入特徵映射區塊大小,藉以依據該尺寸關係執行一單區塊處理疊代。
- 如申請專利範圍第2項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該快取可用空間大小大於一總和數,且該總和數等於該些輸入特徵映射之該些輸入通道之該數量乘以該輸入特徵映射區塊大小加上該些輸出特徵映射之該些輸出通道之該數量乘以該輸出特徵映射區塊大小。
- 如申請專利範圍第2項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該快取可用空間大小大於一總和數,且該總和數等於該輸入特徵映射區塊大小加上該些輸出特徵映射之該些輸出通道之該數量乘以該輸出特徵映射區塊大小。
- 如申請專利範圍第2項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該快取可用空間大小大於一總和數,且該總和數等於該些輸入特徵映射之該些輸入通道之該數量乘以該輸入特徵映射區塊大小加上該輸出特徵映射區塊大小。
- 如申請專利範圍第1項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該處理迴圈結構之該轉換包含:將該處理迴圈結構轉換於一輸入層優先處理程序與一輸出層優先處理程序之間。
- 如申請專利範圍第6項所述之應用於卷積神經網路之記憶體適應性處理方法,其中,該些輸入特徵映射之該些輸入通道之該數量乘以該輸入特徵映射區塊大小以產生一整體輸入大小,該些輸出特徵映射之該些輸出通道之該數量乘以該輸出特徵映射區塊大小以產生一整體輸出大小,該整體輸入大小與該整體輸出大小之其中一者小於該特徵映射快取之該快取可用空間大小;當該整體輸入大小小於該特徵映射快取之該快取可用空間大小時,一輸入特徵映射區塊之該些輸入通道儲存於該特徵映射快取,該輸入特徵映射區塊代表該些輸入特徵映射之一區塊;及當該整體輸出大小小於該特徵映射快取之該快取可用空間大小時,一輸出特徵映射區塊之該些輸出通道儲存於該特徵映射快取,該輸出特徵映射區塊代表該些輸出特徵映射之一區塊。
- 如申請專利範圍第6項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該輸入層優先處理程序代表該特徵映射快取包含一輸入特徵映射區塊之該些輸入通道之僅一者及一輸出特徵映射區塊之該些輸出通道之至少一者,該輸入特徵映射區塊代表該些輸入特徵映射之一區塊,該輸出特徵映射區塊代表該些輸出特徵映射之一區塊,該處理迴圈結構透過該輸出特徵映射與該輸出特徵映射執行該卷積層操作,該輸入特徵映射係以一外迴圈進行疊代,且該輸出特徵映射係以一內迴圈進行疊代。
- 如申請專利範圍第6項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該輸出層優先處理程序代表該特徵映射快取包含一輸入特徵映射區塊之該些輸入通道之至少一者及一輸出特徵映射區塊之該些輸出通道之僅一者,該輸入特徵映射區塊代表該些輸入特徵映射之一區塊,該輸出特徵映射區塊代表該些輸出特徵映射之一區塊,該處理迴圈結構透過該輸出特徵映射與該輸出特徵映射執行該卷積層操作,該輸出特徵映射係以一外迴圈進行疊代,且該輸入特徵映射係以一內迴圈進行疊代。
- 一種應用於卷積神經網路之記憶體適應性處理方法,包含以下步驟: 一特徵映射計算步驟,係計算出一卷積層操作的複數輸入特徵映射之複數輸入通道之一數量、一輸入特徵映射區塊大小、複數輸出特徵映射之複數輸出通道之一數量及一輸出特徵映射區塊大小;一尺寸關係計算步驟,係求得一特徵映射快取之一快取可用空間大小,並依據該些輸入特徵映射之該些輸入通道之該數量、該輸入特徵映射區塊大小、該些輸出特徵映射之該些輸出通道之該數量、該輸出特徵映射區塊大小及該快取可用空間大小計算出一尺寸關係;以及一卷積運算步驟,係依據一記憶體適應性處理技術針對該些輸入特徵映射執行該卷積層操作而產生該些輸出特徵映射,該記憶體適應性處理技術包含:一分群步驟,係依據該尺寸關係將該些輸出通道分成複數輸出群組;及一輸出群優先處理步驟,包含複數輸入層優先處理步驟,各該輸入層優先處理步驟對應各該輸出群組執行。
- 如申請專利範圍第10項所述之應用於卷積神經網路之記憶體適應性處理方法,其中各該輸入層優先處理步驟係執行一輸入層優先處理程序,該輸入層優先處理程序代表該特徵映射快取包含一輸入特徵映射區塊之 該些輸入通道之僅一者及一輸出特徵映射區塊之該些輸出通道之至少一者,該輸入特徵映射區塊代表該些輸入特徵映射之一區塊,該輸出特徵映射區塊代表該些輸出特徵映射之一區塊,該處理迴圈結構透過該輸出特徵映射及各該輸出群組之複數該輸出特徵映射執行該卷積層操作,該輸入特徵映射係以一外迴圈進行疊代,且各該輸出群組之該些輸出特徵映射係以一內迴圈進行疊代。
- 如申請專利範圍第10項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該些輸入特徵映射之該些輸入通道之該數量乘以該輸入特徵映射區塊大小以產生一整體輸入大小,該些輸出特徵映射之該些輸出通道之該數量乘以該輸出特徵映射區塊大小以產生一整體輸出大小,該整體輸入大小與該整體輸出大小均大於該特徵映射快取之該快取可用空間大小。
- 如申請專利範圍第10項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該些輸出特徵映射之該些輸出通道之該數量表示為M,該特徵映射快取之該快取可用空間大小表示為CFS,該輸出群組之一數量表示為G且符合下式:G=M/(CFS-1)。
- 如申請專利範圍第10項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該些輸入特徵映射之該些輸入通道之該數量表示為N,該些輸出特徵映射之該些輸出通道之該數量表示為M,該特徵映射快取之該快取可用空間大小表示為CFS,該輸出群組之一數量表示為G且符合下式:G=M/(CFS-n);其中n為正整數,n<N,且n<CFS。
- 如申請專利範圍第10項所述之應用於卷積神經網路之記憶體適應性處理方法,其中該些輸出特徵映射之該些輸出通道之該數量表示為M,該特徵映射快取之該快取可用空間大小表示為CFS,該輸出群組之一數量表示為G且符合下式:G=M/CFS+n;其中n為正整數,且0<n≦M-M/CFS。
- 一種應用於卷積神經網路之記憶體適應性處理系統,包含:一動態隨機存取記憶體,用以儲存一輸入特徵映射區塊之複數輸入通道及一輸出特徵映射區塊之複數輸出通道; 一特徵映射快取,連接該動態隨機存取記憶體,該特徵映射快取用以儲存該輸入特徵映射區塊之該些輸入通道之至少一者及該輸出特徵映射區塊之該些輸出通道之至少一者;以及一處理單元,連接該特徵映射快取,該處理單元包含一乘法累加單元與一處理迴圈控制器,該處理迴圈控制器連接該乘法累加單元,該乘法累加單元受該處理迴圈控制器配置並依據一記憶體適應性處理技術針對該輸入特徵映射區塊執行該卷積層操作而產生該輸出特徵映射區塊;其中,該輸入特徵映射區塊具有一整體輸入大小,該輸出特徵映射區塊具有一整體輸出大小,該特徵映射快取具有一快取可用空間大小,該處理迴圈控制器依據複數輸入特徵映射之複數輸入通道之一數量、一輸入特徵映射區塊大小、複數輸出特徵映射之複數輸出通道之一數量、一輸出特徵映射區塊大小及該快取可用空間大小計算出一尺寸關係;其中,該記憶體適應性處理技術包含一處理迴圈結構之一轉換,該處理迴圈結構之該轉換係依據該尺寸關係執行該卷積層操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862720249P | 2018-08-21 | 2018-08-21 | |
US62/720,249 | 2018-08-21 | ||
US16/533,872 | 2019-08-07 | ||
US16/533,872 US10963390B2 (en) | 2018-08-21 | 2019-08-07 | Memory-adaptive processing method for convolutional neural network and system thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202009799A TW202009799A (zh) | 2020-03-01 |
TWI708193B true TWI708193B (zh) | 2020-10-21 |
Family
ID=69584548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108129886A TWI708193B (zh) | 2018-08-21 | 2019-08-21 | 應用於卷積神經網路之記憶體適應性處理方法及其系統 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10963390B2 (zh) |
TW (1) | TWI708193B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI740725B (zh) * | 2020-11-20 | 2021-09-21 | 英業達股份有限公司 | 資料傳遞及合併的方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200067632A (ko) | 2018-12-04 | 2020-06-12 | 삼성전자주식회사 | 뉴럴 네트워크를 구동하기 위한 메모리 공간을 할당하는 방법 및 장치 |
TWI797985B (zh) * | 2021-02-10 | 2023-04-01 | 國立成功大學 | 卷積運算的執行方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016182674A1 (en) * | 2015-05-08 | 2016-11-17 | Qualcomm Incorporated | Adaptive selection of artificial neural networks |
US20160379115A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
TW201928795A (zh) * | 2017-12-11 | 2019-07-16 | 大陸商北京中科寒武紀科技有限公司 | 神經網絡運算設備和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417555B2 (en) * | 2015-05-29 | 2019-09-17 | Samsung Electronics Co., Ltd. | Data-optimized neural network traversal |
US11119915B2 (en) * | 2018-02-08 | 2021-09-14 | Samsung Electronics Co., Ltd. | Dynamic memory mapping for neural networks |
US11238336B2 (en) * | 2018-07-10 | 2022-02-01 | The George Washington University | Optical convolutional neural network accelerator |
KR20200067632A (ko) * | 2018-12-04 | 2020-06-12 | 삼성전자주식회사 | 뉴럴 네트워크를 구동하기 위한 메모리 공간을 할당하는 방법 및 장치 |
-
2019
- 2019-08-07 US US16/533,872 patent/US10963390B2/en active Active
- 2019-08-21 TW TW108129886A patent/TWI708193B/zh active
-
2021
- 2021-02-26 US US17/186,105 patent/US11467968B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
WO2016182674A1 (en) * | 2015-05-08 | 2016-11-17 | Qualcomm Incorporated | Adaptive selection of artificial neural networks |
US20160379115A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
TW201928795A (zh) * | 2017-12-11 | 2019-07-16 | 大陸商北京中科寒武紀科技有限公司 | 神經網絡運算設備和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI740725B (zh) * | 2020-11-20 | 2021-09-21 | 英業達股份有限公司 | 資料傳遞及合併的方法 |
Also Published As
Publication number | Publication date |
---|---|
US11467968B2 (en) | 2022-10-11 |
TW202009799A (zh) | 2020-03-01 |
US20210182204A1 (en) | 2021-06-17 |
US10963390B2 (en) | 2021-03-30 |
US20200065251A1 (en) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110097174B (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、***及装置 | |
TWI708193B (zh) | 應用於卷積神經網路之記憶體適應性處理方法及其系統 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
US10445638B1 (en) | Restructuring a multi-dimensional array | |
Yuan et al. | High performance CNN accelerators based on hardware and algorithm co-optimization | |
CN107993186A (zh) | 一种基于Winograd算法的3D CNN加速方法及*** | |
CN111667051A (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
Cheng et al. | Fast 2D convolution algorithms for convolutional neural networks | |
CN106846235A (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及*** | |
Wang et al. | A low-latency sparse-winograd accelerator for convolutional neural networks | |
CN109993275A (zh) | 一种信号处理方法及装置 | |
JP2022137247A (ja) | 複数の入力データセットのための処理 | |
WO2022179075A1 (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN109447257B (zh) | 一种通道自组织的深度神经网络加速芯片的运算装置 | |
US11467973B1 (en) | Fine-grained access memory controller | |
CN116611488A (zh) | 一种矢量处理单元、神经网络处理器及深度相机 | |
US11830114B2 (en) | Reconfigurable hardware acceleration method and system for gaussian pyramid construction | |
CN115688892A (zh) | 一种稀疏权重Fused-Layer卷积加速器结构的FPGA实现方法 | |
CN112925727B (zh) | Tensor高速缓存及访问结构及其方法 | |
CN112346704B (zh) | 一种用于卷积神经网络的全流水线型乘加单元阵列电路 | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet***及其方法 | |
GB2582868A (en) | Hardware implementation of convolution layer of deep neural network | |
Zheng et al. | Hardware architecture exploration for deep neural networks | |
CN113705784A (zh) | 一种基于矩阵共享的神经网络权重编码方法及硬件*** | |
Zhang et al. | A High-Efficient and Configurable Hardware Accelerator for Convolutional Neural Network |