TW202138999A - 用於卷積運算的資料劃分方法及處理器 - Google Patents
用於卷積運算的資料劃分方法及處理器 Download PDFInfo
- Publication number
- TW202138999A TW202138999A TW109139562A TW109139562A TW202138999A TW 202138999 A TW202138999 A TW 202138999A TW 109139562 A TW109139562 A TW 109139562A TW 109139562 A TW109139562 A TW 109139562A TW 202138999 A TW202138999 A TW 202138999A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- candidate
- data block
- division method
- block set
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000011156 evaluation Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 25
- 238000013527 convolutional neural network Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (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 Processing (AREA)
- Apparatus For Radiation Diagnosis (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,其在保持模型性能的前提下降低了模型大小,同時提升模型速度。
CNN卷積神經網路因其卓越性能目前被普遍應用於各種人工智慧設備中,包括雲端(cloud)、移動(mobile)設備。在某些設備,特別是移動設備中,儲存和計算資源是比較少的。在單晶片中的記憶體上同時儲存CNN演算法的所有輸入資料,權重資料和輸出資料通常是不可能的,將高效的CNN演算法移植到嵌入式硬體加速器中的一個難題是如何將完整的CNN任務劃分為幾個小部分,以便可以最大程度地提高資料的重複使用率並提高硬體執行效率。如何利用較少的儲存和計算資源提高神經網路的執行速度顯得尤為重要。
本發明旨在至少解決習知技術中存在的技術問題之一,提供一種用於卷積運算的資料劃分方法及一種處理器。
本發明的一個方面提供一種用於卷積運算的資料劃分方法,包括:確定執行卷積運算時的限制條件;根據所述限制條件,確定每個所述資料對應的每個維度上的劃分尺寸;根據所述劃分尺寸,將每個所述資料對應的每個所述維度進行劃分,獲得每個所述資料對應的每個所述維度的候選子資料塊集合;將每個所述維度的所述候選子資料塊集合中的每一個候選子資料塊,與其餘所述維度的候選子資料塊集合中的每一個候選子資料塊進行組合,獲得每個所述資料的候選資料塊集合;以及,將每個所述候選資料塊集合分別輸入至預設的成本函數,並選取所述成本函數的最小輸出值對應的候選資料塊作為目標資料塊,並將所述目標資料塊作為所述資料的後續劃分方式。
本發明的另一個方面提供一種資料劃分方法,應用於一運算裝置,該運算裝置依據一輸入圖像資料及一權重資料進行卷積運算。該資料劃分方法包含:確定該運算裝置執行卷積運算時的一限制條件;依據該限制條件確定該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合;依據該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合中的候選資料塊,評估該運算裝置存取一外部記憶體及存取該運算裝置之一內部記憶體的資料加載量,以產生一評估結果;以及,依據該評估結果決定對該輸入圖像資料及對該權重資料的劃分方式。
本發明的另一個方面提供一種處理器,藉由執行一程式碼以實現應用於一運算裝置的一資料劃分方法,該運算裝置依據一輸入圖像資料及一權重資料進行卷積運算。該資料劃分方法包含:確定該運算裝置執行卷積運算時的一限制條件;依據該限制條件確定該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合;依據該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合中的候選資料塊,評估該運算裝置存取一外部記憶體及存取該運算裝置之一內部記憶體的資料加載量,以產生一評估結果;以及,依據該評估結果決定對該輸入圖像資料及對該權重資料的劃分方式。
本發明提出的資料劃分方法,在執行卷積運算過程中,可以使得資料進出晶載記憶體(on-chip memory)的次數最少,每個資料的重用性或重複使用率最高,提高卷積運算效率,節省卷積運算時間。
為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和具體實施方式對本發明作進一步詳細描述。
首先,參照圖1來描述用於實現本發明實施例的資料劃分裝置、卷積運算裝置、資料劃分方法及卷積運算方法的示例電子設備。
如圖1所示,電子設備200包括一個或多個處理器210、一個或多個儲存裝置220、一個或多個輸入裝置230、一個或多個輸出裝置240等,這些元件通過匯流排系統250和/或其他形式的連接機構互連。應當注意,圖1所示的電子設備的元件和結構只是示例性的,而非限制性的,根據需要,電子設備也可以具有其他元件和結構。
處理器210可以是中央處理單元(CPU)或者具有資料處理能力和/或指令執行能力的其他形式的處理單元,並且可以控制電子設備200中的其他元件以執行期望的功能。
儲存裝置220可以包括一個或多個電腦程式產品,所述電腦程式產品可以包括各種形式的電腦可讀儲存介質,例如揮發性記憶體(volatile memory)和/或非揮發性記憶體(non-volatile memory)。所述揮發性記憶體例如可以包括隨機存取記憶體(RAM)和/或高速快取(cache)等。所述非揮發性記憶體例如可以包括唯讀記憶體(ROM)、硬碟、快閃記憶體等。在所述電腦可讀儲存介質上可以儲存一個或多個電腦程式指令,處理器可以運行所述程式指令,以實現下文所述的本發明實施例中(由處理器實現)的用戶端功能以及/或者其他期望的功能。在所述電腦可讀儲存介質中還可以儲存各種應用程式和各種資料,例如,所述應用程式使用和/或產生的各種資料等。
輸入裝置230可以是使用者用來輸入指令的裝置,並且可以包括鍵盤、滑鼠、麥克風和觸控式螢幕等中的一個或多個。
輸出裝置240可以向外部(例如使用者)輸出各種資訊(例如圖像或聲音),並且可以包括顯示器、揚聲器等中的一個或多個。
下面,請參考圖2所描述根據本發明實施例的用於卷積運算的資料劃分方法。圖2的資料劃分方法可應用於圖3的運算裝置中。如圖3所示,運算裝置100包括卷積核單元120、乘加單元(Multiplication Add Cell)130、快取單元140、計算單元150以及裁剪單元160。運算裝置100可自記憶體110中讀取輸入圖像資料(input image data)IB及權重資料(kernel buffer)KB,並將輸入圖像資料IB及權重資料KB儲存於快取單元140。卷積核單元120用於根據控制單元170的指令對輸入圖像資料IB和權重資料KB執行一卷積運算,獲得卷積結果AB後儲存於快取單元140。控制單元170例如可以是中央處理單元(CPU)或者具有資料處理能力和/或指令執行能力的其他形式的控制單元。計算單元150用於計算一初始化偏置值、量化參數零點產生的一些計算項以及實際量化因子,合併初始化偏置值和量化參數零點產生的一些計算項,生成實際偏置值。裁剪單元160用於將具有第一位寬的卷積結果AB裁剪生成具有第二位寬的低位寬卷積結果OB。乘加單元130用於對低位元寬卷積結果OB、實際量化因子以及實際偏置值執行乘加運算,獲得最終運算結果VB。
實施上,圖2中的資料劃分方法可藉由一處理器執行程式代碼來實現,例如由處理器210執行程式代碼來實現。如圖2所示,用於卷積運算的資料劃分方法包括下列步驟。
步驟S110中,確定執行卷積運算時的限制條件。
具體地,在本步驟中,在執行卷積運算時,根據硬體的不同卷積模式,抽取出硬體限制條件。示例性的,不同的底層卷積模式,對輸入圖像資料IB在晶載記憶體所分配的記憶塊(Memory Unit)數量有所限制、卷積結果AB或低位寬卷積結果OB在晶載記憶體所分配的記憶塊數量有所限制,如其中一個卷積模式,對IB分配記憶塊數量為512個,對AB或OB分配記憶塊數量為1024個等等。此外,不同的底層卷積模式,對平行通道數量的限制也並不相同,例如,其中一個卷積模式,其輸入平行通道數量simd di為16,輸出平行通道數量simd do為16等等。當然,除了上述所列舉的一些限制條件以外,本領域技術人員還可以根據實際需要,選擇其他一些具體地限制條件,本實施例對此並不限制。
步驟S120中,根據所述限制條件,確定每個所述資料對應的每個維度上的劃分尺寸。
具體地,在本步驟中,假設其中一個硬體的卷積模式所對應的限制條件為,其中,為輸入平行通道數量,而為輸出平行通道數量,FW
為權重資料(kernel buffer)KB的寬度維度,Fh
為權重資料KB的高度維度,在這種限制條件下,輸入通道數量Di或輸出通道數量Do維度上的劃分尺寸為。另外,在寬度W和高度H這兩個維度上的劃分尺寸並沒有要求。示例性的,原始的任務中,,,,其中,Wout
為AB或OB的寬度維度,Hout
為AB或OB的高度維度,Win
為輸入圖像資料IB的寬度維度,Hin
為輸入圖像資料IB的高度維度。在一個限制條件為下,,,,,其中,k和l為大於等於1的整數,ib為IB的劃分尺寸,kb為KB的劃分尺寸,ob為OB的劃分尺寸。
步驟S130中,根據所述劃分尺寸,將每個所述資料對應的每個所述維度進行劃分,獲得每個所述資料對應的每個所述維度的候選子資料塊集合。
具體地,在本步驟中,根據di與do的限制條件,窮舉出各個維度上所有可用的候選子資料塊,獲得每個資料對應的每個所述維度上的候選子資料塊集合。以IB和OB為例,這兩個資料具有三個維度,在寬度和高度這兩個維度上的劃分尺寸並沒有限制,此時,可以根據每一個可能的劃分尺寸對IB和OB對應的寬度維度和高度維度進行劃分,獲得對應寬度維度和高度維度的候選子資料塊,在深度這個維度上,需要考慮di與do的限制條件,例如,di限制為16,則劃分尺寸只能為16的倍數,比如16、32、64等進行劃分,從而在深度這個維度上獲得對應的候選子資料塊。對於KB,與IB和OB的劃分方式相類似,在此不作贅述。根據IB、KB和OB對應的每個維度上所窮舉出的候選子資料塊,獲得所需要的候選子資料塊集合。
步驟S140,將每個所述維度的所述候選子資料塊集合中的每一個候選子資料塊,與其餘所述維度的候選子資料塊集合中的每一個候選子資料塊進行組合,獲得每個所述資料的候選資料塊集合。
具體地,在本步驟中,每個維度可以產生一個迴圈,以便窮盡每個維度上的候選資料塊。例如,步驟S130中得到了每個資料在對應的每個維度上的候選子資料塊集合,在該步驟S140中,需要將每個維度上的候選子資料塊集合中的每個候選子資料塊與該資料在其餘維度上的候選子資料塊集合中的每個候選子資料塊進行組合,獲得每個所述資料的候選資料塊集合。示例性的,以IB為例,假設在步驟S130裡面得到其寬度維度的候選子資料塊集合用向量表示為W=(W1、W2…Wn),高度維度的候選子資料塊集合用向量表示為H=(H1、H2…Hn),深度維度的候選子資料塊集合用向量表示為D=(D1、D2…Dn),則在步驟S140中,是將向量W中的每一個元素與向量H和向量D中的每一個元素進行組合,獲得IB的候選資料塊集合。其餘資料如KB和OB可以依次類推解釋。
步驟S150,將每個所述候選資料塊集合分別輸入至預設的成本函數(cost function),並選取所述成本函數的最小輸出值對應的候選資料塊作為目標資料塊,並將所述目標資料塊作為所述資料的後續劃分方式。
鑒於以下事實,晶載記憶體是有限的,並且往返於外部記憶體,往返晶載記憶體的記憶體頻寬受到限制,因此我們將傳輸資料量的大小視為成本指標。如果反復讀取的資料負載最小,則該解決方案被認為是更好的解決方案。換言之,最大資料重複使用性得以實現。在之前步驟中,計算的總的資料載入量的方法是,計算內部迴圈資料載入量,乘以在外迴圈數的存取次數。進一步說,這種分割處理方式綜合考慮IB,KB,AB和OB,因此,所有四種儲存的傳輸成本函數會被累計。因此,在此步驟中,所謂的成本函數,可以衡量用直接記憶器存取控制(direct memory access,DMA)搬運的次數越少越好,即進出晶載記憶體的次數少,即搬進去的每個資料的重用性或重複使用率較高。對於每個候選資料塊集合,將其輸入到成本函數中,得到一些成本值(cost),衡量值最小的成本值即為最佳解,即該成本值對應的候選資料塊為目標資料塊。至於成本函數的具體類型,本領域技術人員可以根據實際需要進行選擇。應當理解的是,此處應當將各個資料(如IB、KB、OB和AB等)對應的候選資料塊集合同時輸入至成本函數中,這樣,在成本函數取最小值時,表明該最小值所對應的資料劃分方式最佳,資料重用率最高。
本實施例的資料劃分方法,首先獲取確定執行卷積運算時的限制條件,其次,根據該限制條件獲得每個維度的劃分尺寸,之後,根據劃分尺寸進行劃分,獲得每個維度的候選子資料塊集合,再之後,將每個維度的候選子資料塊與其餘維度的候選子資料塊進行組合獲得候選資料塊集合,最後,將候選資料塊集合輸入至成本函數,選取最小值對應的候選資料塊為目標資料塊,以此決定資料的後續劃分方式。因此,本實施例的資料劃分方法,在執行卷積運算過程中,可以使得資料進出晶載記憶體的次數最少,每個資料的重用性或重複使用率最高,提高卷積運算效率,節省卷積運算時間。
在一些可選地實施方式中,所述將每個所述候選資料塊集合分別輸入至預設的成本函數,包括:
根據每個所述資料所分配的所述記憶塊數量,從每個所述候選資料塊集合中剔除無效的候選資料塊,獲得有效候選資料塊集合。將每個所述有效候選資料塊集合分別輸入至所述成本函數。
本實施例的資料劃分方法,可以根據記憶塊數量,將所獲得的候選資料塊集合中剔除放不下的無效候選資料塊,從而獲得有效候選資料塊集合,這樣,可以提高資料重用方法的效率,並且能夠確保最終的最佳解滿足記憶塊數量的限制。
在一些可選地實施方式中,所述將每個所述有效候選資料塊集合分別輸入至所述成本函數,包括:
根據卷積運算的維度的先後順序,確定所述有效候選資料塊集合中每個有效候選資料塊的有效候選資料塊組合,獲得每個所述資料的有效候選資料塊組合集合。將每個所述有效候選資料塊組合集合分別輸入至所述成本函數。
示例性的,每個資料所獲得的有效候選資料塊集合中,每個有效候選資料塊根據卷積運算的維度的先後順序,可能有多種組合方式,如、或,但並不局限於這幾種組合方式,獲得每個資料的有效候選資料塊組合集合。計算各種具體IB/KB/AB/OB/VB的晶載記憶體的成本函數的成本值,找出成本值最小的並且有效的晶載記憶體的記憶體分配配置(memory configuration),此處記錄最小成本值下的組合方式(loop order),以及晶載記憶體的記憶體分配配置。
在一些可選地實施方式中,所述根據所述劃分尺寸,將每個所述資料對應的每個所述維度進行劃分,獲得每個所述資料對應的每個所述維度的候選子資料塊集合,包括:
根據所述劃分尺寸,對輸出資料對應的輸出寬度、輸出高度和輸出通道數量三個維度進行劃分、以及,對權重資料對應的輸出寬度、輸出高度、輸入通道數量和輸出通道數量四個維度進行劃分,獲得所述候選子資料塊集合。
此外,為了縮小搜索空間,我們有以下觀察結果:
WH上的分區可探索權重的資料利用率,即內核將在內核記憶體(KB)中重用WH/wh次,為了最大程度地重用內核係數,內核記憶體應包含wh中使用的所有元素,即最小記憶體要求為di*do*F^2。
Di上的分區會探索輸出資料的重複利用率,即輸出記憶體將在輸出記憶體(OB)中重用Di / di次,為了最大程度地重用輸出記憶體,OB應該包含所有需要重用的輸出資料,即最小記憶體要求是wh*do。
Do上的分區會探索輸入記憶體的重複使用率,即輸入資料將在輸入記憶體(IB)中重用Do / do次,為了最大程度地重用輸入記憶體,IB應該包含所有正在使用的輸入元素,即最小記憶體要求是(w+F-1)*(H+F-1)*di。
可以理解的是,以上實施方式僅僅是為了說明本發明的原理而採用的示例性實施方式,然而本發明並不局限於此。對於本領域內的普通技術人員而言,在不脫離本發明的精神和實質的情況下,可以做出各種變型和改進,這些變型和改進也視為本發明的保護範圍。
200:電子設備
210:處理器
220:儲存裝置
230:輸入裝置
240:輸出裝置
250:匯流排系統
100:運算裝置
110:記憶體
120:卷積核單元
130:乘加單元
140:快取單元
150:計算單元
160:裁剪單元
170:控制單元
S110,S120,S130,S140,S150:步驟
圖1為本發明第一實施例的一種電子設備的組成示意框圖;
圖2為本發明第二實施例的一種資料劃分方法的流程圖;
圖3為一運算裝置的方塊示意圖。
S110,S120,S130,S140,S150:步驟
Claims (8)
- 一種用於卷積運算的資料劃分方法,包括: 確定執行卷積運算時的限制條件; 根據所述限制條件,確定每個所述資料對應的每個維度上的劃分尺寸; 根據所述劃分尺寸,將每個所述資料對應的每個所述維度進行劃分,獲得每個所述資料對應的每個所述維度的候選子資料塊集合; 將每個所述維度的所述候選子資料塊集合中的每一個候選子資料塊,與其餘所述維度的候選子資料塊集合中的每一個候選子資料塊進行組合,獲得每個所述資料的候選資料塊集合;以及 將每個所述候選資料塊集合分別輸入至預設的成本函數,並選取所述成本函數的最小輸出值對應的候選資料塊作為目標資料塊,並將所述目標資料塊作為所述資料的劃分方式。
- 如請求項1之資料劃分方法,其中,所述限制條件包括平行通道數量以及每個資料在晶載記憶體所分配的記憶塊數量。
- 如請求項2之資料劃分方法,其中,所述將每個所述候選資料塊集合分別輸入至預設的成本函數,包括: 根據每個所述資料所分配的所述記憶塊數量,從每個所述候選資料塊集合中剔除無效的候選資料塊,獲得有效候選資料塊集合;以及 將每個所述有效候選資料塊集合分別輸入至所述成本函數。
- 如請求項3之資料劃分方法,其中,所述將每個所述有效候選資料塊集合分別輸入至所述成本函數,包括: 根據卷積運算的維度的先後順序,確定所述有效候選資料塊集合中每個有效候選資料塊的有效候選資料塊組合,獲得每個所述資料的有效候選資料塊組合集合;以及 將每個所述有效候選資料塊組合集合分別輸入至所述成本函數。
- 如請求項1之資料劃分方法,其中,所述根據所述劃分尺寸,將每個所述資料對應的每個所述維度進行劃分,獲得每個所述資料對應的每個所述維度的候選子資料塊集合,包括: 根據所述劃分尺寸,對輸出資料對應的輸出寬度、輸出高度和輸出通道數量三個維度進行劃分、以及,對權重資料對應的輸出寬度、輸出高度、輸入通道數量和輸出通道數量四個維度進行劃分,獲得所述候選子資料塊集合。
- 一種資料劃分方法,應用於一運算裝置,該運算裝置依據一輸入圖像資料及一權重資料進行卷積運算,該方法包含: 確定該運算裝置執行卷積運算時的一限制條件; 依據該限制條件確定該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合; 依據該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合中的候選資料塊,評估該運算裝置存取一外部記憶體及存取該運算裝置之一內部記憶體的資料加載量,以產生一評估結果;以及 依據該評估結果決定對該輸入圖像資料及對該權重資料的劃分方式。
- 如請求項6之資料劃分方法,其中,該權重資料的候選資料塊集合係依據該限制條件中與該權重資料的寬度及/或高度有關的條件所決定。
- 一種處理器,藉由執行一程式碼以實現應用於一運算裝置的一資料劃分方法,該運算裝置依據一輸入圖像資料及一權重資料進行卷積運算,該資料劃分方法包含: 確定該運算裝置執行卷積運算時的一限制條件; 依據該限制條件確定該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合; 依據該輸入圖像資料的候選資料塊集合及該權重資料的候選資料塊集合中的候選資料塊,評估該運算裝置存取一外部記憶體及存取該運算裝置之一內部記憶體的資料加載量,以產生一評估結果;以及 依據該評估結果決定對該輸入圖像資料及對該權重資料的劃分方式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010279132.8A CN111523642B (zh) | 2020-04-10 | 2020-04-10 | 用于卷积运算的数据重用方法、运算方法及装置、芯片 |
CN202010279132.8 | 2020-04-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202138999A true TW202138999A (zh) | 2021-10-16 |
TWI775210B TWI775210B (zh) | 2022-08-21 |
Family
ID=71901551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109139562A TWI775210B (zh) | 2020-04-10 | 2020-11-12 | 用於卷積運算的資料劃分方法及處理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210350230A1 (zh) |
CN (1) | CN111523642B (zh) |
TW (1) | TWI775210B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115221101B (zh) * | 2021-04-16 | 2023-12-19 | 中科寒武纪科技股份有限公司 | 用于优化片上系统的矩阵乘操作的方法和相关产品 |
CN113254867B (zh) * | 2021-06-28 | 2021-10-29 | 中科弘云科技(北京)有限公司 | 一种自动配置模板生成方法、装置、服务器及存储介质 |
US20230350678A1 (en) * | 2022-04-28 | 2023-11-02 | Qualcomm Incorporated | Instruction Set Architecture for Neural Network Quantization and Packing |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8146066B2 (en) * | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
GB2558886B (en) * | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
US11610099B2 (en) * | 2017-11-06 | 2023-03-21 | Imagination Technologies Limited | Neural network architecture using single plane filters |
CN107886163A (zh) * | 2017-12-01 | 2018-04-06 | 广东工业大学 | 基于agn及cnn的单目标优化问题寻优方法及装置 |
US11436483B2 (en) * | 2018-01-17 | 2022-09-06 | Mediatek Inc. | Neural network engine with tile-based execution |
WO2020234863A1 (en) * | 2019-05-22 | 2020-11-26 | Applied Materials Israel Ltd. | Machine learning-based classification of defects in a semiconductor specimen |
CN110929860B (zh) * | 2019-11-07 | 2020-10-23 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
-
2020
- 2020-04-10 CN CN202010279132.8A patent/CN111523642B/zh active Active
- 2020-11-12 TW TW109139562A patent/TWI775210B/zh active
-
2021
- 2021-03-23 US US17/209,279 patent/US20210350230A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN111523642B (zh) | 2023-03-28 |
CN111523642A (zh) | 2020-08-11 |
TWI775210B (zh) | 2022-08-21 |
US20210350230A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
JP7478145B2 (ja) | 機械学習モデルの自動生成 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
WO2021143883A1 (zh) | 神经网络的自适应搜索方法及装置 | |
WO2020101948A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
US11775807B2 (en) | Artificial neural network and method of controlling fixed point in the same | |
US10733498B1 (en) | Parametric mathematical function approximation in integrated circuits | |
CN112436992B (zh) | 基于图卷积网络的虚拟网络映射方法及装置 | |
WO2019019926A1 (zh) | 系统参数的优化方法、装置及设备、可读介质 | |
CN112163601A (zh) | 图像分类方法、系统、计算机设备及存储介质 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
JP7492555B2 (ja) | 複数の入力データセットのための処理 | |
WO2021147276A1 (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
WO2020062299A1 (zh) | 一种神经网络处理器、数据处理方法及相关设备 | |
JP2022079947A (ja) | プルーニング管理装置、プルーニング管理システム及びプルーニング管理方法 | |
TWI768516B (zh) | 運算裝置和運算方法 | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
JP2022117866A (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
US10990525B2 (en) | Caching data in artificial neural network computations | |
CN118043821A (zh) | 混合稀疏压缩 | |
US20220318604A1 (en) | Sparse machine learning acceleration | |
CN112101538B (zh) | 基于内存计算的图神经网络硬件计算系统及方法 | |
WO2021120036A1 (zh) | 数据处理装置和数据处理方法 | |
US11263517B1 (en) | Flexible weight expansion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |