TWI717892B - 動態多組態cnn加速器架構與操作方法 - Google Patents
動態多組態cnn加速器架構與操作方法 Download PDFInfo
- Publication number
- TWI717892B TWI717892B TW108140517A TW108140517A TWI717892B TW I717892 B TWI717892 B TW I717892B TW 108140517 A TW108140517 A TW 108140517A TW 108140517 A TW108140517 A TW 108140517A TW I717892 B TWI717892 B TW I717892B
- Authority
- TW
- Taiwan
- Prior art keywords
- sub
- accelerator
- neural network
- convolutional neural
- branch
- 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/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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, 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/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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4046—Scaling the whole image or part thereof using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
Abstract
一種卷積神經網路運算 (CNN) 加速器,該加速器至少包括:第一子加速器和第二子加速器,該第一子加速器包括:I個卷積運算處理器,J個純量運算處理器和K個非線性激活運算處理器;該第二子加速器包括:X個卷積運算處理器,Y個第一純量運算處理器和Z個非線性激活運算處理器;上述I~K,X~Z均大於0;且「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足。一待處理的CNN運算至少包含第一部分CNN運算和第二部分CNN運算,該第一子加速器和該第二子加速器分別執行第一部分和第二部分CNN運算。
Description
本發明是有關於一種CNN加速器,且特別是有關於一種由複數個「處理器結構相同」,且「核心數量不同」子加速器所構成的CNN加速器。
CNN演算法或模型目前已經成為電腦視覺重要的發展基礎;而這些CNN模型的運算,基本上都包含大量的卷積運算量和傳輸資料量,因此需耗費較長的運算時間;尤其CNN模型運算同時具備高平行度和高相依性,必需去探討如何改善加速器硬體設計以加速執行上述CNN模型運算。
首先,CNN運算的中間暫態輸出資料量龐大,但重複利用率低;如此需要大量資料量進出計算裝置,往往會造成資料使用頻寬的佔用。如表一所示,因為受限於記憶體頻寬有限,依據習知設計架構,單純持續提升卷積運算核心數目,所能達到提升加速器運算速度的增加量逐漸飽和。例如:運算核心數量由1024核增加到2048核,硬體運算能力的使用率由20%下降到10%,而運算處理圖框速度仍是維持10fps (每秒圖框數 frame per second)。
表一
較少核心 較多核心 | ||||||
核心數量 | 64 | 256 | 512 | 1024 | 2048 | |
參考功耗 | 1 | 1.3 | 2.2 | 4 | 5.2 | |
記憶體頻寬有限狀態下 memory BW (1GB/s) | ||||||
使用率與速度 | Inception V4 | 96%, 3fps | 61%, 5fps | 38%, 9fps | 20%, 10fps | 10%, 10fps |
Mobilenet V2 | 48%, 43fps | 13%, 38fps | 6.5%, 46fps | 3.2%, 46fps | 1.6%, 46fps | |
記憶體頻寬較充裕狀態下memory BW (8GB/s) | ||||||
使用率與速度 | Inception V4 | 99%, 3fps | 97%, 12fps | 95%, 23fps | 89%, 44fps | 66%, 65fps |
Mobilenet V2 | 66%, 59fps | 53%, 190fps | 37%, 265fps | 21%, 296fps | 12%, 344fps |
其次,不同的CNN模型會使用到多種不同長寬的卷積核心,例如可能包含1x7、7x1、1x3、3x1、3x3、1x1等,與逐漸單調變深的通道數;例如mobilenet模型同時具備很深(64~512)的通道和很淺(=1)的通道數量。如下表二所示:即使在相同核心數加速器架構下,若操作在不同模式,也有不同的使用效率與速度;因此如何去細切網路模型,根據硬體核心數量和操作模式,安排最佳化流程,來提升加速器使用效率,改善加速器運算速度變成一項重要課題。
表二
模式1: 通用CNN計算 Generic CNN Calculation | |||||
層 | 資料維度 | 權重大小 | 運算量 | 256 核心 | |
週期數 | 使用率 | ||||
CNN 層 A | 448x448x3 | 0.4 KB | 193 M | 4.39 M | 8.60% |
CNN 層 B | 56x56x64 | 72 KB | 465 M | 1.04 M | 87% |
CNN 層 C | 28x28x128 | 288 KB | 464 M | 0.97 M | 93% |
CNN 層 D | 14x14x256 | 1.1 MB | 463 M | 0.95 M | 95% |
CNN 層 E | 7x7x512 | 4.5 MB | 463 M | 2.41 M | 38% |
模式2: 影像模式 CNN計算 Image Mode CNN Calculation | |||||
層 | 資料維度 | 權重大小 | 運算量 | 256 核心 | |
週期數 | 使用率 | ||||
CNN 層 G | 448x448x3 | 0.4 KB | 193 M | 0.9 M | 42% |
模式3: 深度可分離模式 CNN 計算 DW Separable Mode CNN Calculation | |||||
層 | 資料維度 | 權重大小 | 運算量 | 256 核心 | |
週期數 | 使用率 | ||||
DW CNN 層 H | 56x56x128 | 1.1 KB | 3.6 M | 113 K | 13% |
PW CNN 層 I | 56x56x128 | 16 KB | 51.4 M | 200 K | 98% |
DW= depth-wise 深度改變; PW= point-wise 逐點 |
本發明係有關於一種CNN加速器,且特別是有關於一種由複數個「處理器結構相同」且「核心數量不同」子加速器所構成的CNN加速器。該加速器係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含第一子部分運算和第二子部分運算。該卷積神經網路運算加速器至少兩個子加速器,該至少兩個子加速器至少包括:第一子加速器和第二子加速器。該第一子加速器包括:I個第一卷積運算處理器,J個第一純量運算處理器,和K個第一非線性激活運算處理器。該第二子加速器包括:X個第二卷積運算處理器, Y個第二純量運算處理器,和 Z個第二非線性激活運算處理器。本案所謂子加速器「處理器結構相同」係指:每個子加速器內部都有卷積運算處理器,純量運算處理器和非線性激活運算處理器,上述I~K,X~Z 均為大於0的自然數,如此每個子加速器單獨就可以執行卷積神經網路運算,減少與外部記憶體傳輸資料需求,降低記憶體傳輸資料頻寬需求。本案所謂子加速器「核心數量不同」係指:該第一子加速器和該第二子加速器間具有一「不同運算核心數量關係」,該「不同運算核心數量關係」指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足。
根據本發明之一實施例,該至少兩個子加速器更包含一第三子加速器,該第三子加速器包括:R個第一卷積運算處理器,S個第一純量運算處理器,和T個第一非線性激活運算處理器;上述R~T均為大於0的自然數。該第一子加速器和該第三子加速器間具有一「不同運算核心數量關係」,該「不同運算核心數量關係」指「I異於R」,「J異於S」和「K異於T」三關係式至少其中之一滿足。該複數個子部分運算更包含一第三部分卷積神經網路運算,其中第三子加速器獨立執行該第三部分卷積神經網路運算。
根據本發明之一實施例,其中該純量運算處理器係用來處理一純量運算,該純量運算係選自於由加減乘除、批量歸一化(batch normalization)、量化(quantization)、偏差化(Bias)和數值縮放(scale)所構成的群組。
根據本發明之一實施例,其中該非線性激活運算處理器係用來處理一非線性激活運算,該非線性激活運算係選自於由線性整流函數(Rectified Linear Unit, ReLU)、 Sigmoid函數和Tanh函數運算所構成的群組。
根據本發明之一實施例,其中該卷積神經網路運算包含至少T層運算,該第一子部分運算包含該T層運算中的前M層運算,該第二子部分運算包含該T層運算中的後N層運算。該第一子加速器執行該前M層運算後結果輸出一中間結果給該第二子加速器,該第二子加速器再依據該一中間結果進行該後N層運算。
根據本發明之一實施例,其中該第一子加速器執行該第一子部分運算耗時一第一時段T1,該第二子加速器執行該第二子部分運算耗時一第二時段T2,該第一時段T1較佳可實質相等於該第二時段T2,但實務上,該第一時段T1可能介於該第二時段T2的80%~120%間。
根據本發明之一實施例,其中該卷積神經網路運算包含一主幹運算和一第一分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算包含該第一分支運算,該第一子加速器執行該主幹運算,該第二子加速器執行該第一分支運算。當該卷積神經網路運算結束該主幹運算欲執行該第一分支運算時,該第一子加速器進入第一省電模式,且該第二子加速器脫離第二省電模式;稍後當該卷積神經網路運算結束該第一分支運算而執行該主幹運算時,該第一子加速器脫離第一省電模式,且該第二子加速器進入第二省電模式。該卷積神經網路運算係為一動態分支網路運算,該主幹運算可能為一主要影像辨識,係用來辨識一較頻繁出現的主要工廠物件;而該第一分支運算係為一情境影像辨識,係用來辨識一出現機率較低的客製化物件。另外該主幹運算例如可能為一撞擊聲音辨識,而該分支運算為進一步辨識聲音來源分析。
根據本發明之一實施例,其中該卷積神經網路運算包含一主幹運算,一第一分支運算和一第二分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算係選擇性地包含該第一分支運算和該第二分支運算二者其中之一,該第一子加速器執行該主幹運算,該第二子加速器選擇性地執行該第一分支運算和該第二分支運算二者其中之一;當該卷積神經網路運算欲執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算欲執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。其中該卷積神經網路運算可能為一動態樹狀網路運算,該第一分支運算可能為一路人行為辨識,該第二分支運算可能為一車輛行為辨識。
根據本發明之另一方面,提出一操作方法,適用於一卷積神經網路運算 (CNN) 加速器,該卷積神經網路運算加速器係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含一第一子部分運算和一第二子部分運算,該卷積神經網路運算加速器包括至少兩個子加速器,該至少兩個子加速器包含:一第一子加速器和一第二子加速器,該第一子加速器包括: I個第一卷積運算處理器,J個第一純量運算處理器和K個第一非線性激活運算處理器;該第二子加速器包括:X個第二卷積運算處理器,Y個第二純量運算處理器和Z個第二非線性激活運算處理器,該第一子加速器和該第二子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足,該操作方法包括步驟:分配該第一子部分運算給該第一子加速器執行,分配該第二子部分運算給該第二子加速器執行。當該卷積神經網路運算結束該第一子部分運算時,該第一子加速器進入一第一省電模式,以及當該卷積神經網路運算結束該第二子部分運算而執行該第一子部分運算時,該第一子加速器脫離該第一省電模式。
根據本發明之一實施例,於該操作方法中,其中該第一子部分運算包含一主幹運算,該第二子部分運算包含一第一分支運算,該操作方法更包括步驟:當該卷積神經網路運算結束該第一分支運算而執行該主幹運算時,該第二子加速器進入一第二省電模式,當該卷積神經網路運算結束該主幹運算時而執行該第一分支運算時,該第二子加速器脫離該第二省電模式。
根據本發明之一實施例,於該操作方法中,其中該第一子部分運算包含一主幹運算,該第二子部分運算係選擇性地包含一第一分支運算和一第二分支運算二者其中之一;該操作方法更包括步驟:當該卷積神經網路運算結束該主幹運算而執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算結束該主幹運算而執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。
根據本發明之另一方面,提出一種將一卷積神經網路運算輸入給一卷積神經網路運算 (CNN) 加速器的分配方法,該卷積神經網路運算包含至少T層運算,該卷積神經網路運算加速器包括:一第一子加速器,該第一子加速器包括:I個第一卷積運算處理器,J個第一純量運算處理器,和K個第一非線性激活運算處理器;一第二子加速器,該第二子加速器包括:X個第二卷積運算處理器,Y個第二純量運算處理器 ,和Z個第二非線性激活運算處理器,上述I~K,X~Z均為大於0的自然數;其中「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足,該分配方法包含步驟:
依據一第一運算分配方式:該第一子加速器執行前M層運算後結果輸出一第一中間結果給該第二子加速器,該第二子加速器再依據該第一中間結果進行後N層運算,該第一子加速器執行該前M層運算耗時一第一時段T1,該第二子加速器執行該後N層運算耗時一第二時段T2。依據一第二運算分配方式:該第一子加速器執行前A層運算後結果輸出一第二中間結果給該第二子加速器,該第二子加速器再依據該第二中間結果進行該後B層運算,A+B=M+N,該第一子加速器執行該前A層運算耗時一第三時段T3,該第二子加速器執行該後B層運算耗時一第四時段T4。比較 (該第一時段T1/該第二時段T2) 比例和 (該第三時段T3/該第四時段T4) 比例;當(該第一時段T1/該第二時段T2) 比例較為接近1時,該第一子加速器和該第二子加速器依據該第一運算分配方式進行運算;和當(該第三時段T3/該第四時段T4) 比例較為接近1時,該第一子加速器和該第二子加速器依據該第二運算分配方式進行運算。
根據本發明之另一方面,提出一種一種將一卷積神經網路運算輸入給一卷積神經網路運算 (CNN) 加速器的分配方法,該卷積神經網路運算包含至少T層運算,該卷積神經網路運算加速器包括:一第一子加速器,該第一子加速器包括:I個第一卷積運算處理器,J個第一純量運算處理器,和K個第一非線性激活運算處理器;一第二子加速器,該第二子加速器包括:X個第二卷積運算處理器,Y個第二純量運算處理器,和Z個第二非線性激活運算處理器,上述I~K,X~Z均為大於0的自然數;其中「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足,該分配方法包含步驟:依據一第一運算分配方式:該第一子加速器執行前M層運算後結果輸出一第一中間結果給該第二子加速器,該第二子加速器再依據該第一中間結果進行後N層運算,該第一子加速器執行該前M層運算耗能一第一電能E1,該第二子加速器執行該後N層運算耗能一第二電能E2。依據一第二運算分配方式:使該第一子加速器執行前A層運算後結果輸出一第二中間結果給該第二子加速器,該第二子加速器再依據該第二中間結果進行該後B層運算,A+B= M+N,該第一子加速器執行該前A層運算耗能一第三電能E3,該第二子加速器執行該後B層運算耗能一第四電能E4。比較 (該第一電能E1+該第二電能E2) 總和與 (該第三電能E3+該第四電能E4) 總和;當(該第一電能E1+該第二電能E2) 總和較低時,該第一子加速器和該第二子加速器依據該第一運算分配方式進行運算;當(該第三電能E3+該第四電能E4) 總和較低時,該第一子加速器和該第二子加速器依據該第二運算分配方式進行運算。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
第1A圖繪示CNN加速器12硬體架構方塊圖,CNN加速器12係接受來自動態工作排程單元10的資料,並搭配外部共享記憶體20進行運算;CNN加速器12內部係具有至少兩個子加速器,第1圖實施例以包含三個CNN運算子加速器說明(第一CNN運算子加速器14,第二CNN運算子加速器16,第三CNN運算子加速器18),但CNN運算子加速器數量不以此為限。每個子加速器均有各別的專屬記憶體。
第1B圖繪示各個CNN運算子加速器內部硬體架構,第一CNN運算子加速器14,第二子加速器16和第三子加速器18每個均有相同處理器結構,亦即三個子加速器各別均包含這三種硬體運算處理器:卷積運算處理器14A,純量運算處理器14B和非線性激活運算處理器14C。
但三個子加速器各別具有不同數量的運算處理器。
例如:第一子加速器14包括:I個第一卷積運算處理器;J個第一純量運算處理器;和K個第一非線性激活運算處理器;第二子加速器16則包括:X個第二卷積運算處理器,Y個第二純量運算處理器,和Z個第二非線性激活運算處理器;而第三子加速器18則包括:R個第一卷積運算處理器,S個第一純量運算處理器,和T個第一非線性激活運算處理器,上述I~K,R~T,X~Z均為大於0的自然數。所謂第一子加速器14和第二子加速器16 間具有不同數量運算核心,係指且「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足。類似地,所謂第一子加速器14和該第三子加速器18間具有不同數量運算核心,係指「A異於R」,「B異於S」和「C異於T」三關係式至少其中之一滿足。
如第1圖繪示,本發明中第一子加速器14有最多運算核心(more cores),第二子加速器16運算核心數量其次(less cores),而第三子加速器18的運算核心數量最低(much less cores)。
其中該純量運算處理器14B係用來處理純量運算,該純量運算係選自於由加減乘除、批量歸一化(batch normalization)、量化(quantization)、偏差化(Bias)和數值縮放(scale)所構成的運算群組。其中該非線性激活運算處理器14C係用來處理一非線性激活運算,該非線性激活運算係選自於由線性整流函數(Rectified Linear Unit, ReLU)、 Sigmoid函數和Tanh函數運算所構成的運算群組。
第一實施例
第2圖繪示依照本發明第一實施例將不同層運算分配到四個不同子加速器的平行處理示意圖,第一子加速器14有64個運算核心,第二子加速器16有256個運算核心,第三子加速器18有256個運算核心,第四子加速器19有64個運算核心。
第2圖亦繪示,其中該卷積神經網路運算包含9層運算,依據一第一運算分配方式,將該9層卷積神經網路運算切割成為:第一部分包含第1層共一層運算,第二部分運算包含第2至4層共三層運算,該第三部分運算包含第5至7層共三層運算,第四部分運算包含第8至9層共兩層運算。該第一子加速器14先執行該第一部分運算(第1層運算)後輸出第一中間結果R1;該第二子加速器16接收該第一中間結果R1,接續執行該第二部分運算(第2至第4層運算)後結果輸出一第二中間結果R2,該第三子加速器18接收該第二中間結果R2,接續執行該第二部分運算(第5至第7層運算),該第四子加速器19接收該第三中間結果R3,接續執行該第四部分運算(第8至9層運算)。
從時序圖來看,(1)在T1時段內,只有第一子加速器14執行第一個卷積的第1層運算,第二子加速器16、第三子加速器18和第四子加速器19都在等待;(2)在T2時段內,第一子加速器14執行第二個卷積的第1層運算,第二子加速器16執行第一個卷積的第2至4層運算,第三子加速器18和第四子加速器19仍在等待;(3)在T3時段內,第一子加速器14執行第三個卷積的第1層運算,第二子加速器16執行第二個卷積的第2至4層運算,第三子加速器18執行第一個卷積的第5至7層運算;(4) 在T4時段內,第一子加速器14執行第四個卷積的第1層運算,第二子加速器16執行第三個卷積的第2至4層運算,第三子加速器18執行第二個卷積的第5至7層運算,第四子加速器19執行第一個卷積的第8至9層運算。從T5時段開始,每一個單位時段 T 都會輸出一個執行9層卷積運算結果。而從T4時段開始,多階段管線式 (pipeline)運算架構中的四個子加速器開始同時運算,達到平行處理的效果。
上述單位時段 T 基本上取決於四個子加速器中執行所分配運算所需要的最長時間;例如:假設第一子加速器14執行卷積的第1層運算,第二子加速器16執行卷積的第2至4層運算,第三子加速器18執行卷積的第5至7層運算,第四子加速器19執行卷積的第8至9層運算分別花費時間為=3.61 nsec,3.61 nsec,3.21 nsec 和 4.51 nsec,則單位時段 T 會被設定為大於4.51 nsec。
若著重在提升此多階段管線架構的運算效能,各子加速器執行對應分配層次運算所需的最長時間要愈短愈好,以縮短單位時段 T的長度。於設計規劃階段,可嘗試一第二運算分配方式。例如:假設依據該第二運算分配方式下,第一子加速器14執行卷積的第1至2層運算,第二子加速器16執行卷積的第3至5層運算,第三子加速器18執行卷積的第6至8層運算,第四子加速器19執行卷積的第9層運算各別花費時間為=4.7 nsec,3.7 nsec,3.31 nsec 和 4.0 nsec,其中最長者超過4.51 nsec。如此顯示第2圖所示的第一運算分配方式,能達成較短的單位時段 T,該多階段管線式運算效率更高;因此第一運算分配方式優於上述第二運算分配方式。於設計規劃階段,可採用「最長時段-最短時段差值越小」,或「最長時段/最短時段比例越接近1」作為選擇分配方式依據,以達成較短的單位時段 T。該第一時段T1(最長時段) 較佳可實質相等於該第二時段T2(最短時段),但實務上,該第一時段T1可能介於該第二時段T2的80%~120%間。
若著重在降低此多階段管線式架構的運算能量消耗,各子加速器執行對應分配層次運算所需消耗電能總和要越低愈好。於設計規劃階段,可先嘗試第2圖所示的第一運算分配方式,模擬得知第一子加速器14執行卷積的第1層運算,第二子加速器16執行卷積的第2至4層運算,第三子加速器18執行卷積的第5至7層運算,第四子加速器19執行卷積的第8至9層運算分別需消耗電能E1,E2,E3和E4。然後嘗試一第三運算分配方式,模擬得知第一子加速器14執行卷積的第1至2層運算,第二子加速器16執行卷積的第3至5層運算,第三子加速器18執行卷積的第6至8層運算,第四子加速器19執行卷積的第9層運算分別需消耗電能E5,E6,E7和E8。當消耗電能E1,E2,E3和E4的總和較低時,依據該第一運算分配方式進行運算;當消耗電能E5,E6,E7和E8的總和較低時,則依據該第二運算分配方式進行運算。於設計規劃階段,可採用「消耗電能總和較低」作為選擇運算分配方式依據。
以上係以四個子加速器實施例來進行說明,當子加速器數量不同時,仍可遵照此「最長時段-最短時段差值越小」,「最長時段/最短時段比例越接近1」,或「消耗電能總和較低」作為選擇運算分配到不同子加速器方式依據。
第二實施例
第3圖繪示依照本發明第二實施例,CNN加速器具有三個子加速器14,16和18,而動態工作排程單元10將主幹和分支運算分配到不同子加速器處理示意圖,其中該卷積神經網路運算包含主幹運算34,第一分支運算36和第二分支運算38。由第一子加速器14負責處理主幹(trunk)網路運算34,由第二子加速器16和第三子加速器18分別負責處理第一分支(branch)運算36和第二分支運算38。
為了節省整個加速器的電能消耗,當執行步驟37時,檢查點會確認是否應該結束該主幹運算34而轉往分支運算36或38其中之一。如此當該卷積神經網路運算結束該主幹運算34而欲執行該第一分支運算36時,該第一子加速器14進入第一省電模式,步驟39觸發啟動該第二子加速器16脫離第二省電模式。當該卷積神經網路運算結束該第一分支運算36而執行該主幹運算34時,該第一子加速器14脫離該第一省電模式,換成該第二子加速器16進入第二省電模式,如此以達成動態省電功效。類似地,當該卷積神經網路運算在該主幹運算34和該第二分支運算38間切換時,第三子加速器18也會類似選擇性地脫離與進入第三省電模式。
本發明第二實施例主要係應用在動態分支網路運算場景,待辨識的影像可分類為主要類別與次要類別;主幹運算34係為一發生頻率較高或需較長時間持續運作的主要影像辨識,而該第一分支運算36係為一發生頻率較低或偶而短暫時間運作的情境影像辨識;兩者共用主幹神經網路運算34前端特徵圖。例如該主要影像辨識係要辨識一主要工廠物件,而該情境影像辨識係要辨識一客製化物件。另外該主幹運算例如可能為一撞擊聲音辨識,而該分支運送為進一步辨識聲音來源分析。
第三實施例
第4圖繪示依照本發明第三實施例,CNN加速器具有兩個子加速器14和16,而動態工作排程單元10將主幹和分支運算分配到不同子加速器處理示意圖,其中該卷積神經網路運算包含主幹運算44,第一分支運算46和第二分支運算48。第一子加速器14負責執行該主幹運算44,而因為只剩下第二子加速器16未被佔用,故第二子加速器16選擇性地執行該第一分支運算46和該第二分支運算48二者其中之一。當該卷積神經網路運算欲執行該第一分支運算46時,該第二子加速器16載入該第一分支運算46對應的程式碼;當該卷積神經網路運算欲執行該第二分支運算48時,該第二子加速器16載入該第二分支運算48對應的程式碼。
為了節省整個加速器的電能消耗,當執行步驟47時,檢查點會確認是否應該結束該主幹運算44而轉往分支運算46或48其中之一。如此當該卷積神經網路運算結束該主幹運算44而欲執行該第一分支運算46時,該第一子加速器14進入第一省電模式,步驟49觸發啟動該第二子加速器16脫離第二省電模式。當該卷積神經網路運算結束該第一分支運算46而執行該主幹運算44時,該第一子加速器14脫離該第一省電模式,換成該第二子加速器16進入第二省電模式,如此以達成動態省電功效。類似地,當該卷積神經網路運算結束該主幹運算44而執行該第二分支運算48間時,步驟51觸發啟動該第二子加速器16脫離第二省電模式。
本發明第二實施例主要係應用一事件觸發型態的動態樹狀網路運算,亦即主幹神經網路44負責物件偵測,將所偵測到新出現的物件粗分成AB兩種;若發現有A物件出現,則由第一分支神經網路運算46做A物件的精細辨識;若發現有B物件出現,則由第二分支神經網路運算48做B物件的精細辨識。具體實施例可能是:主幹神經網路運算44作為自動駕駛的人車偵測。當偵測到路邊有行人出現時,則該第二子加速器16載入第一分支神經網路運算46對應的程式碼,如此進行與人員相關辨識的分支運算。當偵測到鄰近車輛的時候,則該第二子加速器16載入第二分支神經網路運算48對應的程式碼,如此由第二分支神經網路運算48進行車輛相關辨識的分支運算。若主幹神經網路運算44持續未偵測到人員或車輛出現,則持續執行主幹神經網路44,無需觸發進行第一分支運算46和第二分支運算48。
請參見下表3與表4,係比較 (1)本發明第2圖所示第一實施例:一動態多組態CNN加速器實施例,該動態多組態CNN加速器具有4個「處理器結構相同,核心數量不同」子加速器,包含:兩個 64核的子加速器,與兩個256核的子加速器,採用管線式平行處理架構,運算時脈 600MHz,記憶體傳輸頻寬總共8GB;4個子加速器各別獨立執行部分卷積神經網路運算,但4個子加速器4個階段管線式平行處理後輸出一完整卷積神經網路運算結果;和(2)習知技術:由單個 2048核心CNN加速器,在相同運算時脈 600MHz,和相同記憶體傳輸頻寬8GB條件下,單獨執行相同完整卷積神經網路運算,比較(1)(2)兩種CNN加速器架構所需花費的運算時間和耗能的比較。
由表3得知:習知單個 2048核心加速器每隔4.7nsec可輸出一筆完整卷積神經網路運算結果,本發明4個子加速器CNN加速器架構每隔4.51nsec可輸出一筆完整卷積神經網路運算結果。由表4得知:習知單個 2048核心加速器運算需耗費420mW電能,本發明4個子加速器CNN加速器架構運算需耗費370mW電能。如此具體顯示本發明的由至少兩個子加速器所構成的動態多組態CNN加速器架構,在運算時間和耗能兩方面皆優於習知單個2048核CNN加速器架構。
表 3
表 4
CNN 卷積模型 | 週期 of 2048-Core | Cycle of 64-Core 記憶體頻寬 2 GB/s | Cycle of 256-Core 記憶體頻寬 1 GB/s | Cycle of 256-Core 記憶體頻寬 1 GB/s | Cycle of 64-Core 記憶體頻寬 4 GB/s |
卷積1層CONV1 | 1.81 | 3.61 | |||
卷積2層CONV2 | 0.45 | 1.81 | |||
卷積3層CONV3 | 0.23 | 0.90 | |||
卷積4層CONV4 | 0.11 | 0.90 | |||
卷積5層CONV5 | 0.11 | 0.90 | |||
卷積6層CONV6 | 0.11 | 0.90 | |||
卷積7層CONV7 | 0.35 | 1.40 | |||
卷積8層CONV8 | 0.18 | 1.81 | |||
卷積9層CONV9 | 1.35 | 2.70 | |||
加總 | 4.70 | 3.61 | 3.61 | 3.21 | 4.51 |
單個2048核 加速器 | 雙64和雙256 共 640核 | |
頻率 | 600MHz | 皆為 600MHz |
記憶體頻寬 | 8 GB/s | 分別為1,1,2,4 GB/s 加總為8GB/s |
內存記憶體 | 512 KB | 512 KB (各為128KB) |
運算時脈數 | 4.7 百萬 | 4.5百萬 |
模擬功耗 | 約 420 mW | 約 370 mW |
節電功能 | 全關或全開 Coarse grained | 可動態分別開關節電 Fine grained |
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:動態工作排程單元
12:CNN加速器
14:CNN運算子加速器A
14A:第一卷積運算處理器
14B:第一純量運算處理器
14C:第一非線性激活運算處理器
16:CNN運算子加速器B
18:CNN運算子加速器C
20:共享記憶體
34,44:主幹運算
36,46:第一分支運算
38,48:第二分支運算
第1A圖繪示CNN加速器硬體架構方塊圖。
第1B圖繪示CNN運算子加速器內部硬體架構方塊圖。
第2圖繪示依照本發明第一實施例將不同層運算分配到不同子加速器進行管線架構平行處理示意圖。
第3圖繪示依照本發明第二實施例將主幹和分支運算分配到不同子加速器處理示意圖。
第4圖繪示依照本發明第三實施例將主幹和分支運算分配到不同子加速器處理示意圖。
10:動態工作排程單元
12:CNN運算加速器
14:CNN運算子加速器A
16:CNN運算子加速器B
18:CNN運算子加速器C
20:共享記憶體
Claims (13)
- 一卷積神經網路運算 (CNN) 加速器,係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含一第一子部分運算和一第二子部分運算,該卷積神經網路運算加速器包括: 至少兩個子加速器,該至少兩個子加速器包含: 一第一子加速器,該第一子加速器包括: I個第一卷積運算處理器; J個第一純量運算處理器;和 K個第一非線性激活運算處理器; 一第二子加速器,該第二子加速器包括: X個第二卷積運算處理器; Y個第二純量運算處理器;和 Z個第二非線性激活運算處理器,上述I,J,K,X,Y,Z均大於0; 其中該第一子加速器獨立執行該第一子部分運算; 其中該第二子加速器獨立執行該第二子部分運算; 其中該第一子加速器和該第二子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該複數個子部分運算更包含一第三部分卷積神經網路運算,該至少兩個子加速器更包含一第三子加速器,該第三子加速器包括: R個第一卷積運算處理器; S個第一純量運算處理器;和 T個第一非線性激活運算處理器,上述R~T均大於0; 其中該第三子加速器獨立執行該第三部分卷積神經網路運算; 其中該第一子加速器和該第三子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於R」,「J異於S」和「K異於T」三關係式至少其中之一滿足。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該純量運算處理器係用來處理一純量運算,該純量運算係選自於由加減乘除、批量歸一化(batch normalization)、量化(quantization)、偏差化(Bias)和數值縮放(scale)所構成的群組。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該非線性激活運算處理器係用來處理一非線性激活運算,該非線性激活運算係選自於由線性整流函數(Rectified Linear Unit, ReLU)、 Sigmoid函數和Tanh函數運算所構成的群組。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含至少T層運算,該第一子部分運算包含該T層運算中的前M層運算,該第二子部分運算包含該T層運算中的後N層運算,該第一子加速器執行該前M層運算後結果輸出一中間結果給該第二子加速器,該第二子加速器再依據該一中間結果進行該後N層運算。
- 如申請專利範圍第5項所述之卷積神經網路運算加速器,其中該第一子加速器執行該第一子部分運算耗時一第一時段T1,該第二子加速器執行該第二子部分運算耗時一第二時段T2,該第一時段T1實質相等於該第二時段T2。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含一主幹運算和一第一分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算包含該第一分支運算,該第一子加速器執行該主幹運算,該第二子加速器執行該第一分支運算。
- 如申請專利範圍第7項所述之卷積神經網路運算加速器,其中當該卷積神經網路運算結束該主幹運算後,該第一子加速器進入一第一省電模式,當該卷積神經網路運算執行該主幹運算時,該第一子加速器脫離該第一省電模式。
- 如申請專利範圍第7項所述之卷積神經網路運算加速器,其中當該卷積神經網路運算執行該主幹運算時,該第二子加速器進入一第二省電模式,當該卷積神經網路運算結束該主幹運算而執行該第一分支運算時,該第二子加速器脫離該第二省電模式。
- 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含一主幹運算,一第一分支運算和一第二分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算係選擇性地包含該第一分支運算和該第二分支運算二者其中之一,該第一子加速器執行該主幹運算,該第二子加速器選擇性地執行該第一分支運算和該第二分支運算二者其中之一;當該卷積神經網路運算欲執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算欲執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。
- 一操作方法,適用於一卷積神經網路運算 (CNN) 加速器,該卷積神經網路運算加速器係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含一第一子部分運算和一第二子部分運算,該卷積神經網路運算加速器包括至少兩個子加速器,該至少兩個子加速器包含:一第一子加速器和一第二子加速器,該第一子加速器包括: I個第一卷積運算處理器,J個第一純量運算處理器和K個第一非線性激活運算處理器;該第二子加速器包括:X個第二卷積運算處理器,Y個第二純量運算處理器和Z個第二非線性激活運算處理器,該第一子加速器和該第二子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足,該操作方法包括步驟: 該第一子加速器執行該第一子部分運算; 該第二子加速器執行該第二子部分運算; 當該卷積神經網路運算結束該第一子部分運算時,該第一子加速器進入一第一省電模式,以及 當該卷積神經網路運算執行該第一子部分運算時,該第一子加速器脫離該第一省電模式。
- 如申請專利範圍第11項所述之操作方法,其中該第一子部分運算包含一主幹運算,該第二子部分運算包含一第一分支運算,該操作方法更包括步驟:當該卷積神經網路運算結束該第一分支運算而執行該主幹運算時,該第二子加速器進入一第二省電模式,當該卷積神經網路運算結束該主幹運算時而執行該第一分支運算時,該第二子加速器脫離該第二省電模式。
- 如申請專利範圍第11項所述之操作方法,其中該第一子部分運算包含一主幹運算,該第二子部分運算係選擇性地包含一第一分支運算和一第二分支運算二者其中之一;該操作方法更包括步驟:當該卷積神經網路運算結束該主幹運算而執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算結束該主幹運算而執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140517A TWI717892B (zh) | 2019-11-07 | 2019-11-07 | 動態多組態cnn加速器架構與操作方法 |
CN201911179343.8A CN112784974A (zh) | 2019-11-07 | 2019-11-27 | 动态多组态cnn加速器架构与操作方法 |
US16/731,695 US11645365B2 (en) | 2019-11-07 | 2019-12-31 | Dynamic multi-mode CNN accelerator and operating methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140517A TWI717892B (zh) | 2019-11-07 | 2019-11-07 | 動態多組態cnn加速器架構與操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI717892B true TWI717892B (zh) | 2021-02-01 |
TW202119292A TW202119292A (zh) | 2021-05-16 |
Family
ID=75745683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140517A TWI717892B (zh) | 2019-11-07 | 2019-11-07 | 動態多組態cnn加速器架構與操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11645365B2 (zh) |
CN (1) | CN112784974A (zh) |
TW (1) | TWI717892B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687376B2 (en) * | 2020-06-12 | 2023-06-27 | Baidu Usa Llc | Method for data protection in a data processing cluster with dynamic partition |
FR3128552A1 (fr) * | 2021-10-25 | 2023-04-28 | Stmicroelectronics (Rousset) Sas | Procédé de détection d’événements ou d’éléments dans des signaux physiques par la mise en œuvre d’un réseau de neurones artificiel |
US20230185740A1 (en) * | 2021-12-10 | 2023-06-15 | Samsung Electronics Co., Ltd. | Low-latency input data staging to execute kernels |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103299A1 (en) * | 2015-10-07 | 2017-04-13 | Altera Corporation | Method and Apparatus for Implementing Layers on a Convolutional Neural Network Accelerator |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103606B2 (en) | 2006-12-08 | 2012-01-24 | Medhat Moussa | Architecture, system and method for artificial neural network implementation |
US8442927B2 (en) | 2009-07-30 | 2013-05-14 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
US10846591B2 (en) | 2015-12-29 | 2020-11-24 | Synopsys, Inc. | Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks |
CN105892989B (zh) * | 2016-03-28 | 2017-04-12 | 中国科学院计算技术研究所 | 一种神经网络加速器及其运算方法 |
US11353868B2 (en) * | 2017-04-24 | 2022-06-07 | Intel Corporation | Barriers and synchronization for machine learning at autonomous machines |
US10186011B2 (en) | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US20190102671A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Inner product convolutional neural network accelerator |
US20190205736A1 (en) | 2017-12-29 | 2019-07-04 | Intel Corporation | Compute optimization mechanism for deep neural networks |
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
US11442889B2 (en) | 2018-09-28 | 2022-09-13 | Intel Corporation | Dynamic deep learning processor architecture |
US11281967B1 (en) * | 2018-12-11 | 2022-03-22 | Amazon Technologies, Inc. | Event-based device performance monitoring |
CN109948784B (zh) * | 2019-01-03 | 2023-04-18 | 重庆邮电大学 | 一种基于快速滤波算法的卷积神经网络加速器电路 |
CN109740748B (zh) * | 2019-01-08 | 2021-01-08 | 西安邮电大学 | 一种基于fpga的卷积神经网络加速器 |
US11347297B1 (en) * | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
CN113853608A (zh) * | 2019-06-21 | 2021-12-28 | 英特尔公司 | 利用稀疏三维(3d)分组卷积的通用模块化稀疏3d卷积设计 |
US11275661B1 (en) * | 2019-09-25 | 2022-03-15 | Amazon Technologies, Inc. | Test generation of a distributed system |
-
2019
- 2019-11-07 TW TW108140517A patent/TWI717892B/zh active
- 2019-11-27 CN CN201911179343.8A patent/CN112784974A/zh active Pending
- 2019-12-31 US US16/731,695 patent/US11645365B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103299A1 (en) * | 2015-10-07 | 2017-04-13 | Altera Corporation | Method and Apparatus for Implementing Layers on a Convolutional Neural Network Accelerator |
Non-Patent Citations (4)
Title |
---|
2015年11月24日公開文件Bo-Yao Lin et. al. "Two Parallel Deep Convolutional Neural Networks for Pedestrian Detection" 2015 International Conference on Image and Vision Computing New Zealand (IVCNZ) |
2019年5月5日公開文件Fen Ge et. al."Compact Convolutional Neural Network Accelerator for IoT Endpoint SoC" https://www.mdpi.com/2079-9292/8/5/497/htm |
2019年7月30日公開文件Raimi Karim "Illustrated: 10 CNN Architectures " https://towardsdatascience.com/illustrated-10-cnn-architectures-95d78ace614d |
年11月24日公開文件Bo-Yao Lin et. al. "Two Parallel Deep Convolutional Neural Networks for Pedestrian Detection" 2015 International Conference on Image and Vision Computing New Zealand (IVCNZ) 2019年7月30日公開文件Raimi Karim "Illustrated: 10 CNN Arc * |
Also Published As
Publication number | Publication date |
---|---|
US11645365B2 (en) | 2023-05-09 |
TW202119292A (zh) | 2021-05-16 |
CN112784974A (zh) | 2021-05-11 |
US20210142165A1 (en) | 2021-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI717892B (zh) | 動態多組態cnn加速器架構與操作方法 | |
Yap et al. | Fixed point implementation of tiny-yolo-v2 using opencl on fpga | |
US20220012593A1 (en) | Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization | |
CN110058883A (zh) | 一种基于opu的cnn加速方法及系统 | |
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN106529668A (zh) | 加速深度神经网络算法的加速芯片的运算装置及方法 | |
CN109409512B (zh) | 一种可灵活配置的神经网络计算单元、计算阵列及其构建方法 | |
KR20190073303A (ko) | 신경망의 컨볼루션 계산을 위한 방법 및 전자 디바이스 | |
CN109784489A (zh) | 基于fpga的卷积神经网络ip核 | |
You et al. | RSNN: A software/hardware co-optimized framework for sparse convolutional neural networks on FPGAs | |
CN107622305A (zh) | 用于神经网络的处理器和处理方法 | |
CN112381211A (zh) | 基于异构平台执行深度神经网络的系统及方法 | |
CN110187965A (zh) | 神经网络的运行优化及数据处理方法、设备及存储介质 | |
Burrello et al. | A microcontroller is all you need: Enabling transformer execution on low-power iot endnodes | |
Liu et al. | More is less: Domain-specific speech recognition microprocessor using one-dimensional convolutional recurrent neural network | |
Que et al. | Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs | |
CN113792621A (zh) | 一种基于fpga的目标检测加速器设计方法 | |
Yang et al. | DASNet: Dynamic activation sparsity for neural network efficiency improvement | |
Sun et al. | Sense: Model-hardware codesign for accelerating sparse CNNs on systolic arrays | |
Li et al. | Predictive exit: Prediction of fine-grained early exits for computation-and energy-efficient inference | |
Zhuang et al. | Vlsi architecture design for adder convolution neural network accelerator | |
CN110659014B (zh) | 乘法器及神经网络计算平台 | |
CN115222028A (zh) | 基于fpga的一维cnn-lstm加速平台及实现方法 | |
Zhao | A Floyd-like algorithm for optimization of mix-valued logical control networks |