TWI888194B - 深度學習加速器與深度學習加速方法 - Google Patents
深度學習加速器與深度學習加速方法 Download PDFInfo
- Publication number
- TWI888194B TWI888194B TW113123637A TW113123637A TWI888194B TW I888194 B TWI888194 B TW I888194B TW 113123637 A TW113123637 A TW 113123637A TW 113123637 A TW113123637 A TW 113123637A TW I888194 B TWI888194 B TW I888194B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- path
- processing element
- element array
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
深度學習加速器包含控制器電路、處理元件陣列電路與記憶體存取電路。控制器電路根據流量資料產生控制訊號。處理元件陣列電路運行神經網路模型。神經網路模型中的一層運算包含第一與第二路徑。處理元件陣列電路更根據控制訊號選擇第一與第二路徑中的對應路徑,以經由對應路徑執行該層運算。處理元件陣列電路經由記憶體存取電路存取記憶體電路以執行該層運算。當該層運算經由第一路徑執行時,處理元件陣列電路以第一頻寬存取記憶體電路。當該層運算經由第二路徑執行時,處理元件陣列電路以第二頻寬存取記憶體電路,且第一頻寬高於第二頻寬。
Description
本案是關於深度學習加速器,尤其是可根據系統忙碌程度來適應性選擇合適的運算路徑的深度學習加速器與其深度學習加速方法。
現有的深度學習加速器都是以預設的操作條件來運行神經網路模型,而未有考量整體系統的當前忙碌程度。在現有技術中,為了確保整體系統具有一定效能,會在設計階段考量整體系統的可能最高忙碌程度(即操作於最壞情形下)來設計並配置相應的深度學習加速器與神經網路模型。如此,深度學習加速器與相對應的神經網路模型可能會被過度設計且仍無法根據系統當前的忙碌程度進行適應性的調整。
於一些實施態樣中,本案的目的之一為(但不限於)提供可根據系統忙碌程度來適應性選擇合適的運算路徑的深度學習加速器與其深度學習加速方法,以改善先前技術的不足。
於一些實施態樣中,深度學習加速器包含控制器電路、處理元件陣列電路以及記憶體存取電路。控制器電路用以根據一流量資料產生一控制訊號。處理元件陣列電路用以運行一神經網路模型。其中該神經網路模型中的一層運算包含一第一路徑與一第二路徑,該處理元件陣列電路更用以根據該控制訊號選擇該第一路徑與該第二路徑中的一對應路徑,以經由該對應路徑執行該層運算。該處理元件陣列電路經由該記憶體存取電路存取一記憶體電路以執行該層運算。當該處理元件陣列電路經由該第一路徑執行該層運算時,該處理元件陣列電路以一第一存取頻寬存取該記憶體電路,當該處理元件陣列電路經由該第二路徑執行該層運算時,該處理元件陣列電路是以一第二存取頻寬存取該記憶體電路,且該第一存取頻寬高於該第二存取頻寬。
於一些實施態樣中,深度學習加速方法包含下列操作:根據一流量資料產生一控制訊號;以及藉由一處理元件陣列電路根據該控制訊號存取一記憶體電路以運行一神經網路模型,其中該神經網路模型的一層運算包含一第一路徑與一第二路徑,該處理元件陣列電路用以根據該控制訊號選擇該第一路徑與該第二路徑中的一對應路徑以經由該對應路徑執行該層運算,當該層運算是經由該第一路徑執行時,該處理元件陣列電路是以一第一存取頻寬存取該記憶體電路,當該層運算是經由該第二路徑執行該層運算時,該處理元件陣列電路是以一第二存取頻寬存取該記憶體電路,且該第一存取頻寬高於該第二存取頻寬。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本文所使用的所有詞彙具有其通常的意涵。上述之詞彙在普遍常用之字典中之定義,在本案的內容中包含任一於此討論的詞彙之使用例子僅為示例,不應限制到本案之範圍與意涵。同樣地,本案亦不僅以於此說明書所示出的各種實施例為限。
關於本文中所使用之『耦接』或『連接』,均可指二或多個元件相互直接作實體或電性接觸,或是相互間接作實體或電性接觸,亦可指二或多個元件相互操作或動作。如本文所用,用語『電路系統(circuitry)』可為由一或多個電路所實施的特定系統,且用語『電路(circuit)』可為由至少一個電晶體與/或至少一個主被動元件按一定方式連接以處理訊號的裝置。
如本文所用,用語『與/或』包含了列出的關聯項目中的一個或多個的任何組合。在本文中,使用第一、第二與第三等等之詞彙,是用於描述並辨別各個元件。因此,在本文中的第一元件也可被稱為第二元件,而不脫離本案的本意。為易於理解,於各圖式中的類似元件將被指定為相同標號。
圖1A為根據本案一些實施例繪製一種深度學習加速器100的示意圖。在一些實施例中,深度學習加速器100可適用於涉及神經網路模型與/或人工智慧模型等相關應用,但本案並不以此為限。
深度學習加速器100包含控制器電路110、處理元件(processing elements)陣列電路120、緩衝器電路130以及記憶體存取電路140。控制器電路110用以根據流量資料TD產生控制訊號SC。在一些實施例中,控制器電路110可由具有運算能力的數位控制電路與/或微處理器電路實施,但本案並不以此為限。在一些實施例中,記憶體存取電路140可由直接記憶體存取(direct memory access, DMA)電路實施,但本案並不以此為限。
處理元件陣列電路120用以運行一神經網路模型,以經由該神經網路模型處理經控制器電路110指派的一任務。在一些實施例中,處理元件陣列電路包含多個處理元件(processing elements),其中每一個處理元件可包含,但不限於,負責各種算術與/或邏輯操作的計算電路、用於暫存資料的暫存器電路、用於解析命令的控制電路等等相關電路。關於前述的神經網路模型的設置方式將於後參照圖2說明。
記憶體存取電路140可自記憶體電路100A接收執行任務所需的資料,並將此資料分批地儲存到緩衝器電路130。處理元件陣列電路120可自緩衝器電路130依序讀出該資料,並經由該神經網路模型根據該資料執行相關的運算,並將所得到的運算結果儲存到緩衝器電路130。如此,記憶體存取電路140可將儲存在緩衝器電路130的該運算結果儲存到記憶體電路100A。在一些實施例中,緩衝器電路130可用於暫存處理元件陣列電路120在執行運算時所產生的中間資料。在一些實施例中,緩衝器電路130可為,但不限於,靜態隨機存取記憶體電路。在一些實施例中,記憶體電路100A可為動態隨機存取記憶體電路。
在一些實施例中,深度學習加速器100可與其他系統整合,並與該系統中的其他電路或模組共用該記憶體電路100A。在一些實施例中,流量資料TD可由該系統中的其他電路(例如包含,但不限於,處理器或記憶體電路100A的記憶體控制器)提供。在一些實施例中,流量資料TD可用於指示系統忙碌程度。例如,若記憶體電路100A的當前可用存取頻寬過低或是尚未完成(outstanding)的請求數量過高,代表系統忙碌程度較高。於此條件下,流量資料TD的數值將較高。或者,若記憶體電路100A的當前可用存取頻寬較高或是尚未完成的請求數量較少,代表系統忙碌程度較低。於此條件下,流量資料TD的數值將較低。控制器電路110可根據流量資料TD得知當前的系統忙碌程度(並據此預測系統將在未來一段時間內可能具有相近的忙碌程度),並產生相應的控制訊號SC,以使得處理元件陣列電路120可相應地調整神經網路模型所使用的運算路徑。深度學習加速器100可根據當前的系統忙碌程度調整深度學習加速器100(或處理元件陣列電路120)對記憶體電路100A的存取頻寬與/或發出的請求數量,從而動態地釋放記憶體電路100A的資源給系統中的其他電路使用,以改善整體系統的效能。
圖1B為根據本案一些實施例繪製一種深度學習加速器105的示意圖。相較於圖1A的深度學習加速器100,在此例中,深度學習加速器105更包含流量監測電路150,且流量資料TD包含流量資料D1與流量資料D2,其中流量資料D1為來自系統其他電路所提供的流量資訊(相當於圖1A中的流量資料TD)。流量監測電路150耦接至記憶體存取電路140,並可根據記憶體存取電路140與記憶體電路100A之間的資料存取產生流量資料D2。控制器電路110可根據流量資料D1與流量資料D2評估系統忙碌程度。在一些實施例中,流量資料D2其可用於指示處理元件陣列電路120對記憶體電路100A的存取流量資訊。在一些實施例中,流量監測電路150可僅接收流量資料D2,但本案並不以此為限。
在一些實施例中,流量監測電路150可藉由量測記憶體存取電路140存取記憶體電路100A的平均延遲時間來產生流量資料D2。在一些實施例中,控制器電路110可根據流量資料D2預測系統的未來忙碌程度,並據此產生控制訊號SC。一般而言,當前述平均延遲時間越長,整體系統的忙碌程度高。在一些實施例中,流量監測電路150的實施方式可參考美國專利公開案(US20230396552A1)中的流量排程電路系統120,但本案並不以此為限。
圖2為根據本案一些實施例繪製圖1A或圖1B中的處理元件陣列電路120所運行的神經網路模型200的示意圖。在一些實施例中,處理元件陣列電路120所運行的神經網路模型200為多分支共享權重神經網路模型(multi-branch shared-weights neural network model),其包含多層運算,且每層運算包含多個分支路徑。
例如,神經網路模型200包含第1層運算L1、第2層運算L2以及第3層運算L3。在一些實施例中,這些層運算可用來執行神經網路模型200的相關運算,例如包含但不限於,卷積(convolution)運算、浮點數運算、矩陣乘法運算、激勵函數(activation function)運算、池化(pooling)運算等等。第1層運算L1包含路徑P11與路徑P12,第2層運算L2包含路徑P21與路徑P22,且第3層運算L3包含路徑P31與路徑P32。處理元件陣列電路120可根據控制訊號SC自第一路徑與第二路徑中選擇一對應路徑,以經由該對應路徑執行一對應層運算。在一些實施例中,第一路徑(包含路徑P11、路徑P21以及路徑P31)對應於頂線(roofline)模型中的記憶體界限(memory bound)區,且第二路徑(包含路徑P12、路徑P22以及路徑P32)對應於頂線模型中的計算界限(computation bound)區。關於頂線模型、記憶體界限區以及計算界限區的相關內容將於後參照圖3A與圖3B說明。
當處理元件陣列電路120經由第一路徑(例如為路徑P21)執行對應層運算(例如為第2層運算)時,處理元件陣列電路120是以第一存取頻寬存取記憶體電路100A。當處理元件陣列電路120經由第二路徑(例如為路徑P22)執行該對應層運算時,處理元件陣列電路120是以第二存取頻寬存取記憶體電路100A。在一些實施例中,第一存取頻寬高於第二存取頻寬。換句話說,若處理元件陣列電路120根據控制訊號SC選擇使用路徑P21來執行第2層的運算,處理元件陣列電路120將以較高的第一存取頻寬來存取記憶體電路100A。或者,若處理元件陣列電路120根據控制訊號SC選擇使用路徑P22來執行第2層的運算,處理元件陣列電路120將以較低的第二存取頻寬來存取記憶體電路100A。在一些實施例中,本文所提及的『存取頻寬』的單位可為位元組每秒(byte/sec),但本案並不以此為限。
詳細而言,如圖2所示,在第一階段,處理元件陣列電路120可按照預設設定而選擇使用路徑P11來執行第1層運算L1。在第二階段,控制器電路110根據流量資料TD所指示的系統忙碌程度確認系統忙碌程度大於臨界值TH。於此條件下,控制器電路110將據此輸出相應的控制訊號SC,以控制處理元件陣列電路120選擇路徑P22為前述的對應路徑,以經由該對應路徑執行第2層運算L2。如此,處理元件陣列電路120將以較低的第二存取頻寬來存取記憶體電路100A並執行第2層運算L2,從而將記憶體電路100A的存取頻寬釋放給系統中的其他電路使用。在一些實施例中,臨界值TH可在離線化設計階段設定,並儲存於控制器電路110中的記憶體或暫存器(未示出),但本案並不以此為限。
接著,在第三階段,控制器電路110根據流量資料TD確認系統忙碌程度不大於臨界值TH。於此條件下,控制器電路110將據此輸出相應的控制訊號SC,以控制處理元件陣列電路120選擇路徑P31為前述的對應路徑,以經由該對應路徑執行第3層運算L3。如此,處理元件陣列電路120將以較高的第一存取頻寬來存取記憶體電路100A並執行第3層運算L3,以提高運算效能。
在一些實施例中,控制器電路110更根據流量資料TD調整處理元件陣列電路120對記憶體電路100A的存取頻寬。例如,控制器電路110處理元件陣列電路120可調整處理元件陣列電路120經由記憶體存取電路140對記憶體電路100A發出的尚未完成的請求數量上限,從而調整處理元件陣列電路120對記憶體電路100A的存取頻寬。例如,如圖2所示,在第一階段中,處理元件陣列電路120可按照預設設定而將前述的尚未完成的請求數量上限設定為8。在第二階段中,控制器電路110根據流量資料TD確認系統忙碌程度大於臨界值TH。於此條件下,控制器電路110將據此輸出相應的控制訊號SC,以將前述的尚未完成的請求數量上限降低為4(相當於降低處理元件陣列電路120對記憶體電路100A的存取頻寬)。在第三階段中,控制器電路110根據流量資料TD確認系統忙碌程度不大於臨界值TH。於此條件下,控制器電路110將據此輸出相應的控制訊號SC,以將前述的尚未完成的請求數量上限提高為16(相當於提高處理元件陣列電路120對記憶體電路100A的存取頻寬)。
換言之,當系統忙碌程度過高時,控制器電路110會限制處理元件陣列電路120對記憶體電路100A的存取頻寬,以讓系統中的其他電路可使用到記憶體電路100A的資源。或者,當系統忙碌程度不高時,控制器電路110會放寬處理元件陣列電路120對記憶體電路100A的存取頻寬,以提高處理元件陣列電路120的運算效能。關於調整尚未完成的請求數量上限與存取頻寬的相關說明將於後參照圖4說明。上述的相關數值僅用於示例,且本案並不以此為限。例如,在不同實施例中,依據實際應用需求,神經網路模型200中的多層運算數量可不限於3,且每一層運算的路徑數量可不限於2。
圖3A為根據本案一些實施例繪製關於圖2的第二階段的路徑選擇之頂線模型的示意圖。頂線模型為性能分析模型,其可用來分析深度學習加速器100對於記憶體存取頻寬的需求以及記憶體存取頻寬對運算性能的影響。例如,如圖3A所示,縱軸用於指示可達到的效能,其單位為每秒10億次的浮點運算(giga Floating Point Operations Per Second, GFLOPS),而橫軸用於指示運算強度,其單位為每傳輸一個位元組(byte)所能執行的浮點運算次數(標示為FLOPS/byte)。在頂線模型中,在脊點(ridge point)RP前的區域為記憶體界限區MB,在脊點RP後的區域為計算界限區CB。當深度學習加速器100的運算強度落在記憶體界限區MB時,深度學習加速器100的效能主要受到記憶體電路100A的存取頻寬(相當於記憶體界限區MB的線段之斜率)限制。換言之,在記憶體界限區MB中所執行的相關運算對於跟記憶體電路100A交換資料(包含寫入和讀出資料)的需求較高,使得記憶體電路100A的操作速度與存取頻寬在此條件下成為整體系統的性能瓶頸。當深度學習加速器100的運算強度落在計算界限區CB時,深度學習加速器100的效能主要受到處理元件陣列電路120(與/或系統處理器)的計算能力的限制。換言之,在計算界限區CB中所執行的相關運算屬於密集型算並對記憶體電路100A的存取需求相對較低,使得處理元件陣列電路120(與/或系統處理器)的計算速度在此條件下成為整體系統的性能瓶頸。
一併參照圖2與圖3A,如前所述,第一路徑(包含圖2的路徑P11、P21及P31)對應於記憶體界限區MB,而第二路徑(包含圖2的路徑P12、P22及P32)對應於計算界限區CB。在第二階段中,控制器電路110根據流量資料TD確認系統忙碌程度高於臨界值TH,故選擇路徑P22來執行第2層運算L2並降低處理元件陣列電路120對記憶體電路100A的存取頻寬。藉由上述操作,如圖3A所示,記憶體界限區MB的線段之斜率將變低(如虛線線段),從而調整脊點RP到路徑P22的運算強度之對應位置。於此條件下,深度學習加速器100可 以用較高的運算強度來執行第2層運算L2,並將記憶體電路100A的存取頻寬釋放給系統中的其他電路。
如前所述,圖2中的路徑P11、路徑P21以及路徑P31對應於記憶體界限區MB。換言之,路徑P11、路徑P21以及路徑P31所對應的運算(或算法)對於跟記憶體電路100A交換資料的需求較高。例如,假設輸入一次有10筆資料,且路徑P21所對應的一次運算可處理完這10筆資料。於此條件下,處理元件陣列電路120可在執行完一次運算後接續向記憶體電路100A要求下一個輸入(即下10筆資料),以進行後續運算。因此,若記憶體電路100A具有足夠的存取頻寬,路徑P21可迅速地取得所需的輸入而連續地執行相關運算。另一方面,圖2中的路徑P12、路徑P22以及路徑P32對應於計算界限區CB。換言之,路徑P12、路徑P22以及路徑P32所對應的運算(或算法)屬於密集型運算。例如,假設輸入一次有10筆資料,且路徑P22所對應的運算需要重複使用多次這10筆資料。亦即,在處理元件陣列電路120使用該10筆資料來進行一次運算之後,處理元件陣列電路120還需再次使用該10筆資料進行下一次的運算。於此條件下,即便記憶體電路100A有在上述過程中提供新的10筆資料,仍須等待路徑P22使用完原有的10筆資料後才能接續處理新的10筆資料。因此,第一路徑對記憶體電路100A的存取頻寬高於第二路徑對記憶體電路100A的存取頻寬。在一些實施例中,對應於記憶體界限區MB的路徑P11、路徑P21以及路徑P31的運算(或算法)可包含,但不限於,全連接(fully connect)層運算、深度卷積(depth wise convolution)或使用較少通道數的卷積運算等等。在一些實施例中,對應計算界限區CB的路徑P12、路徑P22以及路徑P32的運算(或算法)可包含,但不限於,使用較多通道數的卷積運算等等。在一些實施例中,卷積運算的通道數相關於處理元件陣列電路120中的處理元件數量。例如,若處理元件的數量較多,計算界限區所對應的卷積運算的通道數也會較高。反之,若處理元件的數量較少,計算界限區所對應的卷積運算的通道數也會較低。
據此,應可理解對應於記憶體界限區MB的路徑P11、路徑P21以及路徑P31與對應於計算界限區CB的路徑P12、路徑P22以及路徑P32在運算(或算法)上的差異。該些路徑的具體算法與設置方式將根據應用需求而有所調整,且為本領域具有通常知識者可理解的,故不再此多加贅述。
圖3B為根據本案一些實施例繪製關於圖2的第三階段的路徑選擇之頂線模型的示意圖。如前所述,在第三階段中,控制器電路110根據流量資料TD確認系統忙碌程度不大於臨界值TH,故選擇路徑P31來執行第3層運算L3並提高處理元件陣列電路120對記憶體電路100A的存取頻寬。藉由上述操作,記憶體界限區MB的線段之斜率將變高(如虛線線段),從而調整脊點RP到路徑P31的運算強度之對應位置。於此條件下,深度學習加速器100可以用較低的運算強度以及較高的存取頻寬(相當於前述的第一存取頻寬)來執行第3層運算L3。
藉由圖3A與圖3B可得知,控制器電路110可根據流量資料TD所指示的系統忙碌程度動態地調整處理元件陣列電路120所使用的運算路徑,從而讓深度學習加速器100在執行每一層運算時可使用最小的運算強度來達成最高的效能(相當於操作在脊點RP),以改善整體系統的性能與運算效率。
圖4為根據本案一些實施例繪製尚未完成的請求數量與存取頻寬之間的對應關係的示意圖。如前所述,控制器電路110可藉由調整處理元件陣列電路120對記憶體電路100A發出的請求數量上限來調整處理元件陣列電路120對記憶體電路100A的存取頻寬。
如圖4所示,在第一情形中,尚未完成的請求數量上限為1。於此條件下,記憶體電路100A的控制器(未示出)僅能處理從處理元件陣列電路120發出的1個指令。若此指令是要求向記憶體電路100A讀出1千位元組(KB)的資料,記憶體電路100A的資料突發大小(data burst size)為256個位元組,且從發出指令到取回該資料突發量所對應的單位資料的延遲時間約為1000奈秒(ns),取得該1KB的資料所需時間約為4000ns(即4*1000ns)。於此條件下,可推估處理元件陣列電路120對記憶體電路100A的存取頻寬約為每秒0.25吉位元組(GB/s),即1KB/4000ns。
在第二情形中,尚未完成的請求數量上限為4。於此條件下,記憶體電路100A的控制器(未示出)可並行處理從處理元件陣列電路120發出的4個指令,故取得該1KB的資料所需時間約為1000ns。於此條件下,可推估處理元件陣列電路120對記憶體電路100A的存取頻寬約為每秒1GB/s,即1KB/1000ns。據此,應可理解,控制器電路110可藉由調整處理元件陣列電路120對記憶體電路100A發出的尚未完成的請求數量上限來調整處理元件陣列電路120對記憶體電路100A的存取頻寬。
上述利用調整尚未完成的請求數量上限來調整存取頻寬的方式僅為示例,且本案並不以此為限。各種可用來調整存取頻寬的方式皆為本案所涵蓋的範圍。例如,在一些實施例中,控制器電路110可根據流量資料TD發出調整指令優先權的請求給記憶體電路100A的仲裁器,以調整該些指令的優先權次序,從而調整存取頻寬。
圖5為根據本案一些實施例繪製一種深度學習加速方法500的流程圖。在操作S510, 根據一流量資料產生一控制訊號。在操作S520,藉由一處理元件陣列電路根據該控制訊號存取一記憶體電路以運行一神經網路模型,其中該神經網路模型的一層運算包含一第一路徑與一第二路徑,該處理元件陣列電路用以根據該控制訊號選擇該第一路徑與該第二路徑中的一對應路徑以經由該對應路徑執行該層運算,當該層運算是經由該第一路徑執行時,該處理元件陣列電路是以一第一存取頻寬存取該記憶體電路,當該層運算是經由該第二路徑執行該層運算時,該處理元件陣列電路是以一第二存取頻寬存取該記憶體電路,且該第一存取頻寬高於該第二存取頻寬。
深度學習加速方法500的相關實施方式可參照上述各實施例,故於此不再重複說明。深度學習加速方法500中的多個操作與/或步驟僅為示例,並非限定需依照此示例中的順序執行。在不違背本案的各實施例的操作方式與範圍下,上述各圖式中的相關操作與/或步驟當可適當地增加、替換、省略或以不同順序執行。或者,深度學習加速方法500中的相關操作可以是同時或部分同時執行。
綜上所述,本案一些實施例所提供的深度學習加速器與深度學習方法可根據系統忙碌程度來動態地調整神經網路模型所使用的運算路徑,從而提升整體系統效能。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100,105:深度學習加速器
100A:記憶體電路
110:控制器電路
120:處理元件陣列電路
130:緩衝器電路
140:記憶體存取電路
150:流量監測電路
200:神經網路模型
500:深度學習加速方法
CB:計算界限區
D1,D2:流量資料
L1:第1層運算
L2:第2層運算
L3:第3層運算
MB:記憶體界限區
P11,P12,P21,P22,P31,P32:路徑
RP:脊點
S510,S520:操作
SC:控制訊號
TD:流量資料
TH:臨界值
[圖1A]為根據本案一些實施例繪製一種深度學習加速器的示意圖;
[圖1B]為根據本案一些實施例繪製一種深度學習加速器的示意圖;
[圖2]為根據本案一些實施例繪製圖1A或圖1B中的處理元件陣列電路所運行的神經網路模型的模型示意圖;
[圖3A]為根據本案一些實施例繪製關於圖2的第二階段的路徑選擇之頂線模型的示意圖;
[圖3B]為根據本案一些實施例繪製關於圖2的第三階段的路徑選擇之頂線模型的示意圖;
[圖4]為根據本案一些實施例繪製尚未完成的請求數量與記憶體存取頻寬之間的對應關係的示意圖;以及
[圖5]為根據本案一些實施例繪製一種深度學習加速方法的流程圖。
100:深度學習加速器
100A:記憶體電路
110:控制器電路
120:處理元件陣列電路
130:緩衝器電路
140:記憶體存取電路
150:流量監測電路
SC:控制訊號
TD:流量資料
TH:臨界值
Claims (10)
- 一種深度學習加速器,包含: 一控制器電路,用以根據一流量資料產生一控制訊號; 一處理元件陣列電路,用以運行一神經網路模型,其中該神經網路模型中的一層運算包含一第一路徑與一第二路徑,該處理元件陣列電路更用以根據該控制訊號選擇該第一路徑與該第二路徑中的一對應路徑,以經由該對應路徑執行該層運算;以及 一記憶體存取電路,其中該處理元件陣列電路經由該記憶體存取電路存取一記憶體電路以執行該層運算, 其中當該處理元件陣列電路經由該第一路徑執行該層運算時,該處理元件陣列電路以一第一存取頻寬存取該記憶體電路,當該處理元件陣列電路經由該第二路徑執行該層運算時,該處理元件陣列電路是以一第二存取頻寬存取該記憶體電路,且該第一存取頻寬高於該第二存取頻寬。
- 如請求項1之深度學習加速器,其中該第一路徑對應於一頂線模型中的一記憶體界限區,且該第二路徑對應於該頂線模型中的一計算界限區。
- 如請求項1之深度學習加速器,其中該流量資料用於指示一系統忙碌程度,且當該系統忙碌程度大於一臨界值時,該控制器電路輸出該控制訊號,以控制該處理元件陣列電路選擇該第二路徑為該對應路徑。
- 如請求項3之深度學習加速器,其中當該系統忙碌程度大於該臨界值時,該控制器電路更用以降低該處理元件陣列電路對該記憶體電路的一存取頻寬。
- 如請求項1之深度學習加速器,其中該流量資料用於指示一系統忙碌程度,且當該系統忙碌程度不大於一臨界值時,該控制器電路輸出該控制訊號,以控制該處理元件陣列電路選擇該第一路徑為該對應路徑。
- 如請求項5之深度學習加速器,其中當該系統忙碌程度不大於該臨界值時,該控制器電路更用以提高提高該處理元件陣列電路對該記憶體電路的一存取頻寬。
- 如請求項1之深度學習加速器,更包含: 一流量監測電路,用以根據該記憶體存取電路與該記憶體電路之間的資料存取產生該流量資料。
- 如請求項1之深度學習加速器,其中該控制器電路更用以根據該流量資料調整該處理元件陣列電路對該記憶體電路的一存取頻寬。
- 如請求項8之深度學習加速器,其中該控制器電路更用以根據該流量資料調整該處理元件陣列電路對該記憶體電路發出的一尚未完成的請求數量上限,以調整該存取頻寬。
- 一種深度學習加速方法,包含: 根據一流量資料產生一控制訊號;以及 藉由一處理元件陣列電路根據該控制訊號存取一記憶體電路以運行一神經網路模型, 其中該神經網路模型的一層運算包含一第一路徑與一第二路徑,該處理元件陣列電路用以根據該控制訊號選擇該第一路徑與該第二路徑中的一對應路徑以經由該對應路徑執行該層運算,當該層運算是經由該第一路徑執行時,該處理元件陣列電路是以一第一存取頻寬存取該記憶體電路,當該層運算是經由該第二路徑執行該層運算時,該處理元件陣列電路是以一第二存取頻寬存取該記憶體電路,且該第一存取頻寬高於該第二存取頻寬。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113123637A TWI888194B (zh) | 2024-06-25 | 2024-06-25 | 深度學習加速器與深度學習加速方法 |
| US19/202,646 US20250390728A1 (en) | 2024-06-25 | 2025-05-08 | Deep learning accelerator and deep learning acceleration method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW113123637A TWI888194B (zh) | 2024-06-25 | 2024-06-25 | 深度學習加速器與深度學習加速方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI888194B true TWI888194B (zh) | 2025-06-21 |
| TW202601450A TW202601450A (zh) | 2026-01-01 |
Family
ID=97227711
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113123637A TWI888194B (zh) | 2024-06-25 | 2024-06-25 | 深度學習加速器與深度學習加速方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20250390728A1 (zh) |
| TW (1) | TWI888194B (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201714091A (zh) * | 2015-10-08 | 2017-04-16 | 上海兆芯集成電路有限公司 | 同時執行長短期記憶胞計算之神經網路單元 |
| TW201935408A (zh) * | 2017-04-28 | 2019-09-01 | 美商英特爾股份有限公司 | 用於低精度機器學習運算之計算最佳化 |
| US20220343146A1 (en) * | 2021-04-23 | 2022-10-27 | Alibaba Singapore Holding Private Limited | Method and system for temporal graph neural network acceleration |
| TW202349218A (zh) * | 2022-06-01 | 2023-12-16 | 瑞昱半導體股份有限公司 | 記憶體控制系統與記憶體控制方法 |
-
2024
- 2024-06-25 TW TW113123637A patent/TWI888194B/zh active
-
2025
- 2025-05-08 US US19/202,646 patent/US20250390728A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201714091A (zh) * | 2015-10-08 | 2017-04-16 | 上海兆芯集成電路有限公司 | 同時執行長短期記憶胞計算之神經網路單元 |
| TW201935408A (zh) * | 2017-04-28 | 2019-09-01 | 美商英特爾股份有限公司 | 用於低精度機器學習運算之計算最佳化 |
| US20220343146A1 (en) * | 2021-04-23 | 2022-10-27 | Alibaba Singapore Holding Private Limited | Method and system for temporal graph neural network acceleration |
| TW202349218A (zh) * | 2022-06-01 | 2023-12-16 | 瑞昱半導體股份有限公司 | 記憶體控制系統與記憶體控制方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250390728A1 (en) | 2025-12-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102887834B1 (ko) | 저장 매체 액세스의 인공 지능 가능 관리 | |
| CN109992210B (zh) | 数据存储方法、装置及电子设备 | |
| KR20200139829A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
| TW202134861A (zh) | 交錯記憶體請求以加速記憶體存取 | |
| US20230325082A1 (en) | Method for setting up and expanding storage capacity of cloud without disruption of cloud services and electronic device employing method | |
| CN111752879B (zh) | 一种基于卷积神经网络的加速系统、方法及存储介质 | |
| TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
| US12443447B2 (en) | Memory sharing for machine learning processing | |
| KR20190097528A (ko) | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 | |
| KR102824648B1 (ko) | 가속기, 가속기의 동작 방법 및 이를 포함한 전자 장치 | |
| WO2021259232A1 (zh) | Ai芯片的数据处理方法、装置和计算机设备 | |
| KR20220049294A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치 | |
| KR20200138411A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
| KR20200139256A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
| WO2024114728A1 (zh) | 一种异构处理器及相关调度方法 | |
| US20080126600A1 (en) | Direct memory access device and methods | |
| TW202422331A (zh) | 儲存裝置及操作方法 | |
| TWI888194B (zh) | 深度學習加速器與深度學習加速方法 | |
| KR20200138414A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
| WO2023115529A1 (zh) | 芯片内的数据处理方法及芯片 | |
| TW202601450A (zh) | 深度學習加速器與深度學習加速方法 | |
| US20050209839A1 (en) | Data processing apparatus simulation | |
| KR20210061583A (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
| CN121279373A (zh) | 深度学习加速器与深度学习加速方法 | |
| CN111814680B (zh) | 一种基于fpga的多路axi总线的控制方法 |