TW201824096A - 執行卷積計算的系統及方法 - Google Patents
執行卷積計算的系統及方法 Download PDFInfo
- Publication number
- TW201824096A TW201824096A TW106144577A TW106144577A TW201824096A TW 201824096 A TW201824096 A TW 201824096A TW 106144577 A TW106144577 A TW 106144577A TW 106144577 A TW106144577 A TW 106144577A TW 201824096 A TW201824096 A TW 201824096A
- Authority
- TW
- Taiwan
- Prior art keywords
- convolution
- mode
- matrix
- filter
- calculation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本發明提供一種以矩陣模式或者濾波器模式執行卷積計算的系統。分析模組生成模式選擇信號,以基於分析卷積特徵的結果而選擇矩陣模式或者濾波器模式。該結果包括至少矩陣模式與濾波器模式之間的資源利用的比較。卷積模組包括複數處理元件,每一處理元件進一步包括算術計算電路。卷積模組用於根據矩陣模式執行自卷積計算轉換而來的矩陣乘法,並用於根據濾波器模組執行卷積計算。本發明還提供了對應的方法。本發明能有效執行卷積計算,並提高資源利用率。
Description
本發明的實施例涉及用於卷積計算(convolution computing)的電腦架構,更具體地,涉及一種執行卷積計算的系統及方法。
在電腦視覺、語音辨識、自然語言處理和生物資訊學的領域中,深度學習以其優越的性能已得到廣泛的認可。深度學習是機器學習的分支,其利用包含多個隱藏層的人工神經網路。稱為卷積神經網路(convolutional neural network,CNN)的一種類型的人工神經網路由深度學習在大資料集上使用,例如,圖像資料的大資料集。CNN已在圖像應用中顯現出良好的結果。例如,CNN可以被用在特徵提取上。從輸入端所接收的原始圖像像素中,CNN可以在輸出端為不同級別的特徵生成分數。
CNN的計算工作量很大。CNN的核心計算為卷積,其涉及高階嵌套環(high-order nested loop)。對於特徵提取,CNN在通道集(例如,紅、綠及藍)上對具有二維濾波器集的輸入圖像像素進行卷積,然後進行非線性計算、向下採樣計算與級別分數計算。已經瞭解卷積計算對資源要求很高。 除了CNN,卷積計算還經常用於解決科學問題與工程問題。因此,需要優化卷積計算以提高性能。
本發明的目的在於,提供一種執行卷積計算的系統及方法,以解決上述問題。
在一個實施例中,提供了一種用於執行卷積計算的系統。該系統包括分析模組,其根據分析多個卷積特徵的多個結果,生成模式選擇信號以選擇矩陣模式與濾波器模式中的一個。該等結果包括至少矩陣模式及濾波器模式之間的資源利用的比較。該系統還包括與所述分析模組耦接的卷積模組。該卷積模組包括複數處理元件,每一處理元件包括算術計算電路。所述卷積模組用於根據所述矩陣模式執行自多個卷積計算轉換而來的複數矩陣乘法,並用於根據所述濾波器模式執行該等卷積計算。
在另一實施例中,提供了用於執行卷積計算的方法。該方法包括:卷積模組接收用於選擇矩陣模式與濾波器模式中的一個的模式選擇信號。所述模式選擇信號是基於分析多個卷積特徵的多個結果生成而來,該等卷積特徵包括至少矩陣模式與濾波器模式之間的資源利用的比較。所述卷積模組包括複數處理元件,每一處理元件包括算術計算電路。該方法還包括:回應於選擇所述矩陣模式,執行自多個卷積計算轉換而來的複數矩陣乘法;以及回應於選擇所述濾波器模式,執行該等卷積計算。
透過根據一個給定的CNN問題的特徵而使用處理 元件的配置及/或資料調度到處理元件,本發明實施例使得卷積計算有效,實施例的有益效果將在下文中詳細解釋。
本發明透過分析卷積特徵,根據分析的結果產生模式選擇信號以選擇矩陣模式或濾波器模式,進而多個處理元件根據矩陣模式進行矩陣乘法,並根據濾波器模式進行卷積計算,有效執行卷積計算,並透過多個處理元件既進行矩陣乘法又進行卷積計算,提高資源利用率。
100‧‧‧系統
110‧‧‧處理模組
120,210,220,610‧‧‧卷積模組
130‧‧‧記憶體
140‧‧‧系統記憶體
150‧‧‧分析模組
230‧‧‧矩陣引擎
240‧‧‧濾波器引擎
231,331‧‧‧第一陣列
241,441‧‧‧第二陣列
250‧‧‧混合引擎
251‧‧‧混合陣列
310,410,510,710,810‧‧‧處理元件
315,515,711,811‧‧‧累加器
320,420,520‧‧‧第一輸入暫存器
330,430,530‧‧‧第二輸入暫存器
340,440,540‧‧‧輸出暫存器
350,550,640,740,840‧‧‧資料調度引擎
360‧‧‧圖像矩陣
370‧‧‧濾波器矩陣
620‧‧‧載入引擎
630‧‧‧本地暫存器
650,750,850‧‧‧處理元件陣列
712,812‧‧‧加法器
713,813‧‧‧乘法器
900‧‧‧方法
910-930‧‧‧步驟
本發明之不同實施例之描述可一併參考後面之圖示,其中同樣的標號代表同樣元件,其中:第1圖是根據一個實施例的執行CNN計算的系統;第2A圖是根據一個實施例的包括矩陣引擎和濾波器引擎的卷積模組;第2B圖是根據另一實施例的包括混合引擎的卷積模組;第3圖是根據一個實施例的矩陣引擎;第4圖是根據一個實施例的濾波器引擎;第5圖是根據一個實施例的混合引擎;第6圖是根據另一實施例的卷積模組;第7圖是根據一個實施例的矩陣模式中具有調度資料(dispatched data)的硬體設定;第8圖是根據一個實施例的濾波器模式中具有調度資料的硬體設定;第9圖是根據一個實施例的執行卷積計算的方法的流程示意圖。
本發明實施例提供一種用於有效卷積計算的方法及系統。該系統包括卷積模組,其進一步包括用於執行卷積計算的處理元件。卷積模組是卷積計算系統的核心計算模組。在下文中,以CNN為例,對卷積計算進行描述。可以理解的是,本文所描述的卷積計算技術可以被應用到計算卷積的任何應用或者問題中。
在描述用於CNN計算的硬體架構之前,可能先描述CNN計算中使用的一些技術是有幫助的。通常,相比於輸入圖像尺寸,用於CNN計算的濾波器在尺寸上是較小的。例如,一個濾波器可以由5x5的濾波器權重構成,即沿著寬度方向有5個濾波器權重,且沿著高度方向有5個濾波器權重。相對而言,在每個寬度方向與高度方向中,輸入圖像可以具有成千上萬個像素。除了寬度與高度,輸入圖像具有深度方向,其可以是輸入圖像中顏色通道的數量。在卷積期間,濾波器滑過輸入圖像的寬度及/或高度,並且計算任何位置處的濾波器權重與圖像像素值之間的點積(dot product)。當濾波器在輸入圖像上滑動時,生成二維輸出特徵圖。輸出特徵圖表示位於輸入圖像的每個空間位置處的濾波器回應。當多個濾波器被應用到輸入圖像時,生成多個輸出特徵圖。每個輸出特徵圖透過使用濾波器而產生,並且不同的輸出特徵圖可以用於檢測輸入圖像中的不同的特徵。當計算點積(即卷積)時,濾波器可以按照一次一個像素的方式在輸入圖像上滑動。在一些情況中,濾波器可以按照一次多個像素的方式在輸入圖像上滑動。濾波 器在卷積的每個步驟中在輸入圖像上滑過的像素的數量稱為步幅大小(stride size)。
在一個實施例中,CNN計算系統包括至少兩個引擎:矩陣引擎與濾波器引擎。矩陣引擎執行兩個矩陣的矩陣乘法,其自輸入圖像與濾波器的卷積轉換而來。很容易並行執行矩陣乘法,但是需要較大記憶體及頻寬。濾波器引擎可以包括處理元件,其接收圖像資料及以對卷積計算有效的方式而分配的濾波器權重。但是,當問題尺寸與硬體尺寸不匹配時,濾波器引擎或者矩陣引擎可能遭受硬體利用效率低的問題。
第1圖示出了本發明實施例可操作的系統100的示例。該系統100包括處理模組110,其與用於執行卷積計算的卷積模組120耦接。處理模組110可以包括一個或者多個處理器,每個處理器進一步包括用於執行算術操作和/或邏輯操作的電路。處理器的實施例包括,但不限於,中央處理單元(central processing unit,CPU)、算術及邏輯單元(arithmetic and logic unit,ALU)、向量處理器(vector processor)和其他通用及/或專用處理電路。卷積模組120是用於執行卷積的執行引擎。卷積模組120可以包括多個被參考為處理元件的硬體元件,其中每個包括算術計算電路,例如一個或多個乘法器、加法器、累加器(accumulator,ACC)、ALU、處理器或其任何組合。處理元件可以被設置成一個或多個陣列。根據來自於分析模組150的模式選擇信號,卷積模組120以矩陣模式或濾波器模式執行卷積計算。
在一個實施例中,卷積模組120的輸出可以被發 送到處理模組110,其根據具體的圖像應用的要求,執行非線性操作、環路操作、全連接的神經網路操作等的組合。在一個實施例中,處理模組110與卷積模組120一起用作特徵提取器,其用於從給定的輸入圖像中提取特定特徵(例如,車、人、船等)。可選地,處理模組110與卷積模組120執行CNN計算,以用於不限於上述說明的大量的圖像應用。系統100可以是計算設備、通信設備或者計算及通信設備的組合的一部分。在另一實施例中,處理模組110和卷積模組120一起可以執行與CNN相關或者不相關的其他科學的計算或者工程計算。
分析模組150對卷積特徵集進行分析。在一個實施例中,分析模組150可以與處理模組110及/或記憶體130耦接,以接收卷積特徵。分析模組150也可以與卷積模組120耦接,以發送模式選擇信號,其用於根據分析結果選擇卷積模式。在一個可選的實施例中,分析模組150可以是處理模組110的一部分。分析模組150可以是硬體元件或者存儲在由諸如處理模組110中的電路的機器執行的機器可讀介質中的軟體程式。
在一個實施例中,考慮到如果存在的硬體約束和使用者需求,分析模組150確定每個卷積特徵如何影響包括資源利用的性能統計。性能統計也可以包括所需要的處理時間和/或能量消耗限度。在一個實施例中,分析模組150可以線上(即在運行操作的期間)或線下執行這個分析。硬體約束可以包括,但不限於卷積模組120中的處理元件的數量,分配給矩陣模式與濾波器模式中每個的處理元件陣列的高度及寬度,每 個處理元件的能量消耗,處理速度與通信頻寬,以及記憶體容量與記憶體頻寬。用戶需求可以包括用於能量消耗的上限、所需處理時間的上限以及用於諸如記憶體資源與處理資源的利用的資源利用的下限中的一個或多個。
當用於圖像應用的給定具體卷積特徵時,對於卷積模組120中如果存在的給定的硬體及需求而言,分析模組150比較矩陣模式與濾波器模式之間的性能統計。分析模組150比較這兩個模式的性能,並相應地產生用於卷積模組150的模式選擇信號。在一個實施例中,基於卷積計算的尺寸與卷積模組120中的陣列或者陣列組尺寸是否匹配,或者卷積計算的尺寸與卷積模組120中的陣列或者陣列組尺寸的不匹配程度,分析模組150可以進行模式選擇。
在一個實施例中,由分析模組150所分析的卷積特徵可以包括,但不限於輸入圖像高度與寬度、通道數量、輸入圖像計數、輸入濾波器高度與寬度、輸入濾波器計數、步幅大小、輸入批量尺寸(input batch size)、並行方向度、輸入通道順序、輸出通道順序等。更具體而言,輸入批量尺寸是在卷積計算中一起處理以提高重新使用率的資料集合的尺寸。並行方向度是並行分配給卷積計算的處理元件的方向度。這些所分配的處理元件被稱為並行處理單元(parallel processing unit,PPU)。例如,一個PPU可以包括3x3=9個ALU,以用於並行的卷積計算,並且另一個PPU可以包括7x7=49個ALU。並行緯度也包括PPU放置形狀。例如,具有32個ALU的PPU可以被放置在8x4個ALU的二維陣列,或者16x2個 ALU的二維陣列,或者32x1個ALU的一方向陣列中,以用於不同的輸入資料足跡(data footprints)。關於輸入通道與輸出通道的通道順序,通道順序表示關於顏色通道排列的記憶體中的圖像足跡(image footprint)。對於RGB通道,一個通道順序可以是RGB的重複模型(repeated pattern),另一個通道順序可以是所有R通道,其後先是所有G通道,再是所有的B通道。
分析模組150用覆蓋寬範圍的情景的卷積特徵的不同組合,可以計算用於矩陣模式及濾波器模式兩者的性能統計。在系統運行操作期間,當系統100被給定用於圖像應用的卷積特徵集時,基於所計算的性能統計,分析模組150確定將選擇哪個模式。分析模組150可以在系統100的執行時間中產生並發送模式選擇信號到卷積模組120。
雖然第1圖示出分析模組150作為位於處理模組110外部的硬體模組,但是在一些實施例中,分析模組150與處理模組110可以被實現為一個包含通用計算元件與專用計算元件中至少一個的硬體設備。在一個實施例中,分析模組150可以是可程式設計的。在可選實施例中,分析模組150可以在另一處理平臺上,例如計算設備,並與卷積模組120透過網路交互分析結果。在一個實施例中,分析模組150可以執行機器可讀指令,以執行上述的分析,並以機器可讀指令的形式發送模式選擇信號到卷積模組120,以選擇矩陣模式或者濾波器模式。
在一個實施例中,系統100可以包括記憶體130,其可以位於片上(on-chip)(即與處理模組110中的處理器位 於相同的晶片上),並包括快取記憶體器、寄存器檔及由隨機訪問記憶體(random access memory,RAM)組成的暫存器,例如,靜態隨機訪問記憶體(static random access memory,SRAM)設備。可選地,記憶體130可以位於片下(off-chip),並是由RAM組成的主記憶體的一部分,例如動態隨機訪問記憶體(dynamic random access memory,DRAM)設備。記憶體130可以由卷積模組120中的所有處理元件共用。系統100還可以與系統記憶體140耦接,例如DRAM設備或者其他易失性設備和/或非易失性設備。
第2A圖示出了根據第1圖中的卷積模組120的第一實施例的卷積模組210。卷積模組210包括矩陣引擎230與濾波器引擎240。矩陣引擎230與濾波器引擎240中每個為硬體設備,並分別包括處理元件的第一陣列231與第二陣列241。第一陣列231中的處理元件具有第一陣列配置,第二陣列241中的處理元件具有第二陣列配置。第一陣列配置與第二陣列配置的具體描述將結合第3圖與第4圖來分別提供。第一陣列231與第二陣列241可以是相同尺寸或者不同尺寸。當來自於分析模組150(第1圖中)的模式選擇信號表示矩陣模式被選擇以用於圖像應用時,矩陣引擎230被啟動以用於卷積計算(其首先被轉換成矩陣乘法)。當來自於分析模組150的模式選擇信號表示濾波器模式被選擇以用於圖像應用時,濾波器引擎240被啟動以用於卷積計算。
第2B圖示出了根據第1圖中的卷積模組120的第二實施例的卷積模組220。卷積模組220包括混合引擎250, 其進一步包括由矩陣模式與濾波器模式所共用的處理元件的混合陣列251。當來自於分析模組150的模式選擇信號表示矩陣模式被選擇以用於圖像應用時,混合引擎250用於根據矩陣模式而用作第一陣列配置。當來自於分析模組150的模式選擇信號表示濾波器模式被選擇以用於圖像應用時,混合引擎250用於根據濾波器模式而用作第二陣列配置。
第3圖示出了根據一個實施例的矩陣引擎230的示例。為了說明目的,第3圖顯示了矩陣引擎230中的硬體元件以及由硬體元件將進行卷積的資料(用虛線表示)的示例。待卷積的資料包括輸入圖像(例如,由九個像素值M0,M1,M2,....,M8所構成的3x3圖像M)及四個2x2濾波器F、G、H和I,其所有或者部分可以被存儲在記憶體130中。如上所述,當卷積模組120的矩陣模式被選擇時,矩陣引擎230被啟動。
在本示例中,矩陣引擎230包括處理元件310的第一陣列331,其可以根據第一陣列配置透過垂直連接和水準連接而相互連接。第一陣列331是第2A圖的第一陣列231的一個示例。每個處理元件310與累加器315耦接,以對部分和(partial sum)進行累加。在可選實施例中,累加器315可以是處理元件310的部分。矩陣引擎230可以與第一輸入暫存器320、第二輸入暫存器330和輸出暫存器340耦接。第一輸入暫存器320可以用於暫時存儲輸入圖像的像素值;因此,在所示的本示例中,像素值可以從上到下(即沿著垂直方向)進入第一陣列331。第二輸入暫存器330可以用於暫時存儲一個或 多個濾波器的濾波器權重;因此,在所示的本示例中,濾波器權重可以從左到右(即沿著水平方向)進入第一陣列331。輸出暫存器340可以用於暫時存儲輸出特徵圖的值(即像素值與濾波器權重的卷積結果),或者至少部分輸出特徵圖。可選地,像素值可以水平方向進入第一陣列331,並且濾波器權重可以以垂直方向進入第一陣列331。
矩陣引擎230高效地執行矩陣乘法。在一個實施例中,矩陣引擎230包括資料調度引擎350,其將二維卷積視窗(convolution window)中的像素值展開到展開的圖像矩陣360的行中,並透過輸入暫存器320或者輸入暫存器330,將展開的像素值分配到第一陣列331。被應用到輸入圖像的每個濾波器定義二維卷積視窗。當二維卷積視窗(即濾波器)在整個輸入圖像M上滑動時,生成展開的圖像矩陣360的行。在本簡化的示例中,3x3的輸入圖像M被展開到更大的4x4的展開的圖像矩陣360中。資料調度引擎350還將濾波器權重展開到展開的濾波器矩陣370的行中,並透過輸入暫存器320或者輸入暫存器330,將展開的濾波器權重分配到第一陣列331中。在本示例中,每個濾波器的濾波器權重被展開到展開的濾波器矩陣370的單行中。在可選實施例中,圖像資料與濾波器資料的展開可以在矩陣引擎230的外部由另一引擎來執行,即系統100中的處理器或者電路,並被存儲在由矩陣引擎230可訪問的記憶體130中。應注意,展開的圖像矩陣360中的每個元件也是輸入圖像M的元件,並且展開的濾波器矩陣370中的每個元件也是其中一個濾波器的元件。
如第3圖所示,展開的圖像矩陣360的行可以在從第一陣列331的上到下的垂直方向上繼續,而展開的圖像矩陣370的列在第一陣列331的從左到右的水平方向上繼續。所有的處理元件310均相同,並且在相同時鐘下運行。第一陣列331中的每對處理元件310與累加器315執行乘法-加法操作以及累加操作,以將像素值乘以濾波器權重,並將乘積增加到累加的部分和中。矩陣乘法的結果是輸入特徵圖的卷積結果,其被發送到輸出暫存器340中。
由矩陣引擎230所執行的矩陣乘法很容易在單指令多資料(single-instruction-multiple-data,SIMD)架構上並存執行,例如處理元件310的第一陣列331。但是,由於展開的圖像矩陣比原始輸入圖像佔用更多存儲空間,並佔據更多記憶體頻寬,將輸入圖像展開到展開的圖像矩陣(例如展開的圖像矩陣360)在系統資源上創建了大量的開銷,例如記憶體容量和記憶體頻寬。
第4圖示出了根據一個實施例的濾波器引擎240的示例。如上所述,當卷積模組120的濾波器模式被選擇時,濾波器引擎240被啟動。
濾波器引擎240包括處理元件410的第二陣列441,其根據第二陣列配置,透過垂直連接、水準連接及對角線連接相互連接。第二陣列441是第2A圖的第二陣列241的一個示例。濾波器引擎240可以與第一輸入暫存器420、第二輸入暫存器430與輸出暫存器440耦接。水準連接允許濾波器權重的行水準地穿過處理元件410而被重新使用。對角線連接 允許像素值的行對角線地穿過處理元件410而被重新使用,垂直連接允許部分及垂直地被累加。
在第4圖的實施例中,資料調度引擎450透過輸入暫存器420與輸入暫存器430,將像素值及濾波器權重分配到第二陣列441中。透過各自的對角線連接,濾波器權重傳播透過第二陣列441。每個處理元件410在一對像素值與濾波器權重上進行操作,並透過各自的垂直連接傳播結果。累加器415將在各自垂直連接上傳播的卷積的部分和進行累加。在可選實施例中,濾波器權重可以使用垂直連接,部分和可用使用水準連接。另外,可選的對角線連接可以正交於第4圖中所顯示的,即可選的對角線連接可以從左下指向右上。
在一個實施例中,在同一對角線上的所有處理元件410可以直接連接到第一輸入暫存器420,以在同一週期內接收相同的圖像像素值。同理,在同一行中的所有處理元件410可以直接連接到第二輸入暫存器430,以在同一週期內接收相同的濾波器權重。每個處理元件410執行一方向卷積,即乘法-加法操作,將像素值乘以濾波器權重,並將乘積增加到同一處理元件中累加的部分和中。所有處理元件410均相同,並在相同的時鐘下運行。重新使用同一值的所有處理元件410在同一週期內接收該值。從每個處理元件410中產生的部分和被立即發送到其相鄰的處理元件410。
濾波器引擎240提供硬體加速器平臺,其允許二維卷積直接映射到處理元件的陣列(即第二陣列441)上。該映射簡單明瞭且易如實現。但是,當二維卷積的尺寸與第二陣 列441的尺寸之間存在不一致時,一些處理元件410可以保留不被使用,並導致資源利用效率低。
因此,第1圖的分析模組150用於分析卷積計算的參數,以在計算發生前確定矩陣模式或者濾波器模式是否是最適合於計算。在一個實施例中,分析模組150可以在用於矩陣模式的矩陣引擎230與用於濾波器模式的濾波器引擎240之間進行選擇。在可選的實施例中,分析模組150可以在相同硬體引擎的矩陣模式和濾波器模式之間進行選擇,例如,第2B圖的混合引擎250。
第5圖是根據一個實施例的混合引擎250的示例示意圖。混合引擎250包括處理元件510的混合陣列251,其可以用於在運行期間在矩陣模式被選擇時具有第一陣列配置,並在濾波器模式被選擇時具有第二陣列配置。更具體地,當矩陣模式被選擇時,混合陣列251可以禁用其對角線連接,並使能其垂直連接與水平連接,以用於分別傳播像素值與濾波器權重。在矩陣模式中的混合引擎250執行與第3圖的矩陣引擎230相同的操作,並且每個處理元件510執行與相應的一對處理元件310與累加器315的相同的操作。當累加操作由處理元件510來執行時,矩陣模式中的累加器515可以被禁能。當濾波器模式被選擇時,混合陣列251可以使能其對角線連接以用於傳播像素值,並且也使能其垂直連接與水平連接以分別傳播部分和濾波器權重。濾波器模式中的混合引擎250執行與第4圖的濾波器引擎240的相同的操作,並且每個處理元件510執行與相應的處理元件410的相同的操作。濾波器模式中的累 加器可以被使能以執行部分和的累加。
混合引擎250包括資料調度引擎550,其根據模式選擇信號將資料分配到混合陣列251。在一個實施例中,如第3圖所示,矩陣模式中的資料調度引擎分別將像素值與濾波器權重展開到展開的圖像矩陣與展開的濾波器矩陣中,並且分別在垂直方向與水平方向上將像素值與濾波器權重調度到混合陣列251中。在可選的實施例中,圖像資料與濾波器資料的展開可以在混合引擎250的外部由另一引擎來執行,即處理器或電路,並可以被存儲在由混合引擎250可訪問的記憶體中。結合第4圖所述,濾波器模式中的資料調度引擎550分別在對角線方向與水平方向上將像素值與濾波器權重調度到混合陣列251中。
在可選實施例中,矩陣模式操作中,由垂直連接和水平連接所承載的資料可以互換,例如像素值可以在水平連接上被發送,濾波器權重可以在垂直連接上被發送。結合濾波器模式操作,如上所述,也可以對由對角線連接、垂直連接和水平連接所承載的資料做出相似的改變。
混合引擎250還包括第一輸入暫存器520、第二輸入暫存器530和輸出暫存器540,其用於矩陣模式與濾波器模式中,以緩存混合陣列251的輸入資料與輸出資料。由於無論選擇哪個模式均使用相同的處理元件集與相同的暫存器集,混合引擎250的使用可以提高資源利用率。
第6圖示出了根據另一實施例的系統100(即第1圖中)的卷積模組610。卷積模組610可以是第1圖中的卷積 模組120的一個實施例。在本實施例中,載入引擎620從記憶體130中載入圖像資料與濾波器權重到卷積模組610中的本地暫存器630中。本地暫存器630與資料調度引擎640耦接,其根據模式選擇信號將來自於本地暫存器630的資料調度到處理元件陣列(processing element array,PE陣列)650中的相應的處理元件。在一個實施例中,卷積模組610包括兩個PE陣列650,其中一個用作矩陣引擎以用於執行矩陣乘法,另一個用作濾波器引擎以用於執行卷積計算。在另一實施例中,卷積模組610包括一個PE陣列650,其用作混合引擎以用於根據來自於分析模組150的模式選擇信號而執行矩陣乘法或者卷積計算。在第6圖的示例中,一個PE陣列650以虛線所示,以表示在不同的實施例中卷積模組610可以包括一個PE陣列650或者兩個PE陣列650。
在本實施例中,PE陣列650包括一方向陣列的處理元件,其中每個包括算術計算電路,例如乘法器、加法器、累加器、ALU、處理器或者上述任何組合中的一個或多個。在一個實施例中,PE陣列650可以是向量處理器,其根據向量命令執行向量操作。
第7圖示出了根據一個實施例的矩陣模式中的資料調度引擎740和PE陣列750。資料調度引擎740為資料調度引擎640的一個示例,並且PE陣列750為PE陣列650(第6圖中)的一個示例。資料調度引擎740將展開的濾波器權重(由陣列A的元件所示)與展開的圖像資料(由陣列B的元件所示)展開到PE陣列750中的處理元件710中,以用於矩 陣乘法。
在本示例中,每個處理元件710被顯示以包括累加器711、加法器712及乘法器713,以用於先執行乘法-加法操作然後執行累加操作。在可選的實施例中,每個處理元件710可以包括可程式設計電路,其執行指令或命令來執行乘法-加法操作及累加操作。可理解的是,PE陣列750中所示的硬體元件為示意的,在可選實施例中,PE陣列750可以包括不同數量及/或不同類型的硬體元件。
第8圖示出了根據一個實施例的濾波器模式中的資料調度引擎840與PE陣列850。資料調度引擎840為資料調度引擎640的一個示例,並且PE陣列850為PE陣列650(第6圖中)的一個示例。資料調度引擎840將濾波器權重(由陣列F的元件所示)和圖像資料(由陣列I的元件所示)展開到PE陣列850中的處理元件810中,以用於卷積計算。在第8圖的示例中,作為卷積計算的部分,濾波器權重F1被調度到所有四個處理元件810,以用於具有四個不同的圖像資料元件的乘法。
在本示例中,每個處理元件810被顯示以包括累加器811、加法器812與乘法器813,以用於先執行乘法-加法操作然後執行累加操作。在可選的實施例中,每個處理元件810可以包括可程式設計電路,其執行指令或命令來執行乘法-加法操作與累加操作。可理解的是,PE陣列850中所示的硬體元件為示意的,在可選實施例中,PE陣列850可以包括不同數量和/或不同類型的硬體元件。
第9圖示出了根據一個實施例的用於執行卷積計算的方法900的流程圖。在一個實施例中,方法900可以由系統(例如第1圖的系統100)來執行,更具體地,由包括多個處理元件的卷積模組來執行,其中每個處理元件進一步包括算術計算電路。方法900開始於卷積模組接收選擇矩陣模式與濾波器模式中一個的模式選擇信號(步驟910)。基於分析卷積特徵的結果生成模式選擇信號,該結果包括至少矩陣模式與濾波器模式之間的資源利用率的比較。回應於選擇矩陣模式,卷積模組執行自卷積計算轉換而來的矩陣乘法(步驟920)。回應於選擇濾波器模式,卷積模組執行卷積計算(步驟930)。
在一個實施例中,卷積模組可以包括兩個PE陣列:一個PE陣列用作矩陣引擎,其執行自卷積計算轉換而來的矩陣乘法,另一個PE陣列用作濾波器引擎,其執行卷積計算。在可選實施例中,卷積模組可以包括一個PE陣列,其用作混合引擎,其在運行期間根據模式選擇信號執行矩陣模式中的矩陣乘法和濾波器模式中的卷積計算。這一個PE陣列或者兩個PE陣列可以是二維、一方向或者其他方向度。
第9圖的流程圖的操作已結合第1圖到第8圖的示例性實施例而被描述。但是,應理解的是,第9圖的流程圖的操作可以由本發明的除了第1圖到第8圖中討論的實施例之外的實施例來執行,並且第1圖到第8圖中討論的實施例可以執行與這些結合流程圖所討論的操作不同的操作。雖然第9圖的流程圖顯示了由本發明的某些實施例執行的操作的特定順序,但是,應理解的是,這個順序是示例性的(例如,可選實 施例可以以不同的循序執行這些操作,組合某些操作,覆蓋某些操作等)。例如,步驟920與步驟930可以以基於在不同時刻處所選擇的模式的任何順序而被執行。
本文已描述了各種功能元件或模組。由本領域技術人員將所理解的是,功能模組將優選地透過電路(專用電路,或通用電路,其在一個或多個處理器的控制,及編碼指令下進行操作),其通常將包括電晶體,該電晶體以根據本文所描述的功能和操作而控制電路的操作的這樣一種方式來被配置。
本文描述的主題有時展示包含的不同元件,或連接到不同其他元件。需要瞭解,這樣的描繪的架構僅僅是為了舉例說明,實際上,可以採用許多其他的架構來實施並實現同樣功能。從概念上說,任何實現同樣功能的組件的安排都是有效“相關的”,只要期望的功能可以達到。而且,任何兩個組合來實現一特定功能的元件都可以被看作是彼此“相關”,只要期望的功能達到,無論架構或中間組件。同樣,兩個如此相關的元件可被看作是“功能性連接”,或“功能上連接”到彼此,來達到期望的功能,任何兩個能夠如此相關的元件也可被看作“功能性連接”到彼此來達到期望的功能。功能性連接的具體實施例包含,但不限於物理上相連,以及/或物理上交互的元件,以及/或無線可交互的,以及/或無線交互的元件,以及/或邏輯交互,以及或邏輯可交互元件。
而且,應瞭解本領域技術人員,總體來說,本文所用的詞彙,特別是權利要求中所用的,例如後附的權利要 求,總體上應被解讀為“開方式”詞彙,例如,詞彙“包含”應該被解讀為“包含但不限於”,而詞彙“具有”也應被解讀為“至少有”,詞彙“包括”應該被解讀為“包含但不限於”等等。
本發明上面描述以特定實施進行範例說明,但實施例可被修改,調整,變化。因此,上述實施例僅作為說明而非用來限制本發明。凡依本發明申請專利範圍所做之均等變化與修飾,皆不脫離本發明之精神與範圍。
Claims (20)
- 一種執行卷積計算的系統,包括:一分析模組,用於根據分析複數卷積特徵的複數結果,生成模式選擇信號以選擇矩陣模式與濾波器模式其中之一,其中該等結果包括至少該矩陣模式與該濾波器模式之間的資源利用的比較;以及一卷積模組,與該分析模組耦接,包括多個處理元件,每個該處理元件包括算術計算電路,其中該卷積模組用於根據該矩陣模式執行自複數卷積計算轉換而來的複數矩陣乘法,並根據該濾波器模式執行該等卷積計算。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等處理元件配置為兩個二維陣列,該兩個二維陣列包括用於執行該矩陣模式中的該等矩陣乘法的第一二維陣列,以及用於執行該濾波器模式中的該等卷積計算的第二二維陣列。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等處理元件用作一個混合二維陣列,所述混合二維陣列在運行期間根據所述模式選擇信號執行所述矩陣模式中的該等矩陣乘法和所述濾波器模式中的該等卷積計算。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等處理元件用作兩個一維陣列,該兩個一維陣列包括用於執行該矩陣模式中的該等矩陣乘法的第一一維陣列,以及用於執行該濾波器模式中的該等卷積計算的第二一維陣列。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等處理元件用作一混合一維陣列,該混合一維陣列在運行期間根據該模式選擇信號執行該矩陣模式中的該等矩陣乘法與該濾波器模式中的該等卷積計算。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中還包括:一資料調度引擎,用於根據該模式選擇信號將輸入圖像資料與複數濾波器權重調度到相應的該等處理元件中。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該卷積計算包括卷積神經網路計算。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等結果包括該矩陣模式與該濾波器模式之間的功率性能比較。
- 如申請專利範圍第1項所述之執行卷積計算的系統,其中該等卷積特徵包括輸入圖像的維度、該卷積計算中所使用的濾波器的維度以及用於並行執行該卷積計算的該等處理元件的緯度。
- 如申請專利範圍第9項所述之執行卷積計算的系統,其中該等卷積特徵還包括輸入濾波器計數、關於該輸入圖像的複數像素值的複數濾波器權重的步幅大小、輸入資料批量尺寸、輸入到該卷積計算的該等濾波器權重與該等像素值的複數顏色通道排列以及該卷積計算輸出的複數卷積結果的複數顏色通道排列中的一或多個。
- 一種執行卷積計算的方法,包括: 一卷積模組接收用於選擇矩陣模式與濾波器模式其中之一的模式選擇信號,其中該模式選擇信號是基於分析複數卷積特徵的複數結果生成而來,該等卷積特徵包括至少該矩陣模式與該濾波器模式之間的資源利用的比較,該卷積模組包括複數處理元件,每一處理元件包括一算術計算電路;回應於選擇該矩陣模式,執行自複數卷積計算轉換而來的複數矩陣乘法;以及回應於選擇該濾波器模式,執行該等卷積計算。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中還包括:由該等處理元件的第一二維陣列執行該矩陣模式中的該等矩陣乘法;以及由該等處理元件的第二二維陣列執行該濾波器模式中的該等卷積計算,其中該第二二維陣列包括與該第一二維陣列不同的複數處理元件。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中還包括:由混合二維陣列執行該矩陣模式中的該等矩陣乘法與該濾波器模式中的該等卷積計算,其中該混合二維陣列包括該等處理元件的相同集以用於該等矩陣乘法與該等卷積計算。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中還包括:由該等處理元件的第一一維陣列執行該矩陣模式中的該等 矩陣乘法;以及由該等處理元件的第二一維陣列執行該濾波器模式中的該等卷積計算,其中該第二一維陣列包括與該第一一維陣列不同的複數處理元件。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中還包括:由混合一維陣列執行該矩陣模式中的該等矩陣乘法與該濾波器模式中的該等卷積計算,其中該混合一維陣列包括該等處理元件的相同集以用於該等矩陣乘法與該等卷積計算。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中還包括:根據該模式選擇信號,將輸入圖像資料與複數濾波器權重調度到相應的該等處理元件中。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中該卷積計算包括卷積神經網路計算。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中該等結果包括該矩陣模式與該濾波器模式之間的功率性能比較。
- 如申請專利範圍第11項所述之執行卷積計算的方法,其中該等卷積特徵包括輸入圖像的維度、該卷積計算中所使用的濾波器的維度以及用於並行執行該卷積計算的該等處理元件的緯度。
- 如申請專利範圍第19項所述之執行卷積計算的方法,其中 該等卷積特徵還包括輸入濾波器計數、關於所述輸入圖像的複數像素值的複數濾波器權重的步幅大小、輸入資料批量尺寸、輸入到該卷積計算的該等濾波器權重與該等像素值的複數顏色通道排列以及該卷積計算輸出的複數卷積結果的複數顏色通道排列中的一或多個。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662436488P | 2016-12-20 | 2016-12-20 | |
US62/436,488 | 2016-12-20 | ||
US15/787,897 | 2017-10-19 | ||
US15/787,897 US10394929B2 (en) | 2016-12-20 | 2017-10-19 | Adaptive execution engine for convolution computing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201824096A true TW201824096A (zh) | 2018-07-01 |
TWI639119B TWI639119B (zh) | 2018-10-21 |
Family
ID=62561579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106144577A TWI639119B (zh) | 2016-12-20 | 2017-12-19 | 執行卷積計算的系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10394929B2 (zh) |
CN (1) | CN108205701B (zh) |
TW (1) | TWI639119B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10860918B2 (en) | 2018-08-21 | 2020-12-08 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
TWI768326B (zh) * | 2020-04-20 | 2022-06-21 | 國立陽明交通大學 | 卷積運算模組及方法以及其適用之卷積神經網路系統 |
US11423292B2 (en) | 2020-02-15 | 2022-08-23 | Industrial Technology Research Institute | Convolutional neural-network calculating apparatus and operation methods thereof |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190036863A1 (en) * | 2015-05-20 | 2019-01-31 | Ryan Bonham | Managing government messages |
CN108073550A (zh) * | 2016-11-14 | 2018-05-25 | 耐能股份有限公司 | 缓冲装置及卷积运算装置与方法 |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
US11562115B2 (en) | 2017-01-04 | 2023-01-24 | Stmicroelectronics S.R.L. | Configurable accelerator framework including a stream switch having a plurality of unidirectional stream links |
EP3388981B1 (en) * | 2017-04-13 | 2021-09-01 | Nxp B.V. | Convolutional processing system |
CN109213962B (zh) | 2017-07-07 | 2020-10-09 | 华为技术有限公司 | 运算加速器 |
KR102017997B1 (ko) * | 2018-01-16 | 2019-09-03 | 한국과학기술원 | 특징맵 압축을 이용한 이미지 처리 방법 및 장치 |
WO2019143027A1 (ko) | 2018-01-16 | 2019-07-25 | 한국과학기술원 | 이미지 파이프라인 처리 방법 및 장치 |
WO2019143026A1 (ko) | 2018-01-16 | 2019-07-25 | 한국과학기술원 | 특징맵 압축을 이용한 이미지 처리 방법 및 장치 |
US11966835B2 (en) | 2018-06-05 | 2024-04-23 | Nvidia Corp. | Deep neural network accelerator with fine-grained parallelism discovery |
CN108985450B (zh) * | 2018-06-28 | 2019-10-29 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
US10824943B2 (en) * | 2018-08-21 | 2020-11-03 | GM Global Technology Operations LLC | High precision low bit convolutional neural network |
CN109118011A (zh) * | 2018-08-28 | 2019-01-01 | 摩佰尔(天津)大数据科技有限公司 | 码头堆场的智能调度方法和系统 |
US11769040B2 (en) * | 2018-09-10 | 2023-09-26 | Nvidia Corp. | Scalable multi-die deep learning system |
CN110929855B (zh) * | 2018-09-20 | 2023-12-12 | 合肥君正科技有限公司 | 一种数据交互方法和装置 |
CN112970037B (zh) * | 2018-11-06 | 2024-02-02 | 创惟科技股份有限公司 | 用于实施神经网络应用的多芯片系统、适用于多芯片系统的数据处理方法、和非暂时性计算机可读介质 |
EP3654247A1 (en) | 2018-11-15 | 2020-05-20 | IMEC vzw | Convolution engine for neural networks |
TWI696961B (zh) * | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
US10922077B2 (en) * | 2018-12-29 | 2021-02-16 | Intel Corporation | Apparatuses, methods, and systems for stencil configuration and computation instructions |
US11321819B2 (en) * | 2019-01-07 | 2022-05-03 | Hcl Technologies Limited | System and method for performing a convolution operation |
US11138292B1 (en) * | 2019-05-16 | 2021-10-05 | Facebook, Inc. | Circuit and method for computing depthwise convolution |
US11108457B2 (en) * | 2019-12-05 | 2021-08-31 | Bae Systems Information And Electronic Systems Integration Inc. | Spatial energy rank detector and high-speed alarm |
US11593609B2 (en) | 2020-02-18 | 2023-02-28 | Stmicroelectronics S.R.L. | Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks |
US11531873B2 (en) | 2020-06-23 | 2022-12-20 | Stmicroelectronics S.R.L. | Convolution acceleration with embedded vector decompression |
US20220100699A1 (en) * | 2020-09-30 | 2022-03-31 | Beijing Tsingmicro Intelligent Technology Co., Ltd. | Computing array and processor having the same |
CN112614040B (zh) * | 2020-12-16 | 2021-09-21 | 上海壁仞智能科技有限公司 | 用于卷积计算的方法、计算设备和计算机可读存储介质 |
GB202319942D0 (en) * | 2021-01-04 | 2024-02-07 | Imagination Tech Ltd | Neural network comprising matrix multiplication |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5195050A (en) * | 1990-08-20 | 1993-03-16 | Eastman Kodak Company | Single chip, mode switchable, matrix multiplier and convolver suitable for color image processing |
IL127134A (en) * | 1996-03-04 | 2002-11-10 | Oren Semiconductor Ltd | Install DSP |
US6356146B1 (en) * | 1999-07-13 | 2002-03-12 | Pmc-Sierra, Inc. | Amplifier measurement and modeling processes for use in generating predistortion parameters |
US20010033287A1 (en) * | 2000-01-11 | 2001-10-25 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer which utilizes a window ID to specify pixel characteristics |
FR2842064B1 (fr) * | 2002-07-02 | 2004-12-03 | Thales Sa | Systeme de spatialisation de sources sonores a performances ameliorees |
CN1894703B (zh) | 2003-12-16 | 2011-04-20 | 佳能株式会社 | 模式识别方法和设备 |
CN1674480A (zh) * | 2004-03-25 | 2005-09-28 | 皇家飞利浦电子股份有限公司 | 卷积编码器及其编码方法 |
US7596282B2 (en) * | 2005-02-03 | 2009-09-29 | Siemens Medical Solutions Usa, Inc. | System and method for efficient feature estimation for medical images |
CN101553995B (zh) * | 2006-09-29 | 2012-07-25 | 联发科技股份有限公司 | 联合检测器的定点实现 |
US8121236B1 (en) * | 2007-10-12 | 2012-02-21 | Harris Corporation | Communications system using adaptive filter circuit using parallel adaptive filters |
US20120004893A1 (en) * | 2008-09-16 | 2012-01-05 | Quantum Leap Research, Inc. | Methods for Enabling a Scalable Transformation of Diverse Data into Hypotheses, Models and Dynamic Simulations to Drive the Discovery of New Knowledge |
CN102467658A (zh) * | 2010-11-19 | 2012-05-23 | 康佳集团股份有限公司 | 一种笑脸识别方法、装置及移动终端 |
CN102663428B (zh) * | 2012-03-29 | 2014-11-26 | 中国科学院上海光学精密机械研究所 | 神经网络模式识别系统和模式识别方法 |
US20160026912A1 (en) | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
CN104517122A (zh) * | 2014-12-12 | 2015-04-15 | 浙江大学 | 一种基于优化卷积架构的图像目标识别方法 |
US20160239706A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Convolution matrix multiply with callback for deep tiling for deep convolutional neural networks |
CN106160929A (zh) * | 2015-04-09 | 2016-11-23 | 北京三星通信技术研究有限公司 | 对uci进行编码、确定uci的传输功率的方法和设备 |
CN104915322B (zh) | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
CN105550749A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型网络拓扑结构的卷积神经网络的构造方法 |
CN105680825A (zh) * | 2016-02-16 | 2016-06-15 | 天津大学 | 数字滤波器解析设计法及其滤波器 |
CN105760859B (zh) * | 2016-03-22 | 2018-12-21 | 中国科学院自动化研究所 | 基于多任务卷积神经网络的网纹人脸图像识别方法及装置 |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
-
2017
- 2017-10-19 US US15/787,897 patent/US10394929B2/en active Active
- 2017-12-18 CN CN201711366904.6A patent/CN108205701B/zh active Active
- 2017-12-19 TW TW106144577A patent/TWI639119B/zh active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10860918B2 (en) | 2018-08-21 | 2020-12-08 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
US10896368B2 (en) | 2018-08-21 | 2021-01-19 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
TWI725509B (zh) * | 2018-08-21 | 2021-04-21 | 美商超捷公司 | 包括多重向量矩陣乘法陣列及共享組件之用於深度學習神經網路的類比神經記憶體系統 |
US11423292B2 (en) | 2020-02-15 | 2022-08-23 | Industrial Technology Research Institute | Convolutional neural-network calculating apparatus and operation methods thereof |
TWI768326B (zh) * | 2020-04-20 | 2022-06-21 | 國立陽明交通大學 | 卷積運算模組及方法以及其適用之卷積神經網路系統 |
Also Published As
Publication number | Publication date |
---|---|
TWI639119B (zh) | 2018-10-21 |
CN108205701A (zh) | 2018-06-26 |
US20180173676A1 (en) | 2018-06-21 |
CN108205701B (zh) | 2021-12-28 |
US10394929B2 (en) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI639119B (zh) | 執行卷積計算的系統及方法 | |
CN107578098B (zh) | 基于脉动阵列的神经网络处理器 | |
US11494582B2 (en) | Configurable neural network engine of tensor arrays and memory cells | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
TWI787262B (zh) | 用於執行類神經網路層之計算的方法、系統及非暫時性電腦可讀儲存媒體 | |
TWI811291B (zh) | 深度學習加速器及加快深度學習操作的方法 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
JP2018518730A (ja) | ニューラルネットワークプロセッサにおけるバッチ処理 | |
CN107085562B (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
WO2019135873A1 (en) | Systems and methods for hardware-based pooling | |
EP3674982A1 (en) | Hardware accelerator architecture for convolutional neural network | |
US11164032B2 (en) | Method of performing data processing operation | |
Motamedi et al. | Fast and energy-efficient CNN inference on IoT devices | |
Kala et al. | UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs | |
US10755169B2 (en) | Hybrid non-uniform convolution transform engine for deep learning applications | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN110716751B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN110930290B (zh) | 一种数据处理方法及装置 | |
CN110765413B (zh) | 矩阵求和结构及神经网络计算平台 | |
Shaydyuk et al. | FPGA implementation of MobileNeTv2 CNN model using semi-streaming architecture for low power inference applications | |
KR20220083820A (ko) | 뉴럴 네트워크 프로세서에서의 3차원 콘볼루션 | |
Shaydyuk et al. | Semi-streaming architecture: A new design paradigm for cnn implementation on fpgas | |
Chen et al. | Exploring the programmability for deep learning processors: from architecture to tensorization | |
CN220773595U (zh) | 可重配置处理电路以及处理核心 | |
US11132569B2 (en) | Hardware accelerator for integral image computation |