TWI718634B - 卷積神經網路的特徵圖存取方法及其系統 - Google Patents

卷積神經網路的特徵圖存取方法及其系統 Download PDF

Info

Publication number
TWI718634B
TWI718634B TW108129882A TW108129882A TWI718634B TW I718634 B TWI718634 B TW I718634B TW 108129882 A TW108129882 A TW 108129882A TW 108129882 A TW108129882 A TW 108129882A TW I718634 B TWI718634 B TW I718634B
Authority
TW
Taiwan
Prior art keywords
tensor
cache
convolutional neural
neural network
stored
Prior art date
Application number
TW108129882A
Other languages
English (en)
Other versions
TW202024925A (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 TW202024925A publication Critical patent/TW202024925A/zh
Application granted granted Critical
Publication of TWI718634B publication Critical patent/TWI718634B/zh

Links

Images

Classifications

    • 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/0871Allocation or management of cache space
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種卷積神經網路的特徵圖存取方法包含連接分析步驟及複數層運算步驟。連接分析步驟分析網路以建立卷積神經網路連接表。卷積神經網路連接表包含複數張量及複數層運算係數。各張量包含複數特徵圖。各層運算係數包含步驟指數、至少一輸入操作標籤及輸出操作標籤。步驟指數為層運算步驟之處理順序。至少一輸入操作標籤為張量中之至少一者。輸出操作標籤為張量中之一者。層運算步驟根據一距離沖洗儲存於快取記憶體中之張量。藉此,卷積神經網路的特徵圖存取方法可優化拜訪動態隨機存取記憶體的次數。

Description

卷積神經網路的特徵圖存取方法及其系統
本發明是有關於一種卷積神經網路的特徵圖存取方法及其系統,且尤其是有關根據卷積神經網路連接表的一種卷積神經網路的特徵圖存取方法及其系統。
由於先進先出(First In First Out,FIFO)沖洗演算法及最近最少使用(Least Recently Used,LRU)沖洗演算法會沖洗儲存於快取記憶體中且未來會使用的張量,並將所述張量儲存至動態隨機存取記憶體中。因此,拜訪動態隨機存取記憶體的次數將會增加,導致系統的動態隨機存取記憶體帶寬功耗增加。
有鑑於此,如何優化動態隨機存取記憶體的拜訪次數以降低系統的動態隨機存取記憶體帶寬功耗是一個重要的課題。
因此,本發明之目的在於提供一種卷積神經網路的特徵圖存取方法及其系統,其透過距離運算步驟計算儲存 於快取記憶體中之各張量所對應之距離,及沖洗步驟沖洗儲存於快取記憶體中之至少一張量以優化拜訪動態隨機存取記憶體的次數。
依據本發明一實施方式提供一種卷積神經網路的特徵圖存取方法包含連接分析步驟以及複數層運算步驟。連接分析步驟分析網路以建立卷積神經網路連接表。卷積神經網路連接表包含複數張量及複數層運算係數。各張量包含複數特徵圖並對應距離。各層運算係數包含步驟指數、至少一輸入操作標籤及輸出操作標籤。步驟指數為層運算步驟之處理順序。至少一輸入操作標籤為張量中之至少一者。輸出操作標籤為張量中之一者。至少一層運算步驟根據距離沖洗儲存於快取記憶體中之至少一張量。距離為至少一層運算步驟與未來層運算步驟之間的步驟間隔。未來層運算步驟之至少一輸入操作標籤與至少一張量匹配,且層運算步驟中之至少一者根據層運算係數執行卷積運算步驟,並根據卷積神經網路連接表計算至少一張量所對應之距離。
藉此,卷積神經網路的特徵圖存取方法可優化拜訪動態隨機存取記憶體的次數,進而降低動態隨機存取記憶體帶寬功耗。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,被沖洗之儲存於快取記憶體中之至少一張量對應最大距離,最大距離為儲存於快取記憶體中之各張量所對應之距離中的最大者。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟包含快取記憶體檢查步驟。快取記憶體檢查步驟檢查儲存於快取記憶體中之張量及儲存於快取記憶體中之張量之張量數。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟包含距離運算步驟。距離運算步驟根據卷積神經網路連接表計算儲存於快取記憶體中之各張量所對應之距離。儲存於快取記憶體中之各張量所對應之距離符合下式。
Figure 108129882-A0101-12-0003-1
其中i為層運算步驟i之步驟指數且i是從1到Nj為層運算步驟j之步驟指數,N為層運算步驟之數量,t是儲存於快取記憶體中之張量,Tin j 是層運算步驟j之至少一輸入操作標籤所形成之輸入操作標籤集合。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟更包含沖洗步驟。沖洗步驟根據儲存於快取記憶體中之各張量所對應之距離及卷積神經網路連接表沖洗儲存於快取記憶體中之至少一張量。被沖洗之儲存於快取記憶體中之至少一張量所對應之最大距離大於或等於未被沖洗之儲存於快取記憶體中之各張量所對應之距離。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,當儲存於快取記憶體中之至少一張量所對應之距離與未被沖洗之儲存於快取記憶體中之各張量的至少一 者所對應之距離相等時,根據先進先出沖洗方式選出儲存於快取記憶體中之至少一張量。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟更包含動態隨機存取記憶體回寫步驟。動態隨機存取記憶體回寫步驟根據卷積神經網路連接表判斷儲存於快取記憶體中之至少一張量是否回寫至動態隨機存取記憶體。於動態隨機存取記憶體回寫步驟時,當被沖洗之儲存於快取記憶體中之至少一張量所對應之距離小於N時,被沖洗之儲存於快取記憶體中之至少一張量於快取記憶體中被沖洗,並回寫至動態隨機存取記憶體。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,於動態隨機存取記憶體回寫步驟時,當被沖洗之儲存於快取記憶體中之至少一張量所對應之距離等於N時,被沖洗之儲存於快取記憶體中之至少一張量於快取記憶體中被沖洗,並不回寫至動態隨機存取記憶體。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟包含讀取步驟。讀取步驟根據卷積神經網路連接表讀取儲存於動態隨機存取記憶體中之至少另一張量,並將至少另一張量儲存於快取記憶體中。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,層運算係數更包含卷積核。卷積核及至少一輸入操作標籤被配置為執行卷積運算。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟包含卷積運算步驟。卷積運 算步驟根據卷積核及至少一輸入操作標籤執行卷積運算以產生輸出操作標籤。當至少一輸入操作標籤的數量為複數時,輸入操作標籤沿通道維度相互串接再執行卷積運算。
根據前段所述實施方式的卷積神經網路的特徵圖存取方法,至少一層運算步驟更包含快取記憶體儲存步驟。快取記憶體儲存步驟儲存輸出操作標籤至快取記憶體。
依據本發明另一實施方式提供一種應用卷積神經網路的特徵圖存取方法的卷積神經網路的特徵圖存取系統包含查表控制器、中央處理器、快取記憶體以及動態隨機存取記憶體。查表控制器執行連接分析步驟以建立卷積神經網路連接表。中央處理器執行層運算步驟。快取記憶體電性連接中央處理器並執行層運算步驟。動態隨機存取記憶體電性連接快取記憶體並執行動態隨機存取記憶體回寫步驟。
藉此,卷積神經網路的特徵圖存取系統可優化拜訪動態隨機存取記憶體的次數,進而降低動態隨機存取記憶體帶寬功耗。
根據前段所述實施方式的卷積神經網路的特徵圖存取系統更包含快取記憶體控制器。快取記憶體控制器電性連接快取記憶體及中央處理器。快取記憶體控制器被配置為發送沖洗指令及快取記憶體儲存指令至快取記憶體。
根據前段所述實施方式的卷積神經網路的特徵圖存取系統,至少一層運算步驟包含距離運算步驟。距離運算步驟根據卷積神經網路連接表計算儲存於快取記憶體中 之各張量所對應之距離。儲存於快取記憶體中之各張量所對應之距離符合下式。
Figure 108129882-A0101-12-0006-2
其中i為層運算步驟i之步驟指數且i是從1到Nj為層運算步驟j之步驟指數,N為層運算步驟之數量,t是儲存於快取記憶體中之張量,Tin j 是層運算步驟j之至少一輸入操作標籤所形成之輸入操作標籤集合。
根據前段所述實施方式的卷積神經網路的特徵圖存取系統,至少一層運算步驟更包含沖洗步驟。沖洗步驟根據儲存於快取記憶體中之各張量所對應之距離及卷積神經網路連接表,沖洗儲存於快取記憶體中之至少一張量。被沖洗之儲存於快取記憶體中之至少一張量所對應之最大距離大於或等於未被沖洗之儲存於快取記憶體中之各張量所對應之距離。
s100‧‧‧卷積神經網路的特徵圖存取方法
s110‧‧‧連接分析步驟
s120‧‧‧層運算步驟
s121‧‧‧快取記憶體檢查步驟
s122‧‧‧距離運算步驟
s123‧‧‧沖洗步驟
s124‧‧‧動態隨機存取記憶體回 寫步驟
430‧‧‧快取記憶體
440‧‧‧動態隨機存取記憶體
450‧‧‧快取記憶體控制器
A、B、C、D、E、F、G、H‧‧‧張量
s125‧‧‧讀取步驟
s126‧‧‧卷積運算步驟
s127‧‧‧快取記憶體儲存步驟
400‧‧‧卷積神經網路的特徵圖存取系統
410‧‧‧查表控制器
420‧‧‧中央處理器
第1圖繪示依照本發明之一實施方式的卷積神經網路的特徵圖存取方法之流程圖;第2圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法之一層運算步驟之流程圖;第3圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法之一實施例之示意圖;第4圖繪示依照第1圖實施方式的卷積神經網路的特徵 圖存取方法之另一實施例之示意圖;以及第5圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法的卷積神經網路的特徵圖存取系統之方塊圖。
以下將參照圖式說明本發明之複數個實施例。為明確說明起見,許多實務上的細節將在以下敘述中一併說明。然而,應瞭解到,這些實務上的細節不應用以限制本發明。也就是說,在本發明部分實施例中,這些實務上的細節是非必要的。此外,為簡化圖式起見,一些習知慣用的結構與元件在圖式中將以簡單示意的方式繪示之;並且重複之元件將可能使用相同的編號表示之。
第1圖繪示依照本發明之一實施方式的卷積神經網路的特徵圖存取方法s100之流程圖,第2圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法s100之一層運算步驟s120之流程圖,第3圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法s100之一實施例之示意圖。由第1圖、第2圖及第3圖可知,卷積神經網路的特徵圖存取方法s100包含連接分析步驟s110以及複數層運算步驟s120。
詳細來說,連接分析步驟s110分析網路以建立卷積神經網路連接表。卷積神經網路連接表包含複數張量(tensor)及複數層運算係數。各張量包含複數特徵圖(feature map)。特徵圖的數量即張量的通道數。各層運算 係數包含步驟指數、至少一輸入操作標籤及輸出操作標籤。步驟指數為層運算步驟s120之處理順序。層運算可為卷積運算、激活(activation)或批量標準化(batch normalization)。至少一輸入操作標籤是張量中之至少一者。輸出操作標籤為張量中之一者。至少一層運算步驟s120根據距離沖洗儲存於快取記憶體430(標示於第5圖)中之至少一張量。距離為至少一層運算步驟與未來層運算步驟之間的步驟間隔。未來層操作步驟的至少一輸入操作標籤與被沖洗之儲存於快取記憶體430中之至少一張量匹配。層運算步驟s120中的至少一者根據層運算係數執行卷積運算步驟s126。至少一張量所對應之距離是根據卷積神經網路連接表被計算。表1為傳統方法的卷積神經網路連接表及傳統快取記憶體運算表。表2為第3圖之卷積神經網路的特徵圖存取方法s100之卷積神經網路連接表及快取記憶體運算表。由表1及表2可知,傳統方法的動態隨機存取記憶體的拜訪次數為9,而第3圖之卷積神經網路的特徵圖存取方法s100的動態隨機存取記憶體440(標示於第5圖)的拜訪次數為1。藉此,卷積神經網路的特徵圖存取方法s100可以優化動態隨機存取記憶體440的拜訪次數以降低動態隨機存取記憶體帶寬功耗,因為動態隨機存取記憶體440的拜訪次數會消耗卷積神經網路的特徵圖存取系統400(標示於第5圖)大部分的動態隨機存取記憶體帶寬功耗。
Figure 108129882-A0101-12-0009-3
Figure 108129882-A0101-12-0009-4
至少一層運算步驟s120根據距離沖洗儲存於快取記憶體430中之至少一張量。被沖洗之儲存於快取記憶體430中之至少一張量對應最大距離,最大距離為儲存於快取記憶體430中之各張量所對應之距離中之最大者。藉此,可優化動態隨機存取記憶體440的拜訪次數以降低動態隨機存取記憶體帶寬功耗。
卷積神經網路的特徵圖存取方法s100的連接分析步驟s110透過分析網路以建立表2之卷積神經網路連接表。為了清楚地描述本發明,在表2的實施例中,快取記憶體430可儲存的張量之張量數為3。然而,在實際的應用 中,儲存於快取記憶體430中的張量之張量數取決於快取記憶體430的容量及特徵圖的數量。
請配合參照第2圖、第3圖及表2,各層運算步驟s120包含快取記憶體檢查步驟s121。快取記憶體檢查步驟s121檢查儲存於快取記憶體430中之張量及儲存於快取記憶體430中之張量的張量數。根據表2,各層運算步驟s120的內容為執行完層運算步驟s120後,快取記憶體430中所儲存的張量。層運算步驟1的快取記憶體檢查步驟s121的執行結果為無張量儲存於快取記憶體430中。層運算步驟2的快取記憶體檢查步驟s121的執行結果為儲存於快取記憶體430中的張量的張量數為2且分別為張量A和張量B。換句話說,層運算步驟2的快取記憶體檢查步驟s121的執行結果可對應表2中層運算步驟1之內容,因為層運算步驟2之快取記憶體檢查步驟s121是於執行完層運算步驟1後執行的。因此,層運算步驟3之快取記憶體檢查步驟s121的執行結果可對應表2之層運算步驟2之內容且儲存於快取記憶體430中之張量的張量數為3。層運算步驟4至層運算步驟6之快取記憶體檢查步驟s121的執行結果與上述方式相同,在此不另贅述。
各層運算步驟s120更包含距離運算步驟s122。距離運算步驟s122根據卷積神經網路連接表及快取記憶體運算表計算儲存於快取記憶體430中之各張量所對應之距離。儲存於快取記憶體430中之各張量所對應之距離符合式(1):
Figure 108129882-A0101-12-0011-5
其中i為層運算步驟i之步驟指數且i是從1到Nj為層運算步驟j之步驟指數,N為層運算步驟之數量,t是儲存於快取記憶體430中之一張量,Tin j 是層運算步驟j之至少一輸入操作標籤所形成之一輸入操作標籤集合。當卷積神經網路連接表中未有層運算步驟j時,dist t (i)=N。藉此,各層運算步驟s120之距離運算步驟s122可透過式(1)計算儲存於快取記憶體430中之各張量所對應之距離以執行各層運算步驟s120之沖洗步驟s123。
由第3圖及表2可知,層運算步驟的數量為6,因此N=6。在層運算步驟1中,層運算步驟1的步驟指數為1。層運算步驟1不執行距離運算步驟s122,因為快取記憶體430中未儲存張量。在層運算步驟3中,層運算步驟3的步驟指數為3。層運算步驟3之距離運算步驟s122根據層運算步驟3之快取記憶體檢查步驟s121的執行結果分別計算張量A、張量B及張量C所對應之距離。詳細來說,張量A、張量B及張量C所對應之距離是根據表2之卷積神經網路連接表進行計算。也就是說,根據式(1),張量A、張量B及張量C所對應之距離為層運算步驟3之步驟指數與張量A、張量B及張量C各別的未來層運算步驟的步驟指數的差值。藉此,在層運算步驟3中,張量A、張量B及張量C所對應的步驟指數為層運算步驟3之步驟指數,即張量A、張量B及張量C的所對應的i為3。另外,根據表2之卷積神經網路連接表,張量A是層運算步驟4之輸入操作標籤,也就是說,張量A的 未來層運算步驟為層運算步驟4,即張量A所對應的j為4。張量C是層運算步驟3之輸入操作標籤,也就是說,張量C的未來層運算步驟為層運算步驟3,即張量C所對應的j為3。藉此,當t為張量A時,dist A (3)=1。當t為張量C時,dist C (3)=0。張量B不是層運算步驟3至層運算步驟6中的輸入操作標籤,也就是說,張量B所對應的j不存在於表2之卷積神經網路連接表中,因此dist B (3)=N。層運算步驟4至層運算步驟6之距離運算步驟s122與上述方式相同,在此不另贅述。
各層運算步驟s120更包含沖洗步驟s123。沖洗步驟s123根據儲存於快取記憶體430中之各張量所對應之距離及卷積神經網路連接表沖洗儲存於快取記憶體430中之至少一張量。被沖洗之儲存於快取記憶體430中之至少一張量所對應之最大距離大於或等於未被沖洗之儲存於快取記憶體430中之各張量所對應之距離。藉此,沖洗步驟s123可根據卷積神經網路連接表沖洗儲存於快取記憶體430中之至少一張量以避免快取記憶體430的容量於執行完各層運算步驟s120後超出。根據表2可知,由於快取記憶體430的容量於執行完層運算步驟1及層運算步驟2後不會超出,因此,層運算步驟1及層運算步驟2不執行沖洗步驟s123。根據層運算步驟3之快取記憶體檢查步驟s121的執行結果可知,張量A、張量B及張量C儲存於快取記憶體430。在層運算步驟3中,如果不執行沖洗步驟s123則快取記憶體430的容量將於執行完層運算步驟3後超出,因為快取記憶體 430的容量可儲存之張量的張量數為3。層運算步驟3的沖洗步驟s123可沖洗儲存於快取記憶體430中至少一張量以避免快取記憶體430的容量超出。根據層步驟運算3的距離運算步驟s122的執行結果可知,張量A、張量B及張量C所對應的距離分別為dist A (3)=1、dist B (3)=N=6及dist C (3)=0。藉此,層運算步驟3之沖洗步驟s123會沖洗張量B,因為張量B所對應之距離大於張量A及張量C所對應之距離。層運算步驟4至層運算步驟6之沖洗步驟s123與上述方式相同,在此不另贅述。另外,當儲存於快取記憶體430中之至少一張量所對應之距離與未被沖洗之儲存於快取記憶體430中之各張量的至少一者所對應之距離相等時,根據先進先出沖洗方式選出儲存於快取記憶體430中之至少一張量。
各層運算步驟s120更包含動態隨機存取記憶體回寫步驟s124。動態隨機存取記憶體回寫步驟s124根據卷積神經網路連接表判斷儲存於快取記憶體430中之至少一張量是否回寫至動態隨機存取記憶體440。當被沖洗之儲存於快取記憶體430中之至少一張量所對應之距離小於N時,被沖洗之儲存於快取記憶體430中之至少一張量於快取記憶體430中被沖洗並回寫至動態隨機存取記憶體440。當被沖洗之儲存於快取記憶體430中之至少一張量所對應之距離等於N時,被沖洗之儲存於快取記憶體430中之至少一張量於快取記憶體430中被沖洗並不回寫至動態隨機存取記憶體440。藉此,卷積神經網路的特徵圖存取方法s100 可優化拜訪動態隨機存取記憶體440的次數以降低動態隨機存取記憶體帶寬功耗。
各層運算步驟s120更包含讀取步驟s125。讀取步驟s125根據卷積神經網路連接表讀取儲存於動態隨機存取記憶體440中之至少另一張量,並將至少另一張量儲存於快取記憶體430中。在第3圖及表2中,張量A為層運算步驟1之輸入操作標籤。然而,層運算步驟1之快取記憶體檢查步驟s121的執行結果為張量A未儲存於快取記憶體430中。張量A是儲存於動態隨機存取記憶體440中。藉此,層運算步驟1之讀取步驟s125讀取儲存於動態隨機存取記憶體440中之張量A,並將張量A儲存至快取記憶體430中以執行層運算步驟1之卷積運算步驟s126,因為張量A為層運算步驟1之卷積運算步驟s126之輸入操作標籤。
各層運算係數更包含卷積核。卷積核及至少一輸入操作標籤被配置為執行卷積運算。卷積運算步驟s126根據卷積核及至少一輸入操作標籤執行卷積運算以計算輸出操作標籤。當至少一輸入操作標籤的數量為複數時,輸入操作標籤沿通道維度相互串接,再執行卷積運算。請配合參照第3圖及表2,於層運算步驟1之卷積運算步驟s126,層運算步驟1透過張量A及卷積核進行卷積運算以計算張量B。在層運算步驟4,至少一輸入操作標籤的數量為2。層運算步驟4之卷積運算步驟s126將張量A與張量D沿通道維度串接後,再與層運算步驟4之卷積核進行卷積運算以計算張量 E。層運算步驟2、層運算步驟3、層運算步驟5及層運算步驟6之卷積運算步驟s126與上述方式相同,在此不另贅述。
各層運算步驟s120更包含快取記憶體儲存步驟s127。快取記憶體儲存步驟s127儲存輸出操作標籤至快取記憶體430。請配合參照第3圖及表2,層運算步驟1之快取記憶體儲存步驟s127將張量B儲存至快取記憶體430中。藉此,層操作步驟1之快取記憶體430的內容為張量A及張量B。層操作步驟2至層操作步驟6之快取記憶體儲存步驟s127與上述方式相同,在此不另贅述。
綜上所述,卷積神經網路的特徵圖存取方法s100透過連接分析步驟s110及層運算步驟s120以優化動態隨機存取記憶體440的拜訪次數及降低動態隨機存取記憶體帶寬功耗。
請配合參照第1圖、第2圖、第4圖及表3,第4圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法s100之另一實施例之示意圖。表3為第4圖之卷積神經網路的特徵圖存取方法s100之卷積神經網路連接表及快取記憶體運算表。卷積神經網路的特徵圖存取方法s100之連接分析步驟s110分析網路以建立表3之卷積神經網路連接表。層運算步驟s120的數量為7,即N=7。另外,快取記憶體430的容量可儲存之張量的張量數為3。然而,快取記憶體430的容量可儲存之張量的張量數為任意正整數,本發明不以此為限。
Figure 108129882-A0101-12-0016-6
在層運算步驟1中,快取記憶體檢查步驟s121的執行結果為無張量儲存於快取記憶體430中。藉此,層運算步驟1不執行距離運算步驟s122、沖洗步驟s123及動態隨機存取記憶體回寫步驟s124,因為快取記憶體430中未儲存任何張量。層運算步驟1之讀取步驟s125從動態隨機存取記憶體440中讀取張量A並將張量A儲存至快取記憶體430中以執行層運算步驟1之卷積運算步驟s126。層運算步驟1之卷積運算步驟s126透過張量A及層運算步驟1之卷積核進行卷積運算以計算張量B。層運算步驟1之快取記憶體儲存步驟s127將張量B儲存至快取記憶體430中。因此,層運算步驟1的內容為二張量儲存於快取記憶體430中且分別為張量A及張量B。於執行完層運算步驟1之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟2。
於層運算步驟2中,層運算步驟2之步驟指數為2。層運算步驟2之快取記憶體檢查步驟s121之執行結果為二張量儲存於快取記憶體430中且分別為張量A及張量B。 根據式(1),張量A及張量B所對應的距離分別為層運算步驟2之步驟指數與張量A及張量B之未來層運算步驟之步驟指數的差值。於層運算步驟2中,張量A及張量B所對應之i為層運算步驟2之步驟指數,即i=2。根據表3之卷積神經網路連接表張量A為層運算步驟3之輸入操作標籤。也就是說,張量A之未來層運算步驟為層運算步驟3,即張量A所對應之j為3。張量B為層運算步驟2之輸入操作標籤。也就是說,張量B之未來層運算步驟為層運算步驟2,即張量B所對應之j為2。藉此,當t為張量A時,dist A (2)=1。當t為張量B時,dist B (2)=0。層運算步驟2不執行沖洗步驟s123,因為根據卷積神蹟網路連接表可知,快取記憶體430之容量於執行完層運算步驟2後不會超出。層運算步驟2不執行動態隨機存取記憶體回寫步驟s124,因為沖洗步驟s123並未於快取記憶體430中沖洗任何張量。層運算步驟2不執行讀取步驟s125,因為卷積運算步驟s126之輸入操作標籤為張量B,而張量B已儲存於快取記憶體430中。層運算步驟2之卷積運算步驟s126透過張量B及層運算步驟2之卷積核進行卷積運算以計算張量C。層運算步驟2之快取記憶體儲存步驟s127將張量C儲存於快取記憶體430中。因此,層運算步驟2之內容為三張量儲存於快取記憶體430中,且分別為張量A、張量B及張量C。於執行完層運算步驟2之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟3。
於層運算步驟3中,層運算步驟3之步驟指數為3。層運算步驟3之快取記憶體檢查步驟s121之執行結果為三張量儲存於快取記憶體430中且分別為張量A、張量B及張量C。層運算步驟3之距離運算步驟s122中,張量A、張量B及張量C所對應之距離分別為層運算步驟3之步驟指數與張量A、張量B及張量C之未來層運算步驟之步驟指數的差值。於層運算步驟3中,張量A、張量B及張量C所對應之i為層運算步驟3之步驟指數,即i=3。根據表3之卷積神經網路連接表及快取記憶體運算表,張量A及張量C為層運算步驟3之輸入操作標籤。也就是說,張量A及張量C所對應之j分別為3。張量B為層運算步驟7之輸入操作標籤。也就是說,張量B所對應之j為7。藉此,當t為張量A時,dist A (3)=0。當t為張量B時,dist B (3)=4。當t為張量C時,dist C (3)=0。由於張量B對應最大距離,因此張量B為儲存於快取記憶體430中被沖洗之張量。藉此,沖洗步驟s123藉由沖洗張量B以避免快取記憶體430於執行完層運算步驟3後超出。然而,張量B所對應之距離小於N,張量B於動態隨機存取記憶體回寫步驟s124中被回寫至動態隨機存取記憶體440中。由於卷積運算步驟s126之輸入操作標籤已儲存於快取記憶體430中,故不執行讀取步驟s125。由於輸入操作標籤的數量為2且分別為張量A及張量C,層運算步驟3之卷積運算步驟s126沿通道維度串接張量A及張量C後,再與層運算步驟3之卷積核進行卷積運算以計算張量D。快取記憶體儲存步驟s127將張量D儲存至快取記憶體430中。因此,層運 算步驟3之內容為三張量儲存於快取記憶體430中且分別為張量A、張量C及張量D。於執行完層運算步驟3之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟4。
於層運算步驟4中,層運算步驟4之步驟指數為4。層運算步驟4之快取記憶體檢查步驟s121之執行結果為三張量儲存於快取記憶體430中且分別為張量A、張量C及張量D。於距離運算步驟s122中,張量A、張量C及張量D所對應之距離分別為層運算步驟4之步驟指數與張量A、張量C及張量D之未來層運算步驟之步驟指數的差值。於層運算步驟4中,張量A、張量C及張量D所對應之i為層運算步驟4之步驟指數,即i=4。根據表3之卷積神經網路連接表及快取記憶體運算表張量D為層運算步驟4之輸入操作標籤。也就是說,張量D所對應之j為4。張量A及張量C不是層運算步驟4至層運算步驟7之輸入操作標籤。也就是說,張量A及張量C所對應之距離分別為N。藉此,當t為張量A時,dist A (4)=N。當t為張量C時,dist C (4) =N。當t為張量D時,dist D (4)=0。在執行完距離運算步驟s122後,張量A所對應之距離與張量C所對應之距離相同,且張量A及張量C所對應之距離皆大於張量D所對應之距離。然而,張量A相較於張量C較早儲存於快取記憶體430中,因此沖洗步驟s123根據先進先出沖洗方法於快取記憶體430中沖洗張量A。由於張量A所對應的距離等於N,動態隨機存取記憶體回寫步驟s124不將張量A回寫至動態隨機存取記憶體440中。由於卷 積運算步驟s126之輸入操作標籤已儲存於快取記憶體430中,故不執行讀取步驟s125。卷積運算步驟s126透過張量D及層運算步驟4之卷積核進行卷積運算以計算張量E。快取記憶體儲存步驟s127將張量E儲存至快取記憶體430中。因此,層運算步驟4之內容為三張量儲存於快取記憶體430中且分別為張量C、張量D及張量E。於執行完層運算步驟4之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟5。
於層運算步驟5中,層運算步驟5之步驟指數為5。快取記憶體檢查步驟s121之執行結果為三張量儲存於快取記憶體430中且分別為張量C、張量D及張量E。於距離運算步驟s122中,張量C、張量D及張量E所對應之距離分別為層運算步驟5之步驟指數與張量C、張量D及張量E之未來層運算步驟之步驟指數的差值。於層運算步驟5中,張量C、張量D及張量E所對應之i為層運算步驟5之步驟指數,即i=5。根據表3之卷積神經網路連接表及快取記憶體運算表,張量E為層運算步驟5之輸入操作標籤。也就是說,張量E所對應之j為5。張量D為層運算步驟6之輸入操作標籤。也就是說,張量D所對應之j為6。張量C不是層運算步驟5至層運算步驟7之輸入操作標籤。也就是說,張量C所對應之距離為N。藉此,當t為張量C時,dist C (5)=N。當t為張量D時,dist D (5)=1。當t為張量E時,dist E (5)=0。由於張量C對應最大距離,沖洗步驟s123沖洗張量C以避免快取記憶體430於執行完層運算步驟5後超出。由於張量C所對應的距離 等於N,因此不執行動態隨機存取記憶體回寫步驟s124。由於卷積運算步驟s126之輸入操作標籤已儲存於快取記憶體430中,故不執行讀取步驟s125。卷積運算步驟s126透過張量E及層運算步驟5之卷積核進行卷積運算以計算張量F。快取記憶體儲存步驟s127將張量F儲存至快取記憶體430中。因此,層運算步驟5之內容為三張量儲存於快取記憶體430中且分別為張量D、張量E及張量F。於執行完層運算步驟5之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟6。
於層運算步驟6中,層運算步驟6之步驟指數為6。快取記憶體檢查步驟s121之執行結果為三張量儲存於快取記憶體430中且分別為張量D、張量E及張量F。於距離運算步驟s122中,張量D、張量E及張量F所對應之距離分別為層運算步驟6之步驟指數與張量D、張量E及張量F之未來層運算步驟之步驟指數的差值。於層運算步驟6中,張量D、張量E及張量F所對應之i為層運算步驟6之步驟指數,即i=6。根據表3之卷積神經網路連接表及快取記憶體運算表,張量D及張量F為層運算步驟6之輸入操作標籤。也就是說,張量D及張量F所對應之j為6。張量E不是層運算步驟6及層運算步驟7之輸入操作標籤。也就是說,張量E所對應之距離為N。藉此,當t為張量D時,dist D (6)=0。當t為張量E時,dist E (6)=N。當t為張量F時,dist F (6)=0。由於張量E所對應之距離大於張量D及張量F所對應之距離,層運算步驟6之沖洗步驟s123沖洗張量E。由於張量E所對應的距離 不小於N,因此不執行動態隨機存取記憶體回寫步驟s124。由於層運算步驟6之卷積運算步驟s126之輸入操作標籤已儲存於快取記憶體430中,故不執行讀取步驟s125。由於輸入操作標籤的數量為2且分別為張量D及張量F,層運算步驟6之卷積運算步驟s126沿通道維度串接張量D及張量F後,再與層運算步驟6之卷積核進行卷積運算以計算張量G。快取記憶體儲存步驟s127將張量G儲存至快取記憶體430中。因此,層運算步驟6之內容為三張量儲存於快取記憶體430中且分別為張量D、張量F及張量G。於執行完層運算步驟6之快取記憶體儲存步驟s127後,卷積神經網路的特徵圖存取方法s100開始執行層運算步驟7。
於層運算步驟7中,層運算步驟7之步驟指數為7。快取記憶體檢查步驟s121之執行結果為三張量儲存於快取記憶體430中且分別為張量D、張量F及張量G。於距離運算步驟s122中,張量D、張量F及張量G所對應之距離分別為層運算步驟7之步驟指數與張量D、張量F及張量G之未來層運算步驟之步驟指數的差值。於層運算步驟7中,張量D、張量F及張量G所對應之i為層運算步驟7之步驟指數,即i=7。根據表3之卷積神經網路連接表及快取記憶體運算表,張量D及張量F不是層運算步驟7之輸入操作標籤。也就是說,張量D及張量F所對應之距離分別為N。張量G為層運算步驟7的輸入操作標籤的其中一者。也就是說,張量D所對應的j為7。藉此,當t為張量D時,dist D (7)=N。當t為張量F時,dist F (7)=N。當t為張量G時,dist G (7)=0。然而, 層運算步驟7之卷積運算步驟s126的輸入操作標籤更包含張量B,且張量B並未儲存於快取記憶體430中。因此,沖洗步驟s123必須沖洗儲存在快取記憶體430中的二張量,以儲存張量B及層運算步驟7之輸出操作標籤,進而避免快取記憶體430於執行完層運算步驟7後超出。由於張量D及張量F所對應的距離分別大於張量G所對應之距離,因此沖洗步驟s123沖洗儲存於快取記憶體430中之張量D及張量F。由於張量D及張量F所對應的距離等於N,因此不執行動態隨機存取記憶體回寫步驟s124。讀取步驟s125從動態隨機存取記憶體440中讀取張量B,並將張量B儲存至快取記憶體430中。張量B是於在層運算步驟3時被回寫至動態隨機存取記憶體440中。由於輸入操作標籤的數量為2且分別為張量B及張量G,卷積運算步驟s126沿通道維度串接張量B及張量G後,再與層運算步驟7之卷積核進行卷積運算以計算張量H。快取記憶體儲存步驟s127將張量H儲存至快取記憶體430中。因此,層運算步驟7之內容為三張量儲存於快取記憶體430中且分別為張量B、張量G及張量H。藉此,卷積神經網路的特徵圖存取方法s100可透過連接分析步驟s110及層運算步驟s120以優化動態隨機存取記憶體440的拜訪次數及降低動態隨機存取記憶體帶寬功耗。
第5圖繪示依照第1圖實施方式的卷積神經網路的特徵圖存取方法s100的卷積神經網路的特徵圖存取系統400之方塊圖。由第5圖可知,卷積神經網路的特徵圖存 取系統400包含查表控制器410、中央處理器420、快取記憶體430及動態隨機存取記憶體440。
詳細來說,查表控制器410執行連接分析步驟s110以建立卷積神經網路連接表。中央處理器420執行層運算步驟s120。快取記憶體430電性連接中央處理器420,並執行層運算步驟s120。動態隨機存取記憶體440電性連接快取記憶體430,並執行動態隨機存取記憶體回寫步驟s124。換句話說,卷積神經網路的特徵圖存取系統400透過查表控制器410以分析網路並建立卷積神經網路連接表。卷積神經網路連接表包含複數張量及複數層運算係數。各層運算係數包含至少一輸入操作標籤及輸出操作標籤。至少一輸入操作標籤為張量中之至少一者。輸出操作標籤為張量中之一者。中央處理器420根據卷積神經網路連接表執行層運算步驟s120。在各層運算步驟s120之距離運算步驟s122中,中央處理器420透過式(1)計算儲存於快取記憶體430中之各張量所對應之距離。在各層運算步驟s120之沖洗步驟s123中,中央處理器420根據卷積神經網路連接表判斷是否沖洗儲存於快取記憶體430中之至少一張量。當中央處理器420判斷須從快取記憶體430中沖洗至少一張量時,中央處理器420產生沖洗指令。快取記憶體430根據沖洗指令沖洗儲存於快取記憶體430中之至少一張量。在動態隨機存取記憶體回寫步驟s124中,中央處理器420根據卷積神經網路連接表判斷是否將儲存於快取記憶體430中之至少一張量回寫至動態隨機存取記憶體440中。當中央處理器420判斷須將儲 存於快取記憶體430中之至少一張量回寫至動態隨機存取記憶體440中時,中央處理器420產生動態隨機存取記憶體儲存指令。被沖洗之至少一張量是根據動態隨機存取記憶體儲存指令被回寫至動態隨機存取記憶體440中。在讀取步驟s125中,中央處理器420根據卷積神經網路連接表判斷快取記憶體430是否讀取並儲存動態隨機存取記憶體440中之至少另一張量。當中央處理器420判斷須讀取動態隨機存取記憶體440中之至少另一張量時,中央處理器420產生讀取指令。快取記憶體430根據讀取指令讀取並儲存動態隨機存取記憶體440中之至少另一張量。在卷積運算步驟s126中,中央處理器420根據卷積神經網路連接表計算各層運算步驟s120之輸出操作標籤。在快取記憶體儲存步驟s127中,中央處理器420產生快取記憶體儲存指令。快取記憶體430根據快取記憶體儲存指令儲存各層運算步驟s120之輸出操作標籤。
卷積神經網路的特徵圖存取系統400更包含快取記憶體控制器450。快取記憶體控制器450電性連接快取記憶體430及中央處理器420。快取記憶體控制器450被配置為發送沖洗指令及快取記憶體儲存指令至快取記憶體430以執行沖洗步驟s123及快取記憶體儲存步驟s127。詳細來說,快取記憶體控制器450接收來自中央處理器420所發出之沖洗指令、動態隨機存取記憶體儲存指令、讀取指令及快取記憶體儲存指令並發送至快取記憶體430以執行層運算步驟s120。
各層運算步驟s120之距離運算步驟s122及沖洗步驟s123與上述方式相同,在此不另贅述。
綜上所述,卷積神經網路的特徵圖存取系統400透過查表控制器410執行連接分析步驟s110以建立卷積神經網路連接表。卷積神經網路的特徵圖存取系統400透過中央處理器420根據卷積神經網路連接表執行層運算步驟s120以優化動態隨機存取記憶體440的拜訪次數。藉此,可降低卷積神經網路的特徵圖存取系統400之動態隨機存取記憶體帶寬功耗。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明的精神和範圍內,當可作各種的更動與潤飾,因此本發明的保護範圍當視後附的申請專利範圍所界定者為準。
s100‧‧‧卷積神經網路的特徵圖存取方法
s110‧‧‧連接分析步驟
s120‧‧‧層運算步驟

Claims (16)

  1. 一種卷積神經網路的特徵圖存取方法,包含:一連接分析步驟,分析一網路以建立一卷積神經網路連接表,該卷積神經網路連接表包含:複數張量,各該張量包含複數特徵圖並對應一距離;及複數層運算係數,各該層運算係數包含:一步驟指數,為一層運算步驟之一處理順序;至少一輸人操作標籤,為該些張量中之至少一者;及一輸出操作標籤,為該些張量中之一者;以及複數該層運算步驟,其中至少一該層運算步驟根據該距離沖洗儲存於一快取記憶體中之至少一該張量,該距離為至少一該層運算步驟與一未來層運算步驟之間的步驟間隔,該未來層運算步驟之該至少一輸人操作標籤與至少一該張量匹配,且該些層運算步驟中之至少一者根據該些層運算係數執行一卷積運算步驟,並根據該卷積神經網路連接表計算至少一該張量所對應之該距離。
  2. 如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法,其中被沖洗之儲存於該快取記憶體中 之至少一該張量對應一最大距離,該最大距離為儲存於該快取記憶體中之各該張量所對應之該距離中的最大者。
  3. 如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟包含:一快取記憶體檢查步驟,檢查儲存於該快取記憶體中之該些張量及儲存於該快取記憶體中之該些張量之一張量數。
  4. 如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟包含:一距離運算步驟,根據該卷積神經網路連接表計算儲存於該快取記憶體中之各該張量所對應之該距離,其中,儲存於該快取記憶體中之各該張量所對應之該距離符合下式:
    Figure 108129882-A0305-02-0031-1
    其中i為該層運算步驟i之該步驟指數且i是從1到Nj為該層運算步驟j之該步驟指數,N為該層運算步驟之數量,t是儲存於該快取記憶體中之一該張量,Tin j 是該層運算步驟j之該至少一輸入操作標籤所形成之一輸入操作標籤集合。
  5. 如申請專利範圍第4項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟更包含:一沖洗步驟,根據儲存於該快取記憶體中之各該張量所對應之該距離及該卷積神經網路連接表沖洗儲存於該快取記憶體中之至少一該張量,其中被沖洗之儲存於該快取記憶體中之至少一該張量所對應之一最大距離大於或等於未被沖洗之儲存於該快取記憶體中之各該張量所對應之該距離。
  6. 如申請專利範圍第5項所述之卷積神經網路的特徵圖存取方法,其中當儲存於該快取記憶體中之至少一該張量所對應之該距離與未被沖洗之儲存於該快取記憶體中之各該張量的至少一者所對應之該距離相等時,根據一先進先出沖洗方式選出儲存於該快取記憶體中之至少一該張量。
  7. 如申請專利範圍第5項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟更包含:一動態隨機存取記憶體回寫步驟,根據該卷積神經網路連接表判斷儲存於該快取記憶體中之至少一該張量是否回寫至一動態隨機存取記憶體; 其中,於該動態隨機存取記憶體回寫步驟時,當被沖洗之儲存於該快取記憶體中之至少一該張量所對應之該距離小於N時,被沖洗之儲存於該快取記憶體中之至少一該張量於該快取記憶體中被沖洗,並回寫至該動態隨機存取記憶體。
  8. 如申請專利範圍第7項所述之卷積神經網路的特徵圖存取方法,其中於該動態隨機存取記憶體回寫步驟時,當被沖洗之儲存於該快取記憶體中之至少一該張量所對應之該距離等於N時,被沖洗之儲存於該快取記憶體中之至少一該張量於該快取記憶體中被沖洗,並不回寫至該動態隨機存取記憶體。
  9. 如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟包含:一讀取步驟,根據該卷積神經網路連接表讀取儲存於一動態隨機存取記憶體中之至少另一張量,並將該至少另一張量儲存於該快取記憶體中。
  10. 如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法,其中該層運算係數更包含: 一卷積核,其中該卷積核及該至少一輸入操作標籤被配置為執行一卷積運算。
  11. 如申請專利範圍第10項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟包含:一卷積運算步驟,根據該卷積核及該至少一輸入操作標籤執行該卷積運算以產生該輸出操作標籤,其中當該至少一輸入操作標籤的數量為複數時,該些輸入操作標籤沿一通道維度相互串接,再執行該卷積運算。
  12. 如申請專利範圍第11項所述之卷積神經網路的特徵圖存取方法,其中至少一該層運算步驟更包含:一快取記憶體儲存步驟,儲存該輸出操作標籤至該快取記憶體。
  13. 一種應用如申請專利範圍第1項所述之卷積神經網路的特徵圖存取方法之卷積神經網路的特徵圖存取系統,包含:一查表控制器,執行該連接分析步驟以建立該卷積神經網路連接表;一中央處理器,執行該些層運算步驟; 該快取記憶體,電性連接該中央處理器,並執行該些層運算步驟;以及一動態隨機存取記憶體,電性連接該快取記憶體,並執行一動態隨機存取記憶體回寫步驟。
  14. 如申請專利範圍第13項所述之卷積神經網路的特徵圖存取系統,更包含:一快取記憶體控制器,電性連接該快取記憶體及該中央處理器,該快取記憶體控制器被配置為發送一沖洗指令及一快取記憶體儲存指令至該快取記憶體。
  15. 如申請專利範圍第13項所述之卷積神經網路的特徵圖存取系統,其中至少一該層運算步驟包含:一距離運算步驟,根據該卷積神經網路連接表計算儲存於該快取記憶體中之各該張量所對應之該距離,其中,儲存於該快取記憶體中之各該張量所對應之該距離符合下式:
    Figure 108129882-A0305-02-0035-3
    其中i為該層運算步驟i之該步驟指數且i是從1到Nj為該層運算步驟j之該步驟指數,N為該層運算步驟之數量,t是儲存於該快取記憶體中之一該張量,Tin j 是該層運 算步驟j之該至少一輸入操作標籤所形成之一輸入操作標籤集合。
  16. 如申請專利範圍第15項所述之卷積神經網路的特徵圖存取系統,其中至少一該層運算步驟更包含:一沖洗步驟,根據儲存於該快取記憶體中之各該張量所對應之該距離及該卷積神經網路連接表,沖洗儲存於該快取記憶體中之至少一該張量,其中被沖洗之儲存於該快取記憶體中之至少一該張量所對應之一最大距離大於或等於未被沖洗之儲存於該快取記憶體中之各該張量所對應之該距離。
TW108129882A 2018-08-21 2019-08-21 卷積神經網路的特徵圖存取方法及其系統 TWI718634B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862720335P 2018-08-21 2018-08-21
US62/720,335 2018-08-21
US16/543,645 2019-08-19
US16/543,645 US11782839B2 (en) 2018-08-21 2019-08-19 Feature map caching method of convolutional neural network and system thereof

Publications (2)

Publication Number Publication Date
TW202024925A TW202024925A (zh) 2020-07-01
TWI718634B true TWI718634B (zh) 2021-02-11

Family

ID=69584631

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108129882A TWI718634B (zh) 2018-08-21 2019-08-21 卷積神經網路的特徵圖存取方法及其系統

Country Status (2)

Country Link
US (1) US11782839B2 (zh)
TW (1) TWI718634B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103304A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with plurality of selectable output functions
US9665799B1 (en) * 2016-01-29 2017-05-30 Fotonation Limited Convolutional neural network
TW201818264A (zh) * 2016-11-14 2018-05-16 耐能股份有限公司 緩衝裝置及卷積運算裝置與方法
TW201818301A (zh) * 2016-11-14 2018-05-16 美商耐能股份有限公司 卷積運算裝置及卷積運算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102499396B1 (ko) * 2017-03-03 2023-02-13 삼성전자 주식회사 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법
US11775313B2 (en) * 2017-05-26 2023-10-03 Purdue Research Foundation Hardware accelerator for convolutional neural networks and method of operation thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103304A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with plurality of selectable output functions
US9665799B1 (en) * 2016-01-29 2017-05-30 Fotonation Limited Convolutional neural network
TW201818264A (zh) * 2016-11-14 2018-05-16 耐能股份有限公司 緩衝裝置及卷積運算裝置與方法
TW201818301A (zh) * 2016-11-14 2018-05-16 美商耐能股份有限公司 卷積運算裝置及卷積運算方法

Also Published As

Publication number Publication date
US20200065250A1 (en) 2020-02-27
US11782839B2 (en) 2023-10-10
TW202024925A (zh) 2020-07-01

Similar Documents

Publication Publication Date Title
US10963394B2 (en) System and method for optimizing performance of a solid-state drive using a deep neural network
US11068409B2 (en) Method and system for user-space storage I/O stack with user-space flash translation layer
US20080086599A1 (en) Method to retain critical data in a cache in order to increase application performance
JP6212217B2 (ja) 機械学習における重みの生成
US20190243609A1 (en) Method and processing apparatus for performing arithmetic operation
US20140143493A1 (en) Bypassing a Cache when Handling Memory Requests
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
KR20120123127A (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
JP6339987B2 (ja) キャッシュメモリ・システム及びその動作方法
US20190155740A1 (en) Semiconductor device and cache memory control method for reducing power consumption
WO2019019926A1 (zh) 系统参数的优化方法、装置及设备、可读介质
US10733498B1 (en) Parametric mathematical function approximation in integrated circuits
TWI775210B (zh) 用於卷積運算的資料劃分方法及處理器
US20140330796A1 (en) Compressed pointers for cell structures
US10353829B2 (en) System and method to account for I/O read latency in processor caching algorithms
TWI718634B (zh) 卷積神經網路的特徵圖存取方法及其系統
US20140281246A1 (en) Instruction boundary prediction for variable length instruction set
WO2021119907A1 (en) Technology to mininimize negative impact of cache conflicts caused by incompatible leading dimensions in matrix multiplication and convolution kernels without dimension padding
US10997077B2 (en) Increasing the lookahead amount for prefetching
US11275683B2 (en) Method, apparatus, device and computer-readable storage medium for storage management
JP7013360B2 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2015172718A1 (zh) 在存储器中进行多访问的方法、装置和存储系统
US20210117100A1 (en) Hybrid first-fit k-choice insertions for hash tables, hash sets, approximate set membership data structures, and caches
US10942859B2 (en) Computing system and method using bit counter
WO2024045175A1 (en) Optimization of executable graph for artificial intelligence model inference