TWI717892B - 動態多組態cnn加速器架構與操作方法 - Google Patents

動態多組態cnn加速器架構與操作方法 Download PDF

Info

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
Application number
TW108140517A
Other languages
English (en)
Other versions
TW202119292A (zh
Inventor
羅賢君
陳柏瑋
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW108140517A priority Critical patent/TWI717892B/zh
Priority to CN201911179343.8A priority patent/CN112784974A/zh
Priority to US16/731,695 priority patent/US11645365B2/en
Application granted granted Critical
Publication of TWI717892B publication Critical patent/TWI717892B/zh
Publication of TW202119292A publication Critical patent/TW202119292A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4046Scaling the whole image or part thereof using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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模型運算。
首先,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加速器架構。
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
3
單個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
4
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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)

  1. 一卷積神經網路運算 (CNN) 加速器,係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含一第一子部分運算和一第二子部分運算,該卷積神經網路運算加速器包括: 至少兩個子加速器,該至少兩個子加速器包含: 一第一子加速器,該第一子加速器包括: I個第一卷積運算處理器; J個第一純量運算處理器;和 K個第一非線性激活運算處理器; 一第二子加速器,該第二子加速器包括: X個第二卷積運算處理器; Y個第二純量運算處理器;和 Z個第二非線性激活運算處理器,上述I,J,K,X,Y,Z均大於0; 其中該第一子加速器獨立執行該第一子部分運算; 其中該第二子加速器獨立執行該第二子部分運算; 其中該第一子加速器和該第二子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足。
  2. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該複數個子部分運算更包含一第三部分卷積神經網路運算,該至少兩個子加速器更包含一第三子加速器,該第三子加速器包括: R個第一卷積運算處理器; S個第一純量運算處理器;和 T個第一非線性激活運算處理器,上述R~T均大於0; 其中該第三子加速器獨立執行該第三部分卷積神經網路運算; 其中該第一子加速器和該第三子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於R」,「J異於S」和「K異於T」三關係式至少其中之一滿足。
  3. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該純量運算處理器係用來處理一純量運算,該純量運算係選自於由加減乘除、批量歸一化(batch normalization)、量化(quantization)、偏差化(Bias)和數值縮放(scale)所構成的群組。
  4. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該非線性激活運算處理器係用來處理一非線性激活運算,該非線性激活運算係選自於由線性整流函數(Rectified Linear Unit, ReLU)、 Sigmoid函數和Tanh函數運算所構成的群組。
  5. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含至少T層運算,該第一子部分運算包含該T層運算中的前M層運算,該第二子部分運算包含該T層運算中的後N層運算,該第一子加速器執行該前M層運算後結果輸出一中間結果給該第二子加速器,該第二子加速器再依據該一中間結果進行該後N層運算。
  6. 如申請專利範圍第5項所述之卷積神經網路運算加速器,其中該第一子加速器執行該第一子部分運算耗時一第一時段T1,該第二子加速器執行該第二子部分運算耗時一第二時段T2,該第一時段T1實質相等於該第二時段T2。
  7. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含一主幹運算和一第一分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算包含該第一分支運算,該第一子加速器執行該主幹運算,該第二子加速器執行該第一分支運算。
  8. 如申請專利範圍第7項所述之卷積神經網路運算加速器,其中當該卷積神經網路運算結束該主幹運算後,該第一子加速器進入一第一省電模式,當該卷積神經網路運算執行該主幹運算時,該第一子加速器脫離該第一省電模式。
  9. 如申請專利範圍第7項所述之卷積神經網路運算加速器,其中當該卷積神經網路運算執行該主幹運算時,該第二子加速器進入一第二省電模式,當該卷積神經網路運算結束該主幹運算而執行該第一分支運算時,該第二子加速器脫離該第二省電模式。
  10. 如申請專利範圍第1項所述之卷積神經網路運算加速器,其中該卷積神經網路運算包含一主幹運算,一第一分支運算和一第二分支運算,該第一子部分運算包含該主幹運算,該第二子部分運算係選擇性地包含該第一分支運算和該第二分支運算二者其中之一,該第一子加速器執行該主幹運算,該第二子加速器選擇性地執行該第一分支運算和該第二分支運算二者其中之一;當該卷積神經網路運算欲執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算欲執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。
  11. 一操作方法,適用於一卷積神經網路運算 (CNN) 加速器,該卷積神經網路運算加速器係用以執行一卷積神經網路運算,該卷積神經網路運算可切割成複數個子部分運算,該複數個子部分運算至少包含一第一子部分運算和一第二子部分運算,該卷積神經網路運算加速器包括至少兩個子加速器,該至少兩個子加速器包含:一第一子加速器和一第二子加速器,該第一子加速器包括: I個第一卷積運算處理器,J個第一純量運算處理器和K個第一非線性激活運算處理器;該第二子加速器包括:X個第二卷積運算處理器,Y個第二純量運算處理器和Z個第二非線性激活運算處理器,該第一子加速器和該第二子加速器間滿足一不同運算核心數量關係,該不同運算核心數量關係指「I異於X」,「J異於Y」和「K異於Z」三關係式至少其中之一滿足,該操作方法包括步驟: 該第一子加速器執行該第一子部分運算; 該第二子加速器執行該第二子部分運算; 當該卷積神經網路運算結束該第一子部分運算時,該第一子加速器進入一第一省電模式,以及 當該卷積神經網路運算執行該第一子部分運算時,該第一子加速器脫離該第一省電模式。
  12. 如申請專利範圍第11項所述之操作方法,其中該第一子部分運算包含一主幹運算,該第二子部分運算包含一第一分支運算,該操作方法更包括步驟:當該卷積神經網路運算結束該第一分支運算而執行該主幹運算時,該第二子加速器進入一第二省電模式,當該卷積神經網路運算結束該主幹運算時而執行該第一分支運算時,該第二子加速器脫離該第二省電模式。
  13. 如申請專利範圍第11項所述之操作方法,其中該第一子部分運算包含一主幹運算,該第二子部分運算係選擇性地包含一第一分支運算和一第二分支運算二者其中之一;該操作方法更包括步驟:當該卷積神經網路運算結束該主幹運算而執行該第一分支運算時,該第二子加速器載入該第一分支運算對應的程式碼;當該卷積神經網路運算結束該主幹運算而執行該第二分支運算時,該第二子加速器載入該第二分支運算對應的程式碼。
TW108140517A 2019-11-07 2019-11-07 動態多組態cnn加速器架構與操作方法 TWI717892B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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