TWI793225B - 神經網絡訓練方法及相關產品 - Google Patents
神經網絡訓練方法及相關產品 Download PDFInfo
- Publication number
- TWI793225B TWI793225B TW107144042A TW107144042A TWI793225B TW I793225 B TWI793225 B TW I793225B TW 107144042 A TW107144042 A TW 107144042A TW 107144042 A TW107144042 A TW 107144042A TW I793225 B TWI793225 B TW I793225B
- Authority
- TW
- Taiwan
- Prior art keywords
- nth
- data
- layer
- input data
- reverse
- Prior art date
Links
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/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
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本披露提供一種集成電路芯片裝置上執行的神經網絡的訓練方法及相關產品,該神經網絡包含多層,所述方法包括如下步驟:接收訓練指令,依據該訓練指令確定第一層輸入數據和第一層權值數據,計算裝置通過第一層輸入數據和第一層權值數據執行神經網絡的n層正向運算得到第n輸出結果;依據第n輸出結果得到第n輸出結果梯度,依據所述訓練指令獲取第n層反向運算的第n反向運算,計算裝置依據第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及第n反向運算得到第n反向運算複雜度。本披露提供的技術方案具有計算量小,功耗低的優點。
Description
本披露涉及神經網絡領域,尤其涉及一種神經網絡訓練方法及相關產品。
人工神經網絡(Artificial Neural Network,ANN),是20世紀80年代以來人工智能領域興起的研究熱點。它從信息處理角度對人腦神經元網絡進行抽象,建立某種簡單模型,按不同的連接方式組成不同的網絡。在工程與學術界也常直接簡稱為神經網絡或類神經網絡。神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。現有的神經網絡的運算基於CPU(Central Processing Unit,中央處理器)或GPU(Graphics Processing Unit,圖形處理器)來實現神經網絡的正向運算,此種正向運算的計算量大,功耗高。
本披露實施例提供了一種神經網絡訓練方法及相關產品,可提升計算裝置的處理速度,提高效率。
第一方面,提供一種集成電路芯片裝置上執行的神經網絡的訓練方法,該神經網絡包含n層,其中,所述方法包括如下步驟:接收訓練指令,依據該訓練指令確定第一層輸入數據和第一層權值組數據,計算裝置通過第一層輸入數據和第一層權值組數據執行神經網絡的n層正向運算得到正向運算的第n輸出結果;依據所述第n輸出結果得到第n輸出結果梯度,依據所述訓練指令獲取第n層反向運算的第n反向運算,依據第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及第n反向運算得到第n反向運算複雜度,依據所述第n反向運算複雜度確定第n輸出結果梯度、第n層輸入數據、第n層權值組數據對應的第n反向數據類型,將第n輸出結果梯度、第n層輸入數據、第n層權值組數據以第n反向數據類型執行神經網絡的第n層反向運算得到第n層權值組梯度和第n層輸入數據梯度;應用所述第n層權值組梯度對第n層權值組數據進行更新;所述第n反向數據類型包括:定點類型或浮點類型;將第n層輸入數據梯度作為第n-1層的第n-1輸出結果梯度執行n-1層方向運算得到n-1層權值組梯度,應用n-1層權值組梯度更新對應層的權值組數據,所述權值組數據包括;至少二個權值。
第二方面,提供一種集成電路芯片裝置,所述集成電路芯片裝置用於執行神經網絡的訓練運算,所述神經網絡包括n層;所述集成電路芯片裝置包括:處理電路以及外部介面;所述外部介面,用於接收訓練指令;
所述處理電路,用於依據該訓練指令確定第一層輸入數據和第一層權值組數據,計算裝置通過第一層輸入數據和第一層權值組數據執行神經網絡的n層正向運算得到正向運算的第n輸出結果;所述處理電路,還用於依據所述第n輸出結果得到第n輸出結果梯度,依據所述訓練指令獲取第n層反向運算的第n反向運算,依據第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及第n反向運算得到第n反向運算複雜度,依據所述第n反向運算複雜度確定第n輸出結果梯度、第n層輸入數據、第n層權值組數據對應的第n反向數據類型,將第n輸出結果梯度、第n層輸入數據、第n層權值組數據以第n反向數據類型執行神經網絡的第n層反向運算得到第n層權值組梯度和第n層輸入數據梯度;應用所述第n層權值組梯度對第n層權值組數據進行更新;所述第n反向數據類型包括:定點類型或浮點類型;所述處理電路,還用於將第n層輸入數據梯度作為第n-1層的第n-1輸出結果梯度執行n-1層方向運算得到n-1層權值組梯度,應用n-1層權值組梯度更新對應層的權值組數據,所述權值組數據包括;至少二個權值。
第三方面,提供一種神經網絡運算裝置,所述神經網絡運算裝置包括一個或多個第二方面提供的集成電路芯片裝置。
第四方面,提供一種組合處理裝置,所述組合處理裝置包括:第三方面提供的神經網絡運算裝置、通用互聯介面和通用處理裝置;所述神經網絡運算裝置通過所述通用互聯介面與所述通用處理裝置連接。
第五方面,提供一種芯片,所述芯片集成第二方面的裝置、第三方面的裝置或第四方面的裝置。
第六方面,提供一種電子設備,所述電子設備包括第四方面的芯片。
可以看出,通過本披露實施例,提供數據轉換運算電路將數據塊的類型進行轉換後運算,節省了傳輸資源以及計算資源,所以其具有功耗低,計算量小的優點。
A、B、S:矩陣
P:向量
S401b、S402b、S403b、S401、S402、S403、S404:步驟
10:神經網絡處理器卡板
11:神經網絡芯片封裝結構
12:第一電氣及非電氣連接裝置
13:第一基板
111:神經網絡芯片
112:第二電氣及非電氣連接裝置
113:第二基板
1111:存儲單元
1112:直接內存存取單元
1113:指令緩存單元
1114:權緩存單元
1115:輸入神經元緩存單元
1116:輸出神經元緩存單元
1117:控制單元
1118:運算單元
21:神經網絡芯片
22:焊盤
23:焊球
24:第二基板
25:第二基板24上的連接點
26:引腳
27:絕緣填充物
28:散熱膏
29:金屬外殼散熱片
C:通道個數
H:每個通道的特徵圖的高
W:每個通道的特徵圖的寬
KH:每個通道的高
KW:每個通道的寬
M:卷積核個數
N:樣本個數
圖1是一種神經網絡的訓練方法示意圖。
圖1a是一種神經網絡的正向運算示意圖。
圖1b為一種定點數據類型的示意結構圖。
圖2a為卷積輸入數據示意圖。
圖2b為卷積核示意圖。
圖2c為輸入數據的一個三維數據塊的運算窗口示意圖。
圖2d為輸入數據的一個三維數據塊的另一運算窗口示意圖。
圖2e為輸入數據的一個三維數據塊的又一運算窗口示意圖.
圖3a是一種神經網絡芯片的結構示意圖。
圖3b是另一種神經網絡芯片的結構示意圖。
圖4a為矩陣乘以矩陣示意圖。
圖4b為矩陣乘以矩陣的方法流程圖。
圖4c為矩陣乘以向量示意圖。
圖4d為矩陣乘以向量的方法流程圖。
圖4e為一種神經網絡訓練示意圖。
圖4f為另一種神經網絡訓練示意圖。
圖4g為神經網絡正向與反向運算示意圖。
圖4h為神經網絡訓練多層結構示意圖。
圖5a為本披露還揭露了一個組合處理裝置結構示意圖。
圖5b為本披露還揭露了一個組合處理裝置另一種結構示意圖。
圖5c為本披露實施例提供的一種神經網絡處理器板卡的結構示意圖;圖5d為本披露實施例流提供的一種神經網絡芯片封裝結構的結構示意圖;圖5e為本披露實施例流提供的一種神經網絡芯片的結構示意圖;圖6為本披露實施例流提供的一種神經網絡芯片封裝結構的示意圖;圖6a為本披露實施例流提供的另一種神經網絡芯片封裝結構的示意圖。
為了使本技術領域的人員更好地理解本披露方案,下面將結合本披露實施例中的圖式,對本披露實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本披露一部分實施例,而不是全部的實施例。基於本披露中的實施例,所屬技術領域中具有通常知識者在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本披露保護的範圍。
在第一方面提供的方法中,所述依據所述第n反向運算複雜度確定第n輸出結果梯度、第n層輸入數據、第n層權值組數據對應的第n反向數據類型,包括:將第n反向運算複雜度與預設閾值比較,如所述第n反向運算複雜度高於所述預設閾值,確定所述第n反向數據類型為定點類型,如所述第n反向運算複雜度低於或等於所述預設閾值,計算裝置確定所述第n反向數據類型為浮點類型。
在第一方面提供的方法中,所述方法在依據所述第n反向運算複雜度確定第n輸出結果梯度、第n層輸入數據、第n層權值組數據對應的第n反向數據類型之後還包括:確定所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據屬於的第n+1反向數據類型,如所述第n+1反向數據類型與所述第n反向數據類型不同,將屬於第n+1反向數據類型的所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據轉換成屬於第n反向數據類型的所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據。
在第一方面提供的方法中,如所述n層反向運算為卷積運算,卷積輸入數據為所述第n層輸入數據,卷積核為所述第n輸出結果梯度,第n反向運算複雜度=α*C1*kH*kW*M*N*W*C2*H;其中,α為卷積系數,取值範圍為大於1;C1、kH、kW、M為卷積核四個維度的值,N、W、C2、H為卷積輸入數據四個維度的值;如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該卷積輸入數據以及卷積核是否為浮點數據,如該卷積輸入數據
以及卷積核不為浮點數據,將該卷積輸入數據轉換成浮點數據,將卷積核轉換成浮點數據,然後將卷積輸入數據、卷積核以浮點數據類型執行卷積運算。
在第一方面提供的方法中,如所述第n反向運算為:矩陣乘矩陣運算,所述輸入數據為第n層輸入數據,所述權值為所述第n輸出結果梯度;複雜度=β*F1*G*E*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第n層輸入數據的行、列值,E、F2為權值的行、列值;如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及權值是否為浮點數據,如該第n層輸入數據以及權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將權值轉換成浮點數據,然後將第n層輸入數據、權值以浮點數據類型執行矩陣乘矩陣運算。
在第一方面提供的方法中,如所述第n反向運算為:矩陣乘向量運算,所述輸入數據為第n層輸入數據,所述權值為所述第n輸出結果梯度;複雜度=β*F1*G*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第n層輸入數據的行、列值,F2為第n輸出結果梯度的列值;如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及權值是否為浮點數據,如該第n層輸入數據以及權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將權值轉換成浮點數據,然後將第n層輸入數據、權值以浮點數據類型執行矩陣乘向量運算。
在第一方面提供的方法中,所述第n反向運算還可以包括:偏置運算、全連接運算、GEMM運算、GEMV運算、激活運算中的一種或任意組合。
在第二方面提供的裝置中,所述處理電路,具體將第n反向運算複雜度與預設閾值比較,如所述第n反向運算複雜度高於所述預設閾值,確定所
述第n反向數據類型為定點類型,如所述第n反向運算複雜度低於或等於所述預設閾值,確定所述第n反向數據類型為浮點類型。
在第二方面提供的裝置中,所述集成電路芯片裝置還包括:數據類型轉換電路;所述處理電路,還用於確定所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據屬於的第n+1反向數據類型,如所述第n+1反向數據類型與所述第n反向數據類型不同,向所述數據類型轉換電路發送轉換命令,所述數據類型轉換電路,用於將屬於第n+1反向數據類型的所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據轉換成屬於第n反向數據類型的所述第n輸出結果梯度、第n層輸入數據、第n層權值組數據。
在第二方面提供的裝置中,如所述n層反向運算為卷積運算,卷積輸入數據為所述第n層輸入數據,卷積核為所述第n輸出結果梯度,所述處理電路,用於計算第n反向運算複雜度,第n反向運算複雜度=α*C1*kH*kW*M*N*W*C2*H;其中,α為卷積系數,取值範圍為大於1;C1、kH、kW、M為卷積核四個維度的值,N、W、C2、H為卷積輸入數據四個維度的值;所述處理電路,還用於如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該卷積輸入數據以及卷積核是否為浮點數據;如該卷積輸入數據以及卷積核不為浮點數據,將該卷積輸入數據轉換成浮點數據,將卷積核轉換成浮點數據,然後將卷積輸入數據、卷積核以浮點數據類型執行卷積運算。
在第二方面提供的裝置中,如所述第n反向運算為:矩陣乘矩陣運算,所述輸入數據為第n層輸入數據,所述權值為所述第n輸出結果梯度;所述處理電路,用於計算第n反向運算複雜度,第n反向運算複雜度=β*F1*G*E*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第n層輸入數據的行、列值,E、F2為權值的行、列值;所述處理單元,用於如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及權值是否為浮點數據,如該第n層輸入數據以及權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將權值轉換成浮點數據,然後將第n層輸入數據、權值以浮點數據類型執行矩陣乘矩陣運算。
在第二方面提供的裝置中,如所述第n反向運算為:矩陣乘向量運算,所述輸入數據為第n層輸入數據,所述權值為所述第n輸出結果梯度;所述處理電路,用於計算第n反向運算複雜度,第n反向運算複雜度=β*F1*G*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第n層輸入數據的行、列值,F2為第n輸出結果梯度的列值;所述處理電路,還用於如所述複雜度大於設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及權值是否為浮點數據,如該第n層輸入數據以及權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將權值轉換成浮點數據,然後將第n層輸入數據、權值以浮點數據類型執行矩陣乘向量運算。
如圖1所示,神經網絡訓練的步驟包括:
一個(多層)神經網絡中的各層依次執行正向運算;按照相反的層的順序依次執行反向運算得到權值梯度;用計算得到的權值的梯度去更新正向運算的權值;這就是神經網絡的訓練的依次迭代,整個訓練過程需要重復執行(即多次迭代計算)這個過程多次;如圖1a所示,為本披露實施例提供的一種神經網絡的正向運算,每一層使用自己的輸入數據和權值按照層的類型所指定的運算規則計算得到相應的輸出數據;神經網絡的正向運算過程(也叫推理,inference)是逐層處理各層的輸入數據,經過一定的計算,得到輸出數據的過程,具有如下特徵:某一層的輸入:某一層的輸入可以是神經網絡的輸入數據;某一層的輸入可以是其他層的輸出;某一層的輸入可以是本層上一時刻的輸出(對應於循環神經網絡的情況);某一層可以同時從多個上述輸入源獲取輸入;某一層的輸出:某一層的輸出可以作為神經網絡的輸出結果;某一層的輸出可以是其它層的輸入;某一層的輸出可以是下一時刻本層的輸入(循環神經網絡的情況);某一層的輸出可以向上述多個輸出方向輸出結果;
具體地,所述神經網絡中的層的運算的類型包括但不限於以下幾種:卷積層(即執行卷積運算);全連接層(即執行全連接運算);歸一化(規則化)層:包括LRN(Local Response Normalization)層,BN(Batch Normalization)層等類型;池化層;激活層:包括但不限於以下類型Sigmoid層,ReLU層,PReLu層,LeakyReLu層,Tanh層;層的反向運算,每一層的反向運算需要執行兩部分運算:一部分是使用可能是稀疏表示的輸出數據梯度和可能是稀疏表示的輸入數據計算出權值的梯度(用於在「權值更新」步驟更新本層的權值),另一部分是使用可能是稀疏表示的輸出數據梯度和可能是稀疏表示的權值,計算出輸入數據梯度(用於作為反向運算中下一層的輸出數據梯度以供其進行反向運算);反向運算按照與正向運算相反的順序,從最後一層開始反向傳遞梯度。
在一種可選方案中,某一層反向計算得到的輸出數據梯度可以來自:神經網絡最後的損失函數(lost function或者cost function)回傳的梯度;其它層的輸入數據梯度;本層上一時刻的輸入數據梯度(對應於循環神經網絡的情況);某一層可以同時從多個上述源獲取輸出數據梯度;
在執行完神經網絡的反向運算之後,就計算出了各層的權值的梯度,在這個步驟中,所述裝置的第一輸入緩存和第二輸入緩存分別用於存儲本層的權值和權值的梯度,然後在運算單元中使用權值梯度對權值進行更新;上文中提到的運算都是神經網絡中的一層的運算,對於多層神經網絡,其實現過程是,在正向運算中,當上一層人工神經網絡執行完成之後,下一層的運算指令會將運算單元中計算出的輸出數據作為下一層的輸入數據進行運算(或者是對該輸出數據進行某些操作再作為下一層的輸入數據),同時,將權值也替換為下一層的權值;在反向運算中,當上一層人工神經網絡的反向運算執行完成後,下一層運算指令會將運算單元中計算出的輸入數據梯度作為下一層的輸出數據梯度進行運算(或者是對該輸入數據梯度進行某些操作再作為下一層的輸出數據梯度),同時將權值替換為下一層的權值;(用以下的圖表示,以下圖中虛線的箭頭表示反向運算,實線的箭頭表示正向運算,各圖下面的標注表示圖的含義)
定點化數據的表示方法
定點化的方法是指將網絡中的某個數據塊的數據表示轉換成特定的某種固定小數點位置的數據表示方式(映射到電路裝置上數據的0/1比特位擺放方式);在一種可選方案中,將多個數據組成個數據塊作為一個整體使用同樣的定點表示方法進行定點化表示;圖1b示出了根據本發明實施例的用於存儲數據的短位數定點數據結構的具體表示方法。其中,1Bit位用於表示符號,M位用於表示整數部分,N位用於表示小數部分;相比於32位浮點數據表示形式,本發明採用的短位
定點數據表示形式除了佔用比特位數更少外,對於神經網絡中同一層、同一類型的數據,如第一個卷積層的所有權值數據,還另外設置了一個標誌位Point location記錄小數點的位置,這樣可以根據實際數據的分布調整數據表示的精度與可表示數據範圍。
對於浮點數的表示即32bit來表示,但是對於此技術方案,其採用定點數可以減少一個數值的比特位的位數,從而降低傳輸的數據量以及運算的數據量。
輸入數據用圖2a表示(N個樣本,每個樣本有C個通道,每個通道的特徵圖的高為H,寬為W),權值也即卷積核用圖2b表示(有M個卷積核,每個卷積核有C個通道,高和寬分別為KH和KW)。對於輸入數據的N個樣本,卷積運算的規則都是一樣的,下面解釋在一個樣本上進行卷積運算的過程,在一個樣本上,M個卷積核中的每一個都要進行同樣的運算,每個卷積核運算得到一張平面特徵圖,M個卷積核最終計算得到M個平面特徵圖,(對一個樣本,卷積的輸出是M個特徵圖),對於一個卷積核,要在一個樣本的每一個平面位置進行內積運算,然後沿著H和W方向進行滑動,例如,圖2c表示一個卷積核在輸入數據的一個樣本中右下角的位置進行內積運算的對應圖;圖2d表示卷積的位置向左滑動一格和圖2e表示卷積的位置向上滑動一格。
當第一運算為卷積運算,所述輸入數據為卷積輸入數據,所述權值數據為卷積核,第一複雜度=α*C*kH*kW*M*N*W*C*H;
其中,α為卷積系數,取值範圍為大於1;C1、kH、kW、M為卷積核四個維度的值,N、W、C2、H為卷積輸入數據四個維度的值;如所述第一複雜度大於設定閾值,確定該卷積輸入數據以及卷積核是否為浮點數據,如該卷積輸入數據以及卷積核不為浮點數據,將該卷積輸入數據轉換成浮點數據,將卷積核轉換成浮點數據,然後將卷積輸入數據、卷積核以浮點數據類型執行卷積運算。
具體的,該卷積處理的方式可以採用如圖3a所示的芯片結構處理,主處理電路(也可以稱為主單元)的數據轉換運算電路可以在第一複雜度大於設定閾值時,將權值的部分或全部卷積核中的數據轉換成定點類型的數據,主處理電路的控制電路將權值的部分或全部卷積核中的數據發送到通過橫向數據輸入介面直接與主處理電路相連的那些基礎處理電路(也可以稱為基礎單元)(例如,圖3b中最上方的灰色填充的竪向數據通路);在一種可選方案中,主處理電路的控制電路將權值中某個卷積核的數據每次發送一個數或者一部分數給某個基礎處理電路;(例如,對於某一個基礎處理電路,第1次發送第3行第1個數,第2次發送第3行數據中的第2個數,第3次發送第3行的第3個數......,或者第1次發送第3行前兩個數,第二次發送第3行第3和第4個數,第三次發送第3行第5和第6個數......;)在一種可選方案中另一種情況是,主處理電路的控制電路將權值中某幾個卷積核的數據每次各發送一個數者一部分數給某個基礎處理電路;(例如,對於某一個基礎處理電路,第1次發送第3,4,5行每行的第1個數,第2次發送第3,4,5行每行的第2個數,第3次發送第3,4,5行每行的第3個數......,
或者第1次發送第3,4,5行每行前兩個數,第二次發送第3,4,5行每行第3和第4個數,第三次發送第3,4,5行每行第5和第6個數......;)主處理電路的控制電路把輸入數據按照卷積的位置進行劃分,主處理電路的控制電路將輸入數據中的部分或全部卷積位置中的數據發送到通過竪向數據輸入介面直接與主處理電路相連的那些基礎處理電路(例如,圖3b中基礎處理電路陣列左側的灰色填充的橫向數據通路);在一種可選方案中,主處理電路的控制電路將輸入數據中某個卷積位置的數據每次發送一個數或者一部分數給某個基礎處理電路;(例如,對於某一個基礎處理電路,第1次發送第3列第1個數,第2次發送第3列數據中的第2個數,第3次發送第3列的第3個數......,或者第1次發送第3列前兩個數,第二次發送第3列第3和第4個數,第三次發送第3列第5和第6個數......;)在一種可選方案中另一種情況是,主處理電路的控制電路將輸入數據中某幾個卷積位置的數據每次各發送一個數或者一部分數給某個基礎處理電路;(例如,對於某一個基礎處理電路,第1次發送第3,4,5列每列的第1個數,第2次發送第3,4,5列每列的第2個數,第3次發送第3,4,5列每列的第3個數......,或者第1次發送第3,4,5列每列前兩個數,第二次發送第3,4,5列每列第3和第4個數,第三次發送第3,4,5列每列第5和第6個數......;)基礎處理電路接收到權值的數據之後,將該數據通過其橫向的數據輸出介面傳輸給其相連接下一個基礎處理電路(例如,圖3b中基礎處理電路陣列中間的白色填充的橫向的數據通路);基礎處理電路接收到輸入數據的數據後,將該數據通過其竪向的數據輸出介面傳輸給與其相連接的下一個基
礎處理電路(例如,圖3b中基礎處理電路陣列中間的白色填充的竪向的數據通路);每一個基礎處理電路對接收到的數據進行運算;在一種可選方案中,基礎處理電路每次計算一組或多組兩個數據的乘法,然後將結果累加到寄存器和/或片上緩存上;在一種可選方案中,基礎處理電路每次計算一組或多組兩個向量的內積,然後將結果累加到寄存器和/或片上緩存上;基礎處理電路計算出結果後,可以將結果從數據輸出介面傳輸出去;在一種可選方案中,該計算結果可以是內積運算的最終結果或中間結果;具體地,如果該基礎處理電路有直接與主處理電路相連接的輸出介面則從該介面傳輸結果,如果沒有,則向著能夠直接向主處理電路輸出的基礎處理電路的方向輸出結果(例如,圖3b中,最下面一行基礎處理電路將其輸出結果直接輸出給主處理電路,其他基礎處理電路從竪向的輸出介面向下傳輸運算結果)。
基礎處理電路接收到來自其他基礎處理電路的計算結果之後,將該數據傳輸給與其相連接的其他基礎處理電路或者主處理電路;向著能夠直接向主處理電路輸出的方向輸出結果(例如,最下面一行基礎處理電路將其輸出結果直接輸出給主處理電路,其他基礎處理電路從竪向的輸出介面向下傳輸運算結果);主處理電路接收到各個基礎處理電路內積運算的結果,即可得到輸出結果。
參閱圖4a,圖4a為一種矩陣乘以矩陣的運算,如所述第一運算為:矩陣乘矩陣運算,所述輸入數據為所述矩陣乘矩陣運算的第一矩陣,所述權值為所述矩陣乘矩陣運算的第二矩陣;第一複雜度=β*F1*G*E*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第一矩陣的行、列值,E、F2為第二矩陣的行、列值;如所述第一複雜度大於設定閾值,確定該第一矩陣以及第二矩陣是否為浮點數據,如該第一矩陣以及第二矩陣不為浮點數據,將該第一矩陣轉換成浮點數據,將第二矩陣轉換成浮點數據,然後將第一矩陣、第二矩陣以浮點數據類型執行矩陣乘矩陣運算。
參閱圖4b,使用如圖3b所示的裝置完成矩陣乘矩陣的運算;下面描述計算尺寸是M行L列的矩陣S和尺寸是L行N列的矩陣P的乘法的運算,(矩陣S中的每一行與矩陣P的每一列長度相同,如圖2d所示)所述神經網絡計算裝置擁有K個基礎處理電路:
步驟S401b、主處理電路在如第一複雜度大於設定閾值時,將矩陣S和矩陣P轉換成定點類型數據,主處理電路的控制電路將矩陣S中的每一行數據分發到K個基礎處理電路中的某一個上,基礎處理電路將接收到的數據保存在片上緩存和/或寄存器中;具體的,可以發送至K個基礎處理電路中與主處理電路連接的基礎處理電路。
在一種可選方案中,如果S的行數M<=K則,主處理電路的控制電路給M個基礎處理電路分別分發S矩陣的一行;在一種可選方案中,如果S的行數M>K,主處理電路的控制電路給每個基礎處理電路分別分發S矩陣中一行或多行的數據。
S中有Mi行分發到第i個基礎處理電路,這Mi行的集合稱為Ai,如圖2e表示第i個基礎處理電路上將要執行的計算。
在一種可選方案中,在每個基礎處理電路中,例如第i個基礎處理電路中:接收的由主處理電路分發的矩陣Ai,將矩陣Ai保存在第i個基礎處理電路寄存器和/或片上緩存中;優點是減少了之後的數據傳輸量,提高了計算效率,降低了功耗。
步驟S402b、主處理電路的控制電路將矩陣P中各部分以廣播的方式傳輸給各個基礎處理電路;在一種可選方案中,可以將矩陣P中各部分只廣播一次到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對這一次得到的矩陣P的數據進行充分地復用,完成對應與矩陣Ai中每一行的內積運算;本實施例中的復用具體可以為基礎處理電路在計算中重復使用,例如矩陣P的數據的復用,可以是對矩陣P的數據在多次使用。
在一種可選方案中,主處理電路的控制電路可以將矩陣P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的矩陣P的數據不進行復用,分次完成對應於矩陣Ai中的每一行的內積運算;在一種可選方案中,主處理電路的控制電路可以將矩陣P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的矩陣P的數據進行部分復用,完成對應於矩陣Ai中的每一行的內積運算;
在一種可選方案中,每個基礎處理電路,例如第i個基礎處理電路,計算矩陣Ai的數據和矩陣P的數據的內積;
步驟S403b、每個基礎處理電路的累加器電路將內積運算的結果進行累加並傳輸回主處理電路。
在一種可選方案中,基礎處理電路可以將每次執行內積運算得到的部分和傳輸回主處理電路進行累加;在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和保存在基礎處理電路的寄存器和/或片上緩存中,累加結束之後傳輸回主處理電路;在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和在部分情況下保存在基礎處理電路的寄存器和/或片上緩存中進行累加,部分情況下傳輸到主處理電路進行累加,累加結束之後傳輸回主處理電路。
參閱圖4c,為一種矩陣乘以向量的運算示意圖。如所述第一運算為:矩陣乘向量運算,所述輸入數據為所述矩陣乘向量運算的第一矩陣,所述權值為所述矩陣乘向量運算的向量;第一複雜度=β*F1*G*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為第一矩陣的行、列值,F2為向量的列值;如所述第一複雜度大於設定閾值,確定該第一矩陣以及向量是否為浮點數據,如該第一矩陣以及向量不為浮點數據,將該第一矩陣轉換成浮點數據,將向量轉換成浮點數據,然後將第一矩陣、向量以浮點數據類型執行矩陣乘向量運算。
參閱圖4d,圖4d提供了了一種矩陣乘向量的實現方法,具體可以包括:
步驟S401、主處理電路的數據轉換運算電路將矩陣S中的每一行數據轉換成定點類型的數據,主處理電路的控制電路分發到K個基礎處理電路中的某一個上,基礎處理電路將接收到的分發數據保存在基礎處理電路的片上緩存和/或寄存器中;在一種可選方案中,如果矩陣S的行數M<=K則,主處理電路的控制電路給K個基礎處理電路分別分發S矩陣的一行;
在一種可選方案中,如果矩陣S的行數M>K,則主處理電路的控制電路給每個基礎處理電路分別分發S矩陣中一行或多行的數據。
分發到第i個基礎處理電路的S中的行的集合為Ai,共有Mi個行,如圖2c表示第i個基礎處理電路上將要執行的計算。
在一種可選方案中,在每個基礎處理電路中,例如第i個基礎處理電路中,可以將接收到的分發數據例如矩陣Ai保存在第i個基礎處理電路的寄存器和/或片上緩存中;優點是減少了之後的分發數據的數據傳輸量,提高了計算效率,降低了功耗。
步驟S402、主處理電路的數據類型運算電路將向量P轉換成定點類型的數據,主處理電路的控制電路將定點類型的向量P中各部分以廣播的方式傳輸給K個基礎處理電路;在一種可選方案中,主處理電路的控制電路可以將向量P中各部分只廣播一次到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對這一次得到的向量P的數據進行充分地復用,完成對應與矩陣Ai中每一
行的內積運算。優點是,減少從主處理電路到基礎處理電路的向量P的重復傳輸的數據傳輸量,提高執行效率,降低傳輸功耗。
在一種可選方案中,主處理電路的控制電路可以將向量P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的向量P的數據不進行復用,分次完成對應於矩陣Ai中的每一行的內積運算;優點是,減少基礎處理電路內部的單次傳輸的向量P的數據傳輸量,並可以降低基礎處理電路緩存和/或寄存器的容量,提高執行效率,降低傳輸功耗,降低成本。
在一種可選方案中,主處理電路的控制電路可以將向量P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的向量P的數據進行部分復用,完成對應於矩陣Ai中的每一行的內積運算;優點是,減少從主處理電路到基礎處理電路的數據傳輸量,也減少基礎處理電路內部的數據傳輸量,提高執行效率,降低傳輸功耗。
步驟S403、K個基礎處理電路的內積運算器電路計算矩陣S和向量P的數據的內積,例如第i個基礎處理電路,計算矩陣Ai的數據和向量P的數據的內積;
步驟S404、K個基礎處理電路的累加器電路將內積運算的結果進行累加得到累加結果,將累加結果以定點類型形式傳輸回主處理電路。
在一種可選方案中,可以將每次基礎處理電路執行內積運算得到的部分和(部分和即累加結果的一部分,例如累加結果為:F1*G1+F2*G2+F3*G3+F4*G4+F5*G5,那麼部分和可以為:F1*G1+F2*G2+F3*G3的值)傳
輸回主處理電路進行累加;優點是,減少了基礎處理電路內部的運算量,提高基礎處理電路的運算效率。
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和保存在基礎處理電路的寄存器和/或片上緩存中,累加結束之後傳輸回主處理電路;優點是,減少了基礎處理電路和主處理電路之間的數據傳輸量,提高了運算效率,降低了數據傳輸功耗。
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和在部分情況下保存在基礎處理電路的寄存器和/或片上緩存中進行累加,部分情況下傳輸到主處理電路進行累加,累加結束之後傳輸回主處理電路;優點是,減少了基礎處理電路和主處理電路之間的數據傳輸量,提高了運算效率,降低了數據傳輸功耗,減少了基礎處理電路內部的運算量,提高基礎處理電路的運算效率。
神經網絡訓練方法
在神經網絡訓練過程中所涉及到所有的數據可以採用不同的數據表示方法;具體地,所述數據表示方法包括但不限於以下情況:不同位寬的浮點數;不同位寬的定點數,不同定點位置的定點數;訓練過程的不同時刻(具體來說就是不同的迭代次數或者初始化的時刻)、訓練過程中的不同階段(即正向或者反向運算)、不同的層、同一層中的不同數據塊(即多個輸入數據塊,輸出數據塊),或者同一個數據塊中劃分的不同部分的子數據塊,都可以:
可以分別使用定點或者浮點;對於定點:使用不同的定點位寬;使用不同定點偏移值(也即定點位置);下面以一個實際的例子來說明神經網絡訓練的具體實現方法,如圖1a所示為單層運算的神經網絡訓練的具體的計算示意圖,如圖1a所示,輸入數據與權值或參數執行本層運算,本申請實施例提供的技術方案依據輸入數據、權值以及本層的正向運算量確定是否將該輸入數據和權值的類型進行轉換,具體的方式可以為:如該輸入數據以及權值存儲所佔用的寄存器或存儲器空間大於設定閾值且本層的正向運算量大於設定運算量,確定該輸入數據和權值數據為浮點數據時,將該輸入數據和權值數據轉換成定點數據。如該輸入數據以及權值存儲所佔用的寄存器或存儲器空間小於設定閾值,如該輸入數據和權值數據為定點數據,將輸入數據和權值數據轉換成浮點數據後,執行本層運算。
對於上述數據類型轉換的原理本申請詳細說明一下,如圖1b所示,為一種定點類型數據的表達方法,對於計算系統,1個浮點數據的存儲位數為32bit,而對於定點數據,尤其是採用如圖1b所示的浮點類型的數據進行數據的表示,其1個定點數據的存儲位數可以做到16Bit以下,所以對於此轉換來說,可以極大的減少計算器之間的傳輸開銷,另外,對於計算器來說,較少比特位的數據存儲的空間也較小,即存儲開銷會較小,計算量也會減少,即計算開銷會減少,所以能夠減少計算開銷以及存儲的開銷,但是對於數據類型的轉換也是需要有部分的開銷的,下面簡稱轉換開銷,對於計算量大,
數據存儲量大的數據,轉換開銷相對於後續的計算開銷、存儲開銷以及傳輸開銷來說幾乎可以忽略不計,所以對於計算量大,數據存儲量大的數據,本申請採用了將數據類型轉換成定點類型的數據的技術方案,反之,對於計算量小,數據存儲量小的數據,此時由於本身計算開銷、存儲開銷以及傳輸開銷就比較小,此時如果使用定點數據,由於定點數據的精度會略低於浮點數據,在計算量較小的前提下,需要保證計算的精度,所以這裡將定點類型的數據轉換成浮點數據,即通過增加較小的開銷來提高計算的精度的目的。
下面以一個實際的例子來說明,如圖4e所示,本層運算方式為矩陣乘法,輸入數據以及權值均為矩陣,為了方便說明這裡的輸入數據以矩陣I為例,權值以矩陣W為例,如圖4e所示,輸出數據=矩陣I*矩陣W;這裡如果矩陣I以及矩陣W的列數量以及行數量之和較大,即可以認為上述矩陣I以及矩陣W在存儲器和/或寄存器所佔空間較大以及計算量也較大,這樣如果矩陣I以及矩陣W為浮點數據,則將矩陣I以及矩陣W轉換成定點數據,然後在執行矩陣乘法的運算。
例如,矩陣I為1000*1000的矩陣,矩陣W也為1000*1000的矩陣,那麼對於列數量以及行數量之和為2000,其數量很大,對應的計算量就更大,矩陣乘以矩陣的內積運算的乘法運算即109次,對於此技術方案,由於矩陣I以及矩陣W的數量很大,不可能一次將所有的數據全部傳輸,這樣同一數據可能會多次傳輸,假設為定點數據傳輸,就可以極大的減少傳輸的數據量,進而減少傳輸開銷,相對於,較少比特位的計算以及存儲也可以減少計算開銷以及存儲開銷。
對於將定點數據轉換成浮點數據的技術方案為,以反向運算為例,如圖4g所示的計算結構的上向箭頭方向為一種反向運算。以反向運算為例,對於方向運算,其方向運算的為輸出數據梯度,該輸出數據梯度具體可以為,如該輸出數據梯度為本次迭代計算的最後一層,該輸出數據梯度本次迭代計算的最後一層的輸出數據經過預設運算(該預設運算可以由廠家根據自身需要自行設定,這裡並不限定該預設運算的具體運算步驟)得到輸出數據梯度,如該輸出數據梯度為非本次迭代計算的最後一層,例如該輸出數據梯度為本次迭代計算的第n層,那麼該輸出數據梯度為第n+1層反向運算計算得到的輸入數據梯度。
下面以一個實際的例子來說明,如圖4g所示,本層運算方式為矩陣乘法,輸入數據為矩陣,權值為標量,為了方便說明這裡的輸入數據以矩陣I為例,權值以標量C為例,如圖4g所示,輸出數據=矩陣I*C;此時由於權值為標量的數據,數據計算量較小,這樣如果矩陣I為定點數據,則將矩陣I轉換成浮點數據,然後在執行矩陣乘標量的運算。
例如,矩陣I為10*10的矩陣,標量為C,那麼對於列數量以及行數量之和為20,其數量較小,(假設這裡大於100認為是較大,小於100認為是較小,對於該100的數字本領域技術人員可以任意設定。)對應的計算量就很小,矩陣乘以矩陣的內積運算的乘法運算即102次,由於計算量小,如果還是使用定點數據進行計算,會對其精度產生影響,為了使得計算精度更高,在較小計算量的前提下,通過浮點數據計算能夠提高計算精度。
在一種可選方案中,網絡中各層的各個數據塊可以分別採用固定的定點位寬,但是其定點位置隨著訓練迭代週期變化;
具體來說,在訓練過程中,某個數據塊的數據表示方法可以如下設定;具體地,在開始訓練的時候,可以對某個數據塊選擇任意數據表示方法;在一種可選方案中,可以選擇特定位寬的浮點表示方法;在一種可選方案中,可以選擇特定形式的定點表示方法;可以選擇特定定點位寬;可以選擇特定定點位置;在一種可選的方案中,可以根據該數據塊中所有數據的絕對值的最大值來設置定點位置;在一種可選方案中,可以根據該數據塊中所有數據的絕對值的最小值來設置定點位置;在一種可選方案中,可以根據其他數據塊的定點位置來確定初始化時本數據塊的定點位置;在一種可選方案中,可以根據經驗值設置本數據塊的定點位置;具體地,在訓練過程中,可以在任意迭代週期次數時改變某個數據塊的數據表示方法;在一種可選方案中,對於某個數據塊而言,可以不進行調整;在一種可選方案中,可以每隔一定的迭代次數進行調整;在一種可選方案中,可以每隔一定的訓練epoch數進行調整;在一種可選方案中,可以按照不固定的迭代次數間隔進行調整;在一種可選方案中,可以間隔不固定的訓練epoch數進行調整;
具體地,在訓練過程中,調整某個數據塊的表示方法的時候可以調整為任意數據表示方法;在一種可選方案中,如果一個數據塊是使用固定定點位寬定點數表示的,那麼其數據表示的定點位置的調整方式可以是:在一種可選方案中,每次按照初始化定點位置的設置方法來設置定點位置;在一種可選方案中,如果某個數據塊按照定點位置的初始化設置方法計算出來的定點位置在某個迭代週期比上個迭代週期增大的,那就將本週期的定點位置向著增大的方法改變;反之,則向著減小的方向改變。
本披露還提供一種集成電路芯片裝置,所述集成電路芯片裝置用於執行神經網絡的訓練,所述神經網絡包含多層,所述集成電路芯片裝置包括:處理電路以及外部介面;所述外部介面,用於接收訓練指令;所述處理電路,用於依據該訓練指令確定第一層輸入數據和第一層權值數據,通過第一層輸入數據和第一層權值數據執行神經網絡的n層正向運算得到第n輸出結果;所述處理電路,還用於依據第n輸出結果得到第n輸出結果梯度,依據所述訓練指令獲取第n層反向運算的第n反向運算,依據第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及第n反向運算得到第n反向運算複雜度,依據所述第n反向運算複雜度確定第n輸出結果梯度、第n層輸入數據、第n層權值組數據對應的第n反向數據類型,將第n輸出結果梯度、第n層輸入數據、第n層權值組數據以第n反向數據類型執行神經網絡的n層反向運算得
到n層運算的n個權值梯度;所述第n反向數據類型包括:定點類型或浮點類型;所述處理電路,還用於將應用所述n個權值梯度對n層運算的n個權值進行更新。
本披露還揭露了一個神經網絡運算裝置,其包括一個或多個在如圖3a或如圖3b所示的芯片,用於從其他處理裝置中獲取待運算數據和控制信息,執行指定的神經網絡運算,執行結果通過I/O介面傳遞給外圍設備。外圍設備譬如攝像頭,顯示器,鼠標,鍵盤,網卡,wifi介面,服務器。當包含一個以上神如圖3a或如圖3b所示的芯片時,如圖3a或如圖3b所示的芯片間可以通過特定的結構進行鏈接並傳輸數據,譬如,通過PCIE總線進行互聯並傳輸數據,以支持更大規模的神經網絡的運算。此時,可以共享同一控制系統,也可以有各自獨立的控制系統;可以共享內存,也可以每個加速器有各自的內存。此外,其互聯方式可以是任意互聯拓撲。
該神經網絡運算裝置具有較高的兼容性,可通過PCIE介面與各種類型的服務器相連接。
本披露還揭露了一個組合處理裝置,其包括上述的神經網絡運算裝置,通用互聯介面,和其他處理裝置(即通用處理裝置)。神經網絡運算裝置與其他處理裝置進行交互,共同完成用戶指定的操作。如5a為組合處理裝置的示意圖。
其他處理裝置,包括中央處理器CPU、圖形處理器GPU、神經網絡處理器等通用/專用處理器中的一種或以上的處理器類型。其他處理裝置所包括的處理器數量不做限制。其他處理裝置作為神經網絡運算裝置與外部數
據和控制的介面,包括數據搬運,完成對本神經網絡運算裝置的開啟、停止等基本控制;其他處理裝置也可以和神經網絡運算裝置協作共同完成運算任務。
通用互聯介面,用於在所述神經網絡運算裝置與其他處理裝置間傳輸數據和控制指令。該神經網絡運算裝置從其他處理裝置中獲取所需的輸入數據,寫入神經網絡運算裝置片上的存儲裝置;可以從其他處理裝置中獲取控制指令,寫入神經網絡運算裝置片上的控制緩存;也可以讀取神經網絡運算裝置的存儲模塊中的數據並傳輸給其他處理裝置。
如圖5b所示,可選的,該結構還包括存儲裝置,用於保存在本運算單元/運算裝置或其他運算單元所需要的數據,尤其適用於所需要運算的數據在本神經網絡運算裝置或其他處理裝置的內部存儲中無法全部保存的數據。
該組合處理裝置可以作為手機、機器人、無人機、視頻監控設備等設備的SOC片上系統,有效降低控制部分的核心面積,提高處理速度,降低整體功耗。此情況時,該組合處理裝置的通用互聯介面與設備的某些部件相連接。某些部件譬如攝像頭,顯示器,鼠標,鍵盤,網卡,wifi介面。
請參照圖5c,圖5c為本披露實施例提供的一種神經網絡處理器板卡的結構示意圖。如圖5c所示,上述神經網絡處理器板卡10包括神經網絡芯片封裝結構11、第一電氣及非電氣連接裝置12和第一基板(substrate)13。
本披露對於神經網絡芯片封裝結構11的具體結構不作限定,可選的,如圖5d所示,上述神經網絡芯片封裝結構11包括:神經網絡芯片111、第二電氣及非電氣連接裝置112、第二基板113。
本披露所涉及的神經網絡芯片111的具體形式不作限定,上述的神經網絡芯片111包含但不限於將神經網絡處理器集成的神經網絡晶片,上述晶片可以由硅材料、鍺材料、量子材料或分子材料等製成。根據實際情況(例如:較嚴苛的環境)和不同的應用需求可將上述神經網絡晶片進行封裝,以使神經網絡晶片的大部分被包裹住,而將神經網絡晶片上的引腳通過金線等導體連到封裝結構的外邊,用於和更外層進行電路連接。
本披露對於神經網絡芯片111的具體結構不作限定,可選的,請參照圖1a或圖1b所示的裝置。
本披露對於第一基板13和第二基板113的類型不做限定,可以是印制電路板(printed circuit board,PCB)或(printed wiring board,PWB),還可能為其它電路板。對PCB的製作材料也不做限定。
本披露所涉及的第二基板113用於承載上述神經網絡芯片111,通過第二電氣及非電氣連接裝置112將上述的神經網絡芯片111和第二基板113進行連接得到的神經網絡芯片封裝結構11,用於保護神經網絡芯片111,便於將神經網絡芯片封裝結構11與第一基板13進行進一步封裝。
對於上述具體的第二電氣及非電氣連接裝置112的封裝方式和封裝方式對應的結構不作限定,可根據實際情況和不同的應用需求選擇合適的封裝方式並進行簡單地改進,例如:倒裝芯片球柵陣列封裝(Flip Chip Ball Grid Array Package,FCBGAP),薄型四方扁平式封裝(Low-profile Quad Flat Package,LQFP)、帶散熱器的四方扁平封裝(Quad Flat Package with Heat sink,HQFP)、無引腳四方扁平封裝(Quad Flat Non-lead Package,QFN)或小間距四方扁平式封裝(Fine-pitch Ball Grid Package,FBGA)等封裝方式。
倒裝芯片(Flip Chip),適用於對封裝後的面積要求高或對導線的電感、信號的傳輸時間敏感的情況下。除此之外可以用引線鍵合(Wire Bonding)的封裝方式,減少成本,提高封裝結構的靈活性。
球柵陣列(Ball Grid Array),能夠提供更多引腳,且引腳的平均導線長度短,具備高速傳遞信號的作用,其中,封裝可以用引腳網格陣列封裝(Pin Grid Array,PGA)、零插拔力(Zero Insertion Force,ZIF)、單邊接觸連接(Single Edge Contact Connection,SECC)、觸點陣列(Land Grid Array,LGA)等來代替。
可選的,採用倒裝芯片球柵陣列(Flip Chip Ball Grid Array)的封裝方式對神經網絡芯片111和第二基板113進行封裝,具體的神經網絡芯片封裝結構的示意圖可參照圖6。如圖6所示,上述神經網絡芯片封裝結構包括:神經網絡芯片21、焊盤22、焊球23、第二基板24、第二基板24上的連接點25、引腳26。
其中,焊盤22與神經網絡芯片21相連,通過在焊盤22和第二基板24上的連接點25之間焊接形成焊球23,將神經網絡芯片21和第二基板24連接,即實現了神經網絡芯片21的封裝。
引腳26用於與封裝結構的外部電路(例如,神經網絡處理器板卡10上的第一基板13)相連,可實現外部數據和內部數據的傳輸,便於神經網絡芯片21或神經網絡芯片21對應的神經網絡處理器對數據進行處理。對於引腳的類型和數量本披露也不作限定,根據不同的封裝技術可選用不同的引腳形式,並遵從一定規則進行排列。
可選的,上述神經網絡芯片封裝結構還包括絕緣填充物,置於焊盤22、焊球23和連接點25之間的空隙中,用於防止焊球與焊球之間產生干擾。
其中,絕緣填充物的材料可以是氮化硅、氧化硅或氧氮化硅;干擾包含電磁干擾、電感干擾等。
可選的,上述神經網絡芯片封裝結構還包括散熱裝置,用於散髮神經網絡芯片21運行時的熱量。其中,散熱裝置可以是一塊導熱性良好的金屬片、散熱片或散熱器,例如,風扇。
舉例來說,如圖6a所示,神經網絡芯片封裝結構11包括:神經網絡芯片21、焊盤22、焊球23、第二基板24、第二基板24上的連接點25、引腳26、絕緣填充物27、散熱膏28和金屬外殼散熱片29。其中,散熱膏28和金屬外殼散熱片29用於散髮神經網絡芯片21運行時的熱量。
可選的,上述神經網絡芯片封裝結構11還包括補強結構,與焊盤22連接,且內埋於焊球23中,以增強焊球23與焊盤22之間的連接強度。
其中,補強結構可以是金屬線結構或柱狀結構,在此不做限定。
本披露對於第一電氣及非電氣裝置12的具體形式也不作限定,可參照第二電氣及非電氣裝置112的描述,即通過焊接的方式將神經網絡芯片封裝結構11進行封裝,也可以採用連接線連接或插拔方式連接第二基板113和第一基板13的方式,便於後續更換第一基板13或神經網絡芯片封裝結構11。
可選的,第一基板13包括用於擴展存儲容量的內存單元的介面等,例如:同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,SDRAM)、雙倍速率同步動態隨機存儲器(Double Date Rate SDRAM,DDR)等,通過擴展內存提高了神經網絡處理器的處理能力。
第一基板13上還可包括快速外部設備互連總線(Peripheral Component Interconnect-Express,PCI-E或PCIe)介面、小封裝可熱插拔(Small Form-factor Pluggable,SFP)介面、乙太網介面、控制器局域網總線(Controller Area Network,CAN)介面等等,用於封裝結構和外部電路之間的數據傳輸,可提高運算速度和操作的便利性。
將神經網絡處理器封裝為神經網絡芯片111,將神經網絡芯片111封裝為神經網絡芯片封裝結構11,將神經網絡芯片封裝結構11封裝為神經網絡處理器板卡10,通過板卡上的介面(插槽或插芯)與外部電路(例如:計算機主板)進行數據交互,即直接通過使用神經網絡處理器板卡10實現神經網絡處理器的功能,並保護神經網絡芯片111。且神經網絡處理器板卡10上還可添加其他模塊,提高了神經網絡處理器的應用範圍和運算效率。
在一個實施例里,本公開公開了一個電子裝置,其包括了上述神經網絡處理器板卡10或神經網絡芯片封裝結構11。
電子裝置包括數據處理裝置、機器人、電腦、打印機、掃描儀、平板電腦、智能終端、手機、行車記錄儀、導航儀、傳感器、攝像頭、服務器、相機、攝像機、投影儀、手錶、耳機、移動存儲、可穿戴設備、交通工具、家用電器、和/或醫療設備。
所述交通工具包括飛機、輪船和/或車輛;所述家用電器包括電視、空調、微波爐、冰箱、電飯煲、加濕器、洗衣機、電燈、燃氣灶、油煙機;所述醫療設備包括核磁共振儀、B型超音波儀和/或心電圖儀。
以上所述的具體實施例,對本披露的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本披露的具體實施例而
已,並不用於限制本披露,凡在本披露的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本披露的保護範圍之內。
Claims (18)
- 一種集成電路芯片裝置上執行的神經網絡的訓練方法,該神經網絡包含n層,該n取值範圍為大於等於2的整數,其中,該方法包括如下步驟:接收一訓練指令,依據該訓練指令確定第一層輸入數據和第一層權值組數據,計算裝置通過該第一層輸入數據和該第一層權值組數據執行神經網絡的n層正向運算得到正向運算的第n輸出結果;依據該第n輸出結果得到第n輸出結果梯度,依據該訓練指令獲取第n層反向運算的第n反向運算,依據該第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及該第n反向運算得到一第n反向運算複雜度,依據該第n反向運算複雜度確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據對應的第n反向數據類型,將該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據以該第n反向數據類型執行神經網絡的該第n層反向運算得到第n層權值組梯度和第n層輸入數據梯度;應用該第n層權值組梯度對該第n層權值組數據進行更新;該第n反向數據類型包括定點類型或浮點類型;將該第n層輸入數據梯度作為第n-1層的第n-1輸出結果梯度執行n-1層方向運算得到n-1層權值組梯度,應用該n-1層權值組梯度更新對應層的一權值組數據,該權值組數據包括至少二個權值。
- 根據申請專利範圍第1項的方法,其中,該依據該第n反向運算複雜度確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據對應的該第n反向數據類型,包括: 將該第n反向運算複雜度與一預設閾值比較,如該第n反向運算複雜度高於該預設閾值,確定該第n反向數據類型為定點類型,如該第n反向運算複雜度低於或等於該預設閾值,計算裝置確定該第n反向數據類型為浮點類型。
- 根據申請專利範圍第2項的方法,其中,該方法在依據該第n反向運算複雜度確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據對應的該第n反向數據類型之後還包括:確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據屬於的第n+1反向數據類型,如該第n+1反向數據類型與該第n反向數據類型不同,將屬於該第n+1反向數據類型的該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據轉換成屬於該第n反向數據類型的該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據。
- 根據申請專利範圍第1項的方法,其中,如該n層反向運算為卷積運算,卷積輸入數據為該第n層輸入數據,卷積核為該第n輸出結果梯度,該第n反向運算複雜度=α*C1*kH*kW*M*N*W*C2*H;其中,α為卷積系數,取值範圍為大於1;C1、kH、kW、M為該卷積核四個維度的值,N、W、C2、H為該卷積輸入數據四個維度的值;如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該卷積輸入數據以及該卷積核是否為浮點數據,如該卷積輸入數據以及該卷積核不為浮點數據,將該卷積輸入數據轉換成浮點數據,將該卷積核轉換成浮點數據,然後將該卷積輸入數據、該卷積核以浮點數據類型執行卷積運算。
- 根據申請專利範圍第1項的方法,其中,如該第n反向運算為一矩陣乘矩陣運算,該輸入數據為該第n層輸入數據,該權值為該第n輸出結果梯度;該第n反向運算複雜度=β*F1*G*E*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為該第n層輸入數據的行、列值,E、F2為該權值的行、列值;如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及該權值是否為浮點數據,如該第n層輸入數據以及該權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將該權值轉換成浮點數據,然後將該第n層輸入數據、該權值以浮點數據類型執行該矩陣乘矩陣運算。
- 根據申請專利範圍第1項的方法,其中,如該第n反向運算為一矩陣乘向量運算,該輸入數據為該第n層輸入數據,該權值為該第n輸出結果梯度;該第n反向運算複雜度=β*F1*G*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為該第n層輸入數據的行、列值,F2為該第n輸出結果梯度的列值;如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及該權值是否為浮點數據,如該第n層輸入數據以及該權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將該權值轉換成浮點數據,然後將該第n層輸入數據、該權值以浮點數據類型執行該矩陣乘向量運算。
- 根據申請專利範圍第1-6項任意一項的方法,其中,該n層反向運算還包括:偏置運算、全連接運算、GEMM運算、GEMV運算、激活運算中的一種或任意組合。
- 一種集成電路芯片裝置,其中,該集成電路芯片裝置用於執行神經網絡的訓練運算,該神經網絡包括n層;該集成電路芯片裝置包括:處理電路以及外部介面;該外部介面,用於接收一訓練指令;該處理電路,用於依據該訓練指令確定第一層輸入數據和第一層權值組數據,計算裝置通過該第一層輸入數據和該第一層權值組數據執行神經網絡的n層正向運算得到正向運算的第n輸出結果;該處理電路,還用於依據該第n輸出結果得到第n輸出結果梯度,依據該訓練指令獲取第n層反向運算的第n反向運算,依據該第n輸出結果梯度、第n層輸入數據、第n層權值組數據以及該第n反向運算得到一第n反向運算複雜度,依據該第n反向運算複雜度確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據對應的第n反向數據類型,將該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據以該第n反向數據類型執行神經網絡的該第n層反向運算得到第n層權值組梯度和第n層輸入數據梯度;應用該第n層權值組梯度對該第n層權值組數據進行更新;該第n反向數據類型包括:定點類型或浮點類型;該處理電路,還用於將該第n層輸入數據梯度作為第n-1層的第n-1輸出結果梯度執行n-1層方向運算得到n-1層權值組梯度,應用該n-1層權值組梯度更新對應層的權值組數據,該權值組數據包括;至少二個權值。
- 根據申請專利範圍第8項的集成電路芯片裝置,其中,該處理電路,具體將該第n反向運算複雜度與一預設閾值比較,如該第n反向運算複雜度高於該預設閾值,確定該第n反向數據類型為定點類型,如該第n反向運算複雜度低於或等於該預設閾值,確定該第n反向數據類型為浮點類型。
- 根據申請專利範圍第9項的集成電路芯片裝置,其中,該集成電路芯片裝置還包括:數據類型轉換電路;該處理電路,還用於確定該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據屬於的第n+1反向數據類型,如該第n+1反向數據類型與該第n反向數據類型不同,向該數據類型轉換電路發送轉換命令,該數據類型轉換電路,用於將屬於第n+1反向數據類型的該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據轉換成屬於該第n反向數據類型的該第n輸出結果梯度、該第n層輸入數據、該第n層權值組數據。
- 根據申請專利範圍第8項的集成電路芯片裝置,其中,如該n層反向運算為卷積運算,卷積輸入數據為該第n層輸入數據,卷積核為該第n輸出結果梯度,該處理電路,用於計算該第n反向運算複雜度,該第n反向運算複雜度=α*C1*kH*kW*M*N*W*C2*H;其中,α為卷積系數,取值範圍為大於1;C1、kH、kW、M為該卷積核四個維度的值,N、W、C2、H為該卷積輸入數據四個維度的值;該處理電路,還用於如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該卷積輸入數據以及該卷積核是否為浮點 數據;如該卷積輸入數據以及該卷積核不為浮點數據,將該卷積輸入數據轉換成浮點數據,將該卷積核轉換成浮點數據,然後將該卷積輸入數據、該卷積核以浮點數據類型執行卷積運算。
- 根據申請專利範圍第8項的集成電路芯片裝置,其中,如該第n反向運算為一矩陣乘矩陣運算,該輸入數據為該第n層輸入數據,該權值為該第n輸出結果梯度;該處理電路,用於計算該第n反向運算複雜度,該第n反向運算複雜度=β*F1*G*E*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為該第n層輸入數據的行、列值,E、F2為該權值的行、列值;該處理單元,用於如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及該權值是否為浮點數據,如該第n層輸入數據以及該權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將該權值轉換成浮點數據,然後將該第n層輸入數據、該權值以浮點數據類型執行該矩陣乘矩陣運算。
- 根據申請專利範圍第8項的集成電路芯片裝置,其中,如該第n反向運算為一矩陣乘向量運算,該輸入數據為該第n層輸入數據,該權值為該第n輸出結果梯度;該處理電路,用於計算該第n反向運算複雜度,該第n反向運算複雜度=β*F1*G*F2;其中,β為矩陣系數,取值範圍為大於等於1,F1、G為該第n層輸入數據的行、列值,F2為該第n輸出結果梯度的列值; 該處理電路,還用於如該第n反向運算複雜度大於一設定閾值,確定該第n反向數據類型為浮點數據類型,確定該第n層輸入數據以及該權值是否為浮點數據,如該第n層輸入數據以及該權值不為浮點數據,將該第n層輸入數據轉換成浮點數據,將該權值轉換成浮點數據,然後將該第n層輸入數據、該權值以浮點數據類型執行該矩陣乘向量運算。
- 根據申請專利範圍第8-13項任意一項的集成電路芯片裝置,其中,該n反向運算還包括:偏置運算、全連接運算、GEMM運算、GEMV運算、激活運算中的一種或任意組合。
- 一種神經網絡運算裝置,其中,該神經網絡運算裝置包括一個或多個如申請專利範圍第8-14項任意一項的集成電路芯片裝置。
- 一種組合處理裝置,其中,該組合處理裝置包括:如申請專利範圍第15項的一神經網絡運算裝置、一通用互聯介面和一通用處理裝置;該神經網絡運算裝置通過該通用互聯介面與該通用處理裝置連接。
- 一種芯片,其中,該芯片集成如申請專利範圍第8-14項任意一項的裝置。
- 一種電子設備,其中,該電子設備包括如申請專利範圍第17項的芯片。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347767.1A CN109961138B (zh) | 2017-12-14 | 2017-12-14 | 神经网络训练方法及相关产品 |
CN201711347767.1 | 2017-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201928794A TW201928794A (zh) | 2019-07-16 |
TWI793225B true TWI793225B (zh) | 2023-02-21 |
Family
ID=67018622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107144042A TWI793225B (zh) | 2017-12-14 | 2018-12-07 | 神經網絡訓練方法及相關產品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109961138B (zh) |
TW (1) | TWI793225B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109978156B (zh) * | 2017-12-28 | 2020-06-12 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109977446B (zh) * | 2017-12-28 | 2020-07-07 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
EP3789871B1 (en) | 2017-12-27 | 2023-06-07 | Cambricon Technologies Corporation Limited | Integrated circuit chip device |
CN110490315B (zh) * | 2019-08-14 | 2023-05-23 | 中科寒武纪科技股份有限公司 | 神经网络的反向运算稀疏方法及相关产品 |
CN111523661B (zh) * | 2020-04-21 | 2023-03-24 | 厦门利德集团有限公司 | 基于信息熵、自期望的电力安全作业神经元网络优化方法 |
CN111860818B (zh) * | 2020-07-23 | 2022-11-08 | 哈尔滨工业大学(威海) | 基于智能芯片的som神经网络算法处理方法 |
CN114679388B (zh) * | 2022-02-22 | 2023-09-05 | 同济大学 | 一种时间敏感网络数据流量预测方法、系统及存储介质 |
CN117634459A (zh) * | 2024-01-24 | 2024-03-01 | 山东海量信息技术研究院 | 目标内容生成及模型训练方法、装置、系统、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201128542A (en) * | 2010-02-04 | 2011-08-16 | Univ Nat Taipei Technology | Parallel learning architecture of back propagation artificial neural networks and mthod thereof |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
TW201706918A (zh) * | 2015-04-28 | 2017-02-16 | 高通公司 | 作爲供神經網路的訓練準則的濾波器特異性 |
US20170061279A1 (en) * | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN106991478A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络反向训练的装置和方法 |
WO2017185391A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107330515A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
US10380479B2 (en) * | 2015-10-08 | 2019-08-13 | International Business Machines Corporation | Acceleration of convolutional neural network training using stochastic perforation |
CN107301454B (zh) * | 2016-04-15 | 2021-01-22 | 中科寒武纪科技股份有限公司 | 支持离散数据表示的人工神经网络反向训练装置和方法 |
-
2017
- 2017-12-14 CN CN201711347767.1A patent/CN109961138B/zh active Active
-
2018
- 2018-12-07 TW TW107144042A patent/TWI793225B/zh active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201128542A (en) * | 2010-02-04 | 2011-08-16 | Univ Nat Taipei Technology | Parallel learning architecture of back propagation artificial neural networks and mthod thereof |
US20170061279A1 (en) * | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
TW201706918A (zh) * | 2015-04-28 | 2017-02-16 | 高通公司 | 作爲供神經網路的訓練準則的濾波器特異性 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN106991478A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络反向训练的装置和方法 |
WO2017185391A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107330515A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
Also Published As
Publication number | Publication date |
---|---|
CN109961138A (zh) | 2019-07-02 |
TW201928794A (zh) | 2019-07-16 |
CN109961138B (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI793225B (zh) | 神經網絡訓練方法及相關產品 | |
US11748601B2 (en) | Integrated circuit chip device | |
TWI791725B (zh) | 神經網絡運算方法、集成電路芯片裝置及相關產品 | |
US20230120704A1 (en) | Integrated circuit chip apparatus | |
TWI768159B (zh) | 集成電路芯片裝置及相關產品 | |
TWI767098B (zh) | 神經網絡正向運算方法及相關產品 | |
TWI793224B (zh) | 集成電路芯片裝置及相關產品 | |
CN109977446B (zh) | 集成电路芯片装置及相关产品 | |
TWI767097B (zh) | 集成電路芯片裝置及相關產品 | |
CN109978156B (zh) | 集成电路芯片装置及相关产品 | |
CN109978148B (zh) | 集成电路芯片装置及相关产品 | |
TWI768160B (zh) | 集成電路芯片裝置及相關產品 | |
CN109978157B (zh) | 集成电路芯片装置及相关产品 | |
WO2019165946A1 (zh) | 集成电路芯片装置、板卡及相关产品 | |
TWI795482B (zh) | 集成電路芯片裝置及相關產品 | |
CN109978158B (zh) | 集成电路芯片装置及相关产品 | |
WO2019165940A1 (zh) | 集成电路芯片装置、板卡及相关产品 | |
CN111832712A (zh) | 运算数据的量化方法及相关产品 |