TWI766396B - 資料暫存裝置、資料暫存方法以及計算方法 - Google Patents

資料暫存裝置、資料暫存方法以及計算方法 Download PDF

Info

Publication number
TWI766396B
TWI766396B TW109136331A TW109136331A TWI766396B TW I766396 B TWI766396 B TW I766396B TW 109136331 A TW109136331 A TW 109136331A TW 109136331 A TW109136331 A TW 109136331A TW I766396 B TWI766396 B TW I766396B
Authority
TW
Taiwan
Prior art keywords
data
row
convolution
storage
unit
Prior art date
Application number
TW109136331A
Other languages
English (en)
Other versions
TW202121202A (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 大陸商星宸科技股份有限公司
Publication of TW202121202A publication Critical patent/TW202121202A/zh
Application granted granted Critical
Publication of TWI766396B publication Critical patent/TWI766396B/zh

Links

Images

Classifications

    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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 or look ahead
    • G06F9/3824Operand accessing
    • 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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本發明提供一種資料暫存裝置,包含一個搬運單元,分別與一個第一儲存單元和多個第二儲存單元相連。搬運單元接收搬運指令,其內容包含讀取位址暫存器、目的位址暫存器以及預設的搬運規則。搬運單元更執行搬運指令,以根據讀取位址暫存器從第一儲存單元中按列取出輸入資料,並將每列中的資料逐個交替依序地暫存至目的位址暫存器所指示的各第二儲存單元中。透過本發明的資料搬運和資料讀取及卷積方式,可實現資料搬運和卷積運算並行,實現卷積單元的乒乓操作,提高卷積的效率,同時也無需在儲存器中開闢兩份資料儲存空間,降低儲存器成本。

Description

資料暫存裝置、資料暫存方法以及計算方法
本發明是關於資料計算技術,且關於一種資料暫存裝置及暫存方法、一種計算裝置及計算方法、一種電子設備以及一種電腦可讀儲存媒體。
深度學習(Deep learning)是開展人工智慧(Artificial intelligence;AI)的重要應用技術之一,其廣泛應用於電腦影像、語音辨識等領域。其中卷積神經網路(Convolutional Neural Network;CNN)則是近年來引起重視的一種深度學習高效識別技術,它透過直接輸入原始圖像或資料,與多個特徵濾波器(filter)進行若干層的卷積運算及向量運算,進而在圖像和語音辨識方面產生高準確性結果。其中濾波器的規模可由1×1、3×3的小區塊規模到5×5、7×7甚至是11×11的大規模卷積運算區塊,因此卷積運算也是一種很耗費效能的運算。
為了追求分類準確度,CNN模型深度越來越深,模型複雜度也越來越高,如深度殘差網路(ResNet)其層數已經多達152層。在某些真實的應用場景如移動或者嵌入式設備,如此大而複雜的模型面臨著記憶體不足、響應延遲等問題,例如自動駕駛汽車的行人檢測系統如果響應速度慢 則會發生可怕的結果,因此大規模的CNN難以被應用,研究小而高效的CNN模型越來越成為CNN的發展趨勢,例如Google提出的一種小巧而高效的CNN模型MobileNet,其在保持模型性能的前提下降低了模型大小,同時提升模型速度。
然而MobileNet的基本單元是深度級可分離卷積(depthwise separable convolution),它是一種可分解的卷積操作(factorized convolutions),即可以分解為兩個更小的操作:縱向深度卷積(depthwise convolution)和點卷積(pointwise convolution)。其首先採用縱向深度卷積對不同輸入通道分別進行卷積,然後採用點卷積將上面的輸出再進行結合,這樣其實整體效果和一個標準卷積是差不多的,但是會大大減少計算量和模型參數量。但這也帶來反面的效果,由於縱向深度卷積不同於標準卷積那樣重複利用特徵資料,即從記憶體讀入的特徵資料僅僅卷積一次就被丟棄,這大大增加了記憶體的頻寬壓力,其卷積結構也很難結合現有的卷積加速器技術。
因此,有必要提出一種針對縱向深度卷積的一種卷積運算方法和資料暫存方法,不需要額外的硬體資源即可實現大規模卷積運算區塊,且增加卷積單元的利用率及暫存單元的利用率。
鑑於先前技術的問題,本發明之一目的在於提供一種資料暫存裝置及暫存方法以及計算方法,以改善先前技術。
本發明包含一種資料暫存裝置,用於將一第一儲存單元中的輸入資料暫存至複數第二儲存單元中,包含:一搬運單元,該搬運單元分別與 該第一儲存單元和該等第二儲存單元相連,並配置以接收搬運指令,該搬運指令內容包含一讀取位址暫存器、一目的位址暫存器以及預設的一搬運規則;其中該搬運單元還配置以執行該搬運指令,以根據該讀取位址暫存器從該第一儲存單元中按列取出一輸入資料,並將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元中。
本發明另包含一種資料暫存方法,用於將一第一儲存單元中的一輸入資料暫存至複數第二儲存單元中,包含:接收一搬運指令,該搬運指令內容包含一讀取位址暫存器、一目的位址暫存器以及預設的一搬運規則;以及執行該搬運指令,以根據該讀取位址暫存器從該第一儲存單元中按列取出該輸入資料,並將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元中。
本發明更包含一種計算方法,應用於一卷積計算裝置,用以對一輸入特徵資料進行一卷積計算,該輸入特徵資料儲存於一儲存單元中且對應於一由N個通道的I*J平面資料所構成的一資料結構,N、I、與J為正整數,該卷積計算裝置包含一第一暫存器、一第二暫存器以及一第一卷積單元,該計算方法包含:將該輸入特徵資料中對應該N個通道中的第i列第j個位置的N個資料寫入該第一暫存器;將該輸入特徵資料中對應N個通道的第i列第j+1個位置的N個資料寫入該第二暫存器;以及自該第一暫存器及該第二暫存器中讀出對應第n通道的資料到該第一卷積單元以進行該卷積計算;其中,i為小於等於I的正整數,j為小於等於J的正整數,n為小於等於N的正整數。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
100:計算裝置
110:第一儲存單元
120:第二儲存單元
130:搬運單元
140:控制單元
150:指令儲存單元
160:卷積單元
161:第一暫存器
162:第二暫存器
163:重排序單元
164:第一卷積計算電路
165:第二卷積計算電路
170:向量單元
200:電子設備
210:處理器
220:儲存裝置
230:輸入裝置
240:輸出裝置
250:匯流排系統
S100:資料暫存方法
S110~S120:步驟
S200:計算方法
S210~S220:步驟
〔圖1〕顯示本發明之一實施例中,標準卷積運算的示意圖;〔圖2〕顯示本發明之一實施例中,深度卷積運算的示意圖;〔圖3〕顯示本發明之一實施例中,用於實現本發明實施例的資料暫存裝置及暫存方法、計算裝置及計算方法的示例電子設備;〔圖4〕顯示本發明之一實施例中,計算裝置的示意圖;〔圖5〕顯示本發明之一實施例中,儲存器以及卷積單元的示意圖;〔圖6a〕至〔圖6c〕分別顯示本發明一實施例中,各儲存器的資料儲存示意圖;〔圖7〕顯示本發明之一實施例中,資料暫存方法的示意性流程圖;〔圖8a〕至〔圖8c〕顯示本發明一實施例中,資料讀取以及卷積運算過程的示意圖;〔圖9〕顯示本發明之一實施例中,另一種資料讀取的示意圖;以及〔圖10〕顯示本發明另一實施例中,計算方法的示意性流程圖。
為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和具體實施方式對本發明作進一步詳細描述。
下文先對本發明的提出背景做簡要說明。
圖1顯示本發明一實施例中,標準卷積運算的示意圖。輸入卷積運算裝置的資料一般包含兩種:特徵資料和濾波資料。其中特徵資料通常為圖像、語音等原始輸入資料或上層卷積的輸出資料,此處以一個5×5像素,三通道RGB彩色輸入圖片為示意,其通道(channel)數量是3(紅、綠、藍),因此形狀為5×5×3。濾波資料即所說的特徵過濾器資料或卷積核資料,是一組用來識別圖像某些特徵的參數值,通常規模有1×1、3×3、5×5、7×7甚至是11×11,且卷積核的通道應與特徵資料的通道一致。此處以常用的3×3卷積核為示意,卷積核數量為4(即輸出通道數為4),因此卷積核形狀為4個3×3×3。卷積運算過程為:4組3×3×3的濾波資料依次在5×5×3的特徵資料上移動,從而在特徵資料上產生移動窗(sliding window),其每次移動的間隔稱為步幅(stride),且步幅小於濾波器的最短寬度,每移動一次便對窗內對應的資料進行一次濾波器大小的卷積運算。以圖1來說,步幅為1,濾波資料在特徵資料上移動時,每移動一次就進行一次3×3×3的卷積運算,最後的結果被稱為特徵值。
可以結合圖2,其中圖2顯示本發明一實施例中,深度卷積運算的示意圖。例如第一個窗口的特徵值R00=((A0×F00)+(B0×F01)+(C0×F02)+(F0×F03)+(G0×F04)+(H0×F05)+(K0×F06)+(L0×F07)+(M0×F08))+((A1×F10)+(B1×F11)+(C1×F12)+(F1×F13)+(G1×F14)+(H1×F15)+(K1×F16)+(L1×F17)+(M1×F18))+((A2×F20)+(B2×F21)+(C2×F22)+(F2×F23)+(G2×F24)+(H2×F25)+(K2×F26)+(L2×F27)+(M2×F28))。依次類推,分別產生一組特徵值R00~R08,由於有4 組濾波器,因此產生的特徵值有4個通道R00~R08、R10~R18、R20~R28、R30~R38,即形狀為3×3×4。
不同於一般卷積中每個卷積核對輸入圖像的所有通道進行累加操作,縱向深度卷積的一個卷積核負責一個通道,一個通道只被一個卷積核卷積。如圖2所示的縱向深度卷積,對於一張5×5像素、15通道的輸入圖片(shape為5×5×15),縱向深度卷積在第一個移動窗進行卷積運算時是在二維平面內進行的,即特徵值R00=(A0×F00)+(B0×F01)+(C0×F02)+(F0×F03)+(G0×F04)+(H0×F05)+(K0×F06)+(L0×F07)+(M0×F08)。卷積核的數量與特徵資料的通道數相同(通道和卷積核一一對應),所以圖2的圖像在步幅為1的情況下,經過運算後生成了15個3×3的特徵圖(Feature map)。
但是,在深度卷積中,由於其不同於一般卷積,特徵資料不能重複被多個特徵濾波器卷積,即從記憶體讀入的特徵資料僅僅卷積一次就被丟棄,這大大增加了記憶體的頻寬壓力。此外,對於AI加速器而言,由於卷積核的乘積累加單元(MAC)數量眾多,而要想提高乘積累加單元的利用率,必須將暫存單元到乘積累加單元的特徵資料位元寬度增大,不像一般卷積一樣,只需較少的特徵頻寬,透過增加特徵濾波器的數量來提高MAC利用率。因此提高深度卷積的MAC利用率會增加晶片的佈線壓力。另外,以Mobilenet網路為例,由於深度卷積的濾波器尺寸為3×3,即每次卷積僅9個點做累加,但這對於一般卷積而言仍需要開闢專門的暫存單元來儲存中間累加結果,且中間結果的資料位元寬度和特徵濾波器的數量有關,增加了暫存單元的成本。
基於此,本發明的發明人提出了下述的資料暫存裝置及暫存方法、計算裝置及計算方法。
首先,參照圖3。圖3顯示本發明一實施例中,用於實現本發明實施例的資料暫存裝置及暫存方法、計算裝置及計算方法的示例電子設備。
如圖3所示,電子設備200包含一個或多個處理器210、一個或多個儲存裝置220、一個或多個輸入裝置230、一個或多個輸出裝置240等,這些元件透過匯流排系統250和/或其他形式的連接機構互連。應當注意,圖3所示的電子設備的元件和結構只是示例性的,而非限制性的,根據需要,電子設備也可以具有其他元件和結構。
處理器210可以是中央處理單元(CPU)或者具有資料處理能力和/或指令執行能力的其他形式的處理單元,並且可以控制電子設備200中的其他元件以執行期望的功能。
儲存裝置220可以包含一個或多個電腦程式產品,該電腦程式產品可以包含各種形式的電腦可讀儲存媒體,例如揮發性儲存器和/或非揮發性儲存器。該揮發性儲存器例如可以包含隨機存取儲存器(RAM)和/或高速暫存儲存器(快取)等。該非揮發性儲存器例如可以包含唯讀儲存器(ROM)、硬碟、快閃記憶體等。在該電腦可讀儲存媒體上可以儲存一個或多個電腦程式指令,處理器可以運行該程式指令,以實現下文該的本發明實施例中(由處理器實現)的客戶端功能以及/或者其他期望的功能。在該電腦可讀儲存媒體中還可以儲存各種應用程式和各種資料,例如,該應用程式使用和/或產生的各種資料等。
輸入裝置230可以是使用者用來輸入指令的裝置,並且可以包含鍵盤、滑鼠、麥克風和觸控螢幕等中的一個或多個。
輸出裝置240可以向外部(例如使用者)輸出各種訊號(例如圖像或聲音),並且可以包含顯示器、揚聲器等中的一個或多個。
下面,將參考圖4。圖4顯示本發明一實施例中,計算裝置100的示意圖。圖4描述根據本發明實施例的資料暫存裝置,該資料暫存裝置用於如圖4所示的計算裝置100中,以執行卷積運算。
如圖4所示,一種資料暫存裝置,用於將一個第一儲存單元110中的輸入資料暫存至多個第二儲存單元120中。示例性地,下文將以第一儲存單元110為外部儲存器,第二儲存單元120為內部儲存器進行說明。除此以外,本領域技術人員還可以根據實際需要,設定第一儲存單元110和第二儲存單元120的分佈位置。資料暫存裝置包含一個搬運單元130,搬運單元130分別與第一儲存單元110和多個第二儲存單元120相連。其中,搬運單元130用於接收搬運指令,搬運指令內容包含讀取位址暫存器、目的位址暫存器以及預設的搬運規則。搬運單元130還用於執行搬運指令,以根據讀取位址暫存器從第一儲存單元110中按列取出輸入資料,並將每列中的資料逐個交替依序地暫存至目的位址暫存器所指示的各第二儲存單元120中。
示例性地,如圖4所示,搬運單元130用於將每列中處於相同位置的資料逐個依序暫存至同一個第二儲存單元120的同一列中,以及將每列中處於不同位置的資料逐個依序暫存至同一個第二儲存單元120中不同於同一列的另一列中,或逐個依序暫存至與同一個第二儲存單元120不同的另一個第二儲存單元120的同一列中。
請同時參照圖5。圖5顯示本發明一實施例中,儲存器以及卷積單元的示意圖。具體地,如圖4和圖5所示,對於濾波器規模為3×3的卷積運算,可以使用六個第二儲存單元120,例如圖5中所示的儲存器0~儲存器5。每個儲存器有單獨的讀寫埠。搬運單元130負責將資料從第一儲存單元110搬運至儲存器0~儲存器5,並且在搬運過程中,搬運單元130根據控制單元140的指示來實現儲存格式的轉換,而後根據搬運指令裡提供的起始位址依次順序存放。
以圖2的輸入資料為例,圖2中的輸入資料是儲存於第一儲存單元110中,其對應著由15通道的5×5平面資料所構成的資料結構。搬運單元130根據搬運指令控制在搬運圖2所示的輸入資料(特徵資料)時,會將資料A0~A15儲存於儲存器0的第一列,資料B0~B15儲存於儲存器1的第一列,資料C0~C15儲存於儲存器0的第二列,資料D0~D15儲存於儲存器1的第二列,依次類推,直到把圖2中特徵資料的第一列的所有通道(channel)的所有資料全部存放到儲存器0和儲存器1中。
而後,使用同樣的搬運方法將圖2中特徵資料的第二列的所有通道的所有資料依照同樣格式存放到儲存器2和儲存器3中,將圖2中特徵資料的第三列的所有通道的所有資料依照同樣格式存放到儲存器4和儲存器5中,至此特徵資料的前三列已經搬運完成,且正好和濾波器產生的移動窗的高度3匹配。
最後,循環上面過程,將圖2中特徵資料的第四列的所有通道的所有資料依照同樣格式繼續存放到儲存器0和儲存器1中,將圖2中特徵資料 的第五列的所有通道的所有資料依照同樣格式繼續存放到儲存器2和儲存器3中,由於本實施例的特徵僅有5列,故至此所有資料搬運完成。
請參照圖6a至圖6c。圖6a至圖6c分別顯示本發明一實施例中,各儲存器的資料儲存示意圖。最終在各儲存器中儲存的資料是如圖6a至圖6c所示。對於其他特徵規模較大的實施例,可以依照上面過程繼續存放在各個儲存器中,其中需要注意每一列存放時,都是從儲存器的下一個位址開始,不能與上一列資料所存放的位址衝突。
本實施例的資料暫存裝置,在將輸入資料(特徵)由第一儲存單元暫存至第二儲存單元內時,採用按列取出輸入資料,並將每列中的資料逐個交替依序地暫存至目的位址暫存器所指示的各第二儲存單元中。具體來說,將每列中處於相同位置的資料逐個依序暫存至同一個第二儲存單元的同一列中,以及將每列中處於不同位置的資料逐個依序暫存至同一個第二儲存單元中不同於同一列的另一列中,或逐個依序暫存至與同一個第二儲存單元不同的另一個第二儲存單元的同一列中。借助於本實施例所提供的資料暫存裝置,在進行下述的卷積運算中,可以使得硬體在每個時脈週期產生16個卷積運算結果,從而可以極大提高卷積運算效率。
此外,為了提高計算效率,搬運單元130還可以在執行卷積運算的過程中同步執行搬運指令。
下面,將參考圖7。圖7顯示本發明一實施例中,資料暫存方法S100的示意性流程圖。資料暫存方法S100用於將一個第一儲存單元中的輸入資料暫存至多個第二儲存單元中,該資料暫存方法可以適用於前文記載的資料暫存裝置,資料暫存裝置的具體結構可以參考前文記載,在此不作贅述。
如圖7所示,資料暫存方法S100包含下列步驟。
步驟S110:接收搬運指令,搬運指令內容包含讀取位址暫存器、目的位址暫存器以及預設的搬運規則。
步驟S120:執行搬運指令,以根據讀取位址暫存器從第一儲存單元中按列取出輸入資料,並將每列中的資料逐個交替依序地暫存至目的位址暫存器所指示的各第二儲存單元中。
示例性地,可以將每列中處於相同位置的資料逐個依序暫存至同一個第二儲存單元的同一列中,以及將每列中處於不同位置的資料逐個依序暫存至同一個第二儲存單元中不同於同一列的另一列中,或逐個依序暫存至與同一個第二儲存單元不同的另一個第二儲存單元的同一列中。
具體地資料暫存方式可以參考前文資料暫存裝置中所列舉的資料暫存方式,在此不作贅述。
本實施例的資料暫存方法,其所採用的資料暫存方式,在進行下述的卷積運算中,可以使得硬體在每個時脈週期產生16個卷積運算結果,從而可以極大提高卷積運算效率。
為了提高計算效率,第二儲存單元可以包含一個第一輸入埠和一個第二輸入埠。其中,將每列中的資料逐個交替依序地暫存至該目的位址暫存器所指示的各第二儲存單元中的步驟,更包含:選擇性地透過該第一輸入埠和該第二輸入埠,將每列中的資料逐個交替依序地暫存至該目的位址暫存器所指示的各第二儲存單元中。
為了進一步提高計算效率,暫存方法還可以包含在執行卷積運算的過程中同步執行搬運指令。
下面將參考圖4描述根據本發明另一實施例的計算裝置。
如圖4所示,計算裝置100包含一個第一儲存單元110、多個第二儲存單元120、一個搬運單元130、一個控制單元140、一個指令儲存單元150、一個卷積單元160以及一個向量單元170。搬運單元130的功能與前文資料暫存裝置和資料暫存方法中的功能相同,具體可以參考前文相關記載,在此不作贅述。
指令儲存單元150配置以儲存相關指令,例如搬運指令或運算指令等等。控制單元140配置以根據時脈週期從指令儲存單元150中取出指令。卷積單元160和向量單元170是計算裝置100的核心計算模組,尤其是卷積單元160內部含有大量的乘累加陣列配置以進行卷積運算。具體來說,卷積單元160配置以接收運算指令,運算指令包含讀取位址暫存器、目的儲存位址暫存器以及預設的卷積核資料,以及執行運算指令,以根據讀取位址暫存器按時脈週期順序讀取所有的第二儲存單元120在與時脈週期相對應位址位處的各輸入資料,以形成對應每個時脈週期的行資料,並對各相鄰兩個時脈週期的各行資料和卷積核資料進行卷積運算,將運算結果儲存至目的儲存位址所對應的第二儲存單元120中。
示例性地,如圖4和圖5所示,卷積單元160包含一個控制子單元(圖中並未示出)、一個第一暫存器161、一個第二暫存器162、一個重排序單元163、一個第一卷積計算電路164以及一個第二卷積計算電路165。
控制子單元配置以在第M時脈週期內讀取所有第二儲存單元120的第N位址位處的資料,得到第P行資料,並將該第P行資料暫存至第一暫存器161中。控制子單元還配置以在第M+1時脈週期內讀取所有第二儲存單元 120的第N+1位址位處的資料,得到第P+1行資料,並將第P+1行資料暫存至第二暫存器162中。
重排序單元163依據卷積運算的需求,於分別對輸入至其內的第P行資料和第P+1行資料按照預設規則重新排序組合,獲得一個第一組合行資料和一個第二組合行資料。重排序單元163將第一組合行資料輸出至第一卷積計算電路164,以及將第二組合行資料輸出至第二卷積計算電路165。第一卷積計算電路164和第二卷積計算電路165分別對第一組合行資料和第二組合行資料進行卷積運算。其中,M、N和P均為大於等於1的正整數。
需要說明的是,上述第P行資料和第P+1行資料可以僅包含一行資料,或者,也可以包含多行子行資料。下文將以後者為例進行說明。
具體地,第P行資料包含多個第P子行資料,第P+1行資料包含多個第P+1子行資料,其中,重排序單元163配置以將多個第P子行資料和多個第P+1子行資料中的至少一行第P+1子行資料進行重新排序組合,獲得一個第一組合行資料。重排序單元163更將多個第P子行資料中的至少一行第P子行資料和多個第P+1子行資料進行重新排序組合,獲得一個第二組合行資料。
下面結合圖8a至圖8c對本發明實施例的卷積計算過程作出詳細說明。圖8a至圖8c顯示本發明一實施例中,資料讀取以及卷積運算過程的示意圖。
如圖8a所示,當卷積單元讀取儲存器中的資料時,第一個時脈週期讀取所有儲存器0~5的位址0,得到圖8a中特徵資料的第0行和第1行,並將第0行和第1行資料暫存到第一暫存器161中。
第二個時脈週期讀取儲存器0~5的位址1,得到圖8a中特徵資料的第2行和第3行,並將第2行和第3行資料暫存到第二暫存器162中,此時第一暫存器161和第二暫存器162中的資料即可開始卷積運算。第一暫存器161和第二暫存器162透過資料重排序單元163後,會將第0、1、2行組合在一起輸出給第一卷積計算電路164,同時將第1、2、3行組合在一起輸出給第二卷積計算電路165。
第三個時脈週期讀取儲存器0~5的位址2,得到圖8a中特徵資料的第4行,並將第4行資料暫存到第一暫存器161中。此時,第一暫存器161和第二暫存器162透過資料重排序單元163後,會將第2、3、4行組合在一起輸出給第一卷積計算電路164,同時將第3、4、x行組合在一起輸出給第二卷積計算電路165。
由於圖8a中的特徵資料不存在第5行,則在第三個時脈週期第二卷積計算電路165無需進行運算,但對於其他特徵資料規模較大的實施例則需要重複第二個時脈週期的過程,直至移動窗把特徵資料的列方向移動完。另外,相鄰兩個時脈週期讀取到的資料應交替暫存在第一暫存器161和第二暫存器162中。
至此,特徵資料的第1~3列卷積完成,移動窗應向下移動一個步幅,繼續卷積特徵資料的第2~4列。如圖8b所示,第四個時脈週期讀取儲存器0~1的位址3,讀取儲存器2~5的位址0,這樣會得到圖8b中特徵資料的第0行和第1行,並將這兩行資料暫存到第一暫存器161中。
第五個時脈週期讀取儲存器0~1的位址4,讀取儲存器2~5的位址1,這樣會得到圖8b中特徵資料的第2行和第3行,並將這兩行資料暫存到第 二暫存器162中。與此同時,第一暫存器161和第二暫存器162透過資料重排序單元163後,會將第0、1、2行組合在一起輸出給第一卷積計算電路164,同時將第1、2、3行組合在一起輸出給第二卷積計算電路165。
第六個時脈週期讀取儲存器0~1的位址5,讀取儲存器2~5的位址2,這樣會得到圖8b中特徵資料的第4行,並將這行資料暫存到第一暫存器161中。與此同時,第一暫存器161和第二暫存器162透過資料重排序單元163後,會將第2、3、4行組合在一起輸出給第一卷積計算電路164,同時將第3、4、x行組合在一起輸出給第二卷積計算電路165。
與特徵資料的第1~3列卷積類似,相鄰兩個時脈週期讀取到的資料應交替暫存在第一暫存器161和第二暫存器162中。
至此,特徵資料的第2~4列卷積完成,移動窗應向下移動一個步幅,繼續卷積特徵資料的第3~5列。如圖8c所示,其過程與上面類似,此處不再贅述。
以上也可以發現,特徵資料的讀取類似於乒乓操作,設特徵資料每3列在儲存器中的位址範圍為一個位址區段,則相鄰兩個3列的位址區段即構成了乒乓位址區段。例如本實施例中,特徵資料的第1~3列為位址區段0,特徵資料的第4~6列為位址區段1,濾波器移動窗向下每移動一個步幅為一組卷積操作,則規律如下表1所示:
Figure 109136331-A0305-02-0017-1
Figure 109136331-A0305-02-0018-2
此外,對於步幅為1時,第一卷積計算電路164和第二卷積計算電路165產生的卷積結果即為最終的卷積結果,而對於步幅為2時,第一卷積計算電路164產生的結果即為最終卷積結果。
以上該的儲存器可為單埠靜態隨機存取記憶體,也可以為雙埠靜態隨機存取記憶體。若為雙埠靜態隨機存取記憶體時,則會進一步提升深度卷積運算的效率。
請參照圖9。圖9顯示本發明一實施例中,另一種資料讀取的示意圖。例如圖9所示,特徵資料的第1~3列先由搬運單元搬入儲存器中,而後各卷積計算電路按照上述方案進行卷積運算。與此同時,搬運單元可以在卷積運算過程中同步執行搬運指令,將特徵資料的第4列搬入儲存器中。由於是雙埠靜態隨機存取記憶體,搬運單元對儲存器的寫操作不影響卷積計算電路對儲存器的讀操作。
理想情況下,當卷積計算電路完成特徵資料的第1~3列卷積操作,搬運單元正好搬運完成第4列特徵資料,則卷積計算電路可立即進行特徵資料的第2~4列卷積操作,使得卷積計算電路無縫銜接,隱藏了搬運單元搬運資料的時間消耗。當卷積計算電路進行第2~4列卷積操作時,搬運單元 同步執行第5列的搬運任務,依次類推,直至完成整個特徵資料的卷積運算。其中,為了節省儲存器儲存空間,在卷積計算電路執行第4~6列卷積運算以及搬運單元搬運第7列資料時,搬運單元應把第7列資料覆蓋儲存到第1列資料所在位置。依次類推,第8列資料覆蓋到第2列資料所在位置、第9列資料覆蓋到第3列資料所在位置。
本發明實施例的計算裝置,透過採用以上資料搬運和資料讀取以及卷積方式,可以實現搬運單元搬運和卷積運算並行,從而實現卷積計算電路的乒乓操作,提高卷積的效率,同時也無需在儲存器中開闢兩份資料儲存空間,降低儲存器成本。
請參照圖10。圖10顯示本發明另一實施例中,計算方法S200的示意性流程圖。下面結合圖10描述本發明另一實施例的計算方法,該計算方法適用於前文記載的計算裝置,計算裝置具體結構以及相關內容可以參考前文相關記載,在此不作贅述。
如圖10所示,計算方法S200包含下列步驟。
S210:接收搬運指令,搬運指令內容包含讀取位址暫存器、目的位址暫存器以及預設的搬運規則,以及執行搬運指令,以根據讀取位址暫存器從第一儲存單元中按列取出輸入資料,並將每列中的資料逐個交替依序地暫存至目的位址暫存器所指示的各第二儲存單元中。
S220:接收運算指令,運算指令內容包含讀取位址暫存器、目的儲存位址暫存器以及預設的卷積核資料,以及執行運算指令,以根據讀取位址暫存器按時脈週期順序讀取所有的第二儲存單元在與時脈週期相對應位址位處的各輸入資料,以形成對應每個時脈週期的行資料,並對各相鄰 兩個時脈週期的各行資料和卷積核資料進行卷積運算,將運算結果儲存至目的儲存位址所對應的第二儲存單元中。
在一些選擇性的實施方式中,根據讀取位址暫存器按時脈週期順序讀取所有的第二儲存單元在與時脈週期相對應位址位處的各輸入資料,以形成對應每個時脈週期的行資料,並對各相鄰兩個時脈週期的各行資料和卷積核資料進行卷積運算的步驟,更包含:在第M時脈週期內讀取所有第二儲存單元的第N位址位處的資料,得到第P行資料,並將第P行資料暫存至第一暫存器中;在第M+1時脈週期內讀取所有第二儲存單元的第N+1位址位處的資料,得到第P+1行資料,並將第P+1行資料暫存至第二暫存器中;分別對輸入至其內的第P行資料和第P+1行資料按照預設規則重新排序組合,獲得一個第一組合行資料和一個第二組合行資料,並將第一組合行資料輸出至第一卷積計算電路以及將第二組合行資料輸出至第二卷積計算電路;分別對第一組合行資料和第二組合行資料進行卷積運算。其中,M、N和P均為大於等於1的正整數。
在一些選擇性的實施方式中,第P行資料包含多個第P子行資料,第P+1行資料包含多個第P+1子行資料。其中,分別對輸入至其內的第P行資料和第P+1行資料按照預設規則重新排序組合,獲得一個第一組合行資料和一個第二組合行資料的步驟,更包含:將第P子行資料和第P+1子行資料中的至少一行第P+1子行資料進行重新排序組合,獲得該第一組合行資料,以及將第P子行資料中的至少一行第P子行資料和第P+1子行資料進行重新排序組合,獲得該第二組合行資料。
可以理解的是,以上實施方式僅僅是為了說明本發明的原理而採用的示例性實施方式,然而本發明並不局限於此。對於本領域內的普通技術人員而言,在不脫離本發明的精神和實質的情況下,可以做出各種變型和改進,這些變型和改進也視為本發明的保護範圍。
100:計算裝置
110:第一儲存單元
120:第二儲存單元
130:搬運單元
140:控制單元
150:指令儲存單元
160:卷積單元
170:向量單元

Claims (11)

  1. 一種資料暫存裝置,用於將一第一儲存單元中的輸入資料暫存至複數第二儲存單元中,包含: 一搬運單元,該搬運單元分別與該第一儲存單元和該等第二儲存單元相連,並配置以接收搬運指令,該搬運指令內容包含一讀取位址暫存器、一目的位址暫存器以及預設的一搬運規則; 其中該搬運單元還配置以執行該搬運指令,以根據該讀取位址暫存器從該第一儲存單元中按列取出一輸入資料,並將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元中。
  2. 如請求項1所述之資料暫存裝置,其中該搬運單元在將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元時更包含: 將每列中處於相同位置的該輸入資料逐個依序暫存至同一個該等第二儲存單元的同一列中;以及, 將每列中處於不同位置的該輸入資料逐個依序暫存至該同一個該等第二儲存單元中不同於該同一列的另一列中,或逐個依序暫存至與該同一個該等第二儲存單元不同的另一個該等第二儲存單元的同一列中。
  3. 如請求項1所述之資料暫存裝置,其中該等第二儲存單元各包含一個第一輸入埠和一個第二輸入埠; 其中該搬運單元還配置以選擇性地透過該第一輸入埠和該第二輸入埠向該等第二儲存單元暫存該輸入資料。
  4. 如請求項1所述之資料暫存裝置,其中該搬運單元在執行一卷積運算的過程中同步執行該搬運指令。
  5. 一種資料暫存方法,用於將一第一儲存單元中的一輸入資料暫存至複數第二儲存單元中,包含: 接收一搬運指令,該搬運指令內容包含一讀取位址暫存器、一目的位址暫存器以及預設的一搬運規則;以及 執行該搬運指令,以根據該讀取位址暫存器從該第一儲存單元中按列取出該輸入資料,並將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元中。
  6. 如請求項5所述之資料暫存方法,更包含: 將每列中處於相同位置的該輸入資料逐個依序暫存至同一個該等第二儲存單元的同一列中;以及, 將每列中處於不同位置的該輸入資料逐個依序暫存至該同一個該等第二儲存單元中不同於該同一列的另一列中,或逐個依序暫存至與該同一個該等第二儲存單元不同的另一個該等第二儲存單元的同一列中。
  7. 如請求項5所述之資料暫存方法,其中各該等第二儲存單元包含一個第一輸入埠和一個第二輸入埠,將每列中的該輸入資料逐個交替依序地暫存至該目的位址暫存器所指示的各該等第二儲存單元中之步驟,包含: 選擇性地透過該第一輸入埠和該第二輸入埠,將每列中的資料逐個交替依序地暫存至該目的位址暫存器所指示的各第二儲存單元中。
  8. 如請求項5所述之資料暫存方法,更包含: 在執行一卷積運算的過程中同步執行該搬運指令。
  9. 一種計算方法,應用於一卷積計算裝置,用以對一輸入特徵資料進行一卷積計算,該輸入特徵資料儲存於一儲存單元中且對應於一由N個通道的I*J平面資料所構成的一資料結構,N、I、與J為正整數,該卷積計算裝置包含一第一暫存器、一第二暫存器以及一第一卷積單元,該計算方法包含: 將該輸入特徵資料中對應該N個通道中的第i列第j個位置的N個資料寫入該第一暫存器; 將該輸入特徵資料中對應N個通道的第i列第j+1個位置的N個資料寫入該第二暫存器;以及 自該第一暫存器及該第二暫存器中讀出對應第n通道的資料到該第一卷積單元以進行該卷積計算; 其中,i為小於等於I的正整數,j為小於等於J的正整數,n為小於等於N的正整數。
  10. 如請求項9所述之計算方法,其中該卷積計算裝置更包含一第二卷積單元,該計算方法更包含: 自該第一暫存器及該第二暫存器中讀出對應第m通道的資料到該第二卷積單元以進行該卷積計算; 其中,m為小於等於N的正整數。
  11. 如請求項9所述之計算方法,更包含: 對自該第一暫存器及該第二暫存器所讀出對應第n通道的資料進行重排序,以符合該第一卷積單元進行該卷積計算的需求。
TW109136331A 2019-11-27 2020-10-20 資料暫存裝置、資料暫存方法以及計算方法 TWI766396B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911180934.7A CN111008040B (zh) 2019-11-27 2019-11-27 缓存装置及缓存方法、计算装置及计算方法
CN201911180934.7 2019-11-27

Publications (2)

Publication Number Publication Date
TW202121202A TW202121202A (zh) 2021-06-01
TWI766396B true TWI766396B (zh) 2022-06-01

Family

ID=70113315

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109136331A TWI766396B (zh) 2019-11-27 2020-10-20 資料暫存裝置、資料暫存方法以及計算方法

Country Status (3)

Country Link
US (1) US11436017B2 (zh)
CN (1) CN111008040B (zh)
TW (1) TWI766396B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI766568B (zh) * 2020-04-17 2022-06-01 神盾股份有限公司 用於執行卷積神經網路運算的處理裝置與其操作方法
CN111897579B (zh) * 2020-08-18 2024-01-30 腾讯科技(深圳)有限公司 图像数据处理方法、装置、计算机设备和存储介质
CN112581987B (zh) * 2020-12-23 2023-11-03 成都海光微电子技术有限公司 二维结构的局部存储器系统及其运算方法、介质、程序
CN113706366B (zh) * 2021-07-30 2024-02-27 浪潮电子信息产业股份有限公司 一种图像特征数据的提取方法、系统及相关装置
FR3131429A1 (fr) * 2021-12-29 2023-06-30 Commissariat à l'Energie Atomique et aux Energies Alternatives Système de transfert direct de données
CN114399034B (zh) * 2021-12-30 2023-05-02 北京奕斯伟计算技术股份有限公司 用于直接存储器访问装置的数据搬运方法
CN114461978B (zh) * 2022-04-13 2022-07-08 苏州浪潮智能科技有限公司 数据处理方法、装置、电子设备及可读存储介质
CN114895964A (zh) * 2022-05-31 2022-08-12 上海阵量智能科技有限公司 数据处理装置、方法、芯片、板卡、电子设备及存储介质
CN115292662B (zh) * 2022-08-18 2023-09-22 上海燧原科技有限公司 一种卷积加速运算方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW498275B (en) * 1999-05-24 2002-08-11 Toshiba Corp Processor unit
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN107305538B (zh) * 2016-04-22 2020-07-31 中科寒武纪科技股份有限公司 一种子矩阵运算装置及方法
JP6786948B2 (ja) * 2016-08-12 2020-11-18 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN110073329B (zh) * 2016-12-16 2021-06-22 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN107679621B (zh) * 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
CN107679620B (zh) * 2017-04-19 2020-05-26 赛灵思公司 人工神经网络处理装置
CN109543139B (zh) * 2017-09-22 2021-09-17 杭州海康威视数字技术股份有限公司 卷积运算方法、装置、计算机设备及计算机可读存储介质
CN109992541B (zh) * 2017-12-29 2021-09-14 深圳云天励飞技术有限公司 一种数据搬运方法、计算装置及计算机存储介质
CN108197705A (zh) * 2017-12-29 2018-06-22 国民技术股份有限公司 卷积神经网络硬件加速装置及卷积计算方法及存储介质
CN108665063B (zh) * 2018-05-18 2022-03-18 南京大学 用于bnn硬件加速器的双向并行处理卷积加速系统
CN109711533B (zh) * 2018-12-20 2023-04-28 西安电子科技大学 基于fpga的卷积神经网络加速系统
CN109858622B (zh) * 2019-01-31 2021-03-02 瑞芯微电子股份有限公司 深度学习神经网络的数据搬运电路和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法

Also Published As

Publication number Publication date
CN111008040A (zh) 2020-04-14
US11436017B2 (en) 2022-09-06
CN111008040B (zh) 2022-06-14
TW202121202A (zh) 2021-06-01
US20210157594A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
TWI766396B (zh) 資料暫存裝置、資料暫存方法以及計算方法
US11741345B2 (en) Multi-memory on-chip computational network
US10846591B2 (en) Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks
US11922132B2 (en) Information processing method and terminal device
US10936937B2 (en) Convolution operation device and convolution operation method
US10846621B2 (en) Fast context switching for computational networks
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
WO2019136764A1 (zh) 卷积器及其所应用的人工智能处理装置
CN111860812A (zh) 一种用于执行卷积神经网络训练的装置和方法
US11645533B2 (en) IR drop prediction with maximum convolutional neural network
WO2022252568A1 (zh) 一种基于gpgpu可重构架构的方法、计算系统及重构架构的装置
JP6684951B2 (ja) 人工知能推論演算装置
WO2022179074A1 (zh) 数据处理装置、方法、计算机设备及存储介质
WO2022007265A1 (zh) 一种膨胀卷积加速计算方法及装置
US11120328B1 (en) Systems and methods for reducing power consumption of convolution operations for artificial neural networks
CN111105023A (zh) 数据流重构方法及可重构数据流处理器
CN112639726A (zh) 用于执行并行计算的方法和系统
TWI634436B (zh) 緩衝裝置及卷積運算裝置與方法
Borges AlexNet deep neural network on a many core platform
TW202014895A (zh) 具有記憶體內運算架構的記憶體及其操作方法
TWI768497B (zh) 智慧處理器、資料處理方法及儲存介質
US11842273B2 (en) Neural network processing
US20230051344A1 (en) Optimization of memory use for efficient neural network execution
US12125124B1 (en) Matrix transpose hardware acceleration
US20230043584A1 (en) Optimization of memory use for efficient neural network execution