TW202129551A - 運算裝置和運算方法 - Google Patents
運算裝置和運算方法 Download PDFInfo
- Publication number
- TW202129551A TW202129551A TW109136466A TW109136466A TW202129551A TW 202129551 A TW202129551 A TW 202129551A TW 109136466 A TW109136466 A TW 109136466A TW 109136466 A TW109136466 A TW 109136466A TW 202129551 A TW202129551 A TW 202129551A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- offset value
- actual
- operation result
- bit width
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
- 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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- 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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Monitoring And Testing Of Nuclear Reactors (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (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,其在保持模型性能的前提下降低了模型大小,同時提升模型速度。
深度神經網路因其卓越性能目前被普遍應用於各種人工智慧設備中,在某些設備,特別是移動(mobile)設備中,儲存和計算資源是比較少的。如何利用較少的儲存和計算資源提高神經網路的執行速度顯得尤為重要。
然而在嵌入式設備的積體電路(IC)中若要進行卷積運算並達到高精準度,必須要有較多的記憶體空間執行高複雜度的運算,將會造成較高的成本與較大的晶片體積。
因此,有必要提出一種卷積運算方法和使用其方法的晶片,可以降低記憶體的成本與晶片體積。
本發明旨在至少解決現有技術中存在的技術問題之一,提供一種運算裝置以及一種運算方法。
本發明的一個方面提供一種運算裝置,所述運算裝置包括一量化單元、一暫存單元、一控制單元、一個積核單元以及一乘加單元。所述量化單元用於接收一第一特徵資料並對所述第一特徵資料進行非對稱均勻量化,以獲得一第二特徵資料後儲存於所述暫存單元所述量化單元還用於接收一第一權重係數並對所述第一權重係數進行對稱均勻量化,以獲得一第二權重係數後儲存於所述暫存單元。所述卷積核單元用於根據所述控制單元的指令對所述第二特徵資料和所述第二權重係數執行一卷積運算,以獲得一初始運算結果。所述乘加單元用於對所述初始運算結果、一實際量化因數以及一實際偏置值執行一乘加運算,以獲得一最終運算結果。
在一些可選地實施方式中,所述運算裝置還包括一個離線計算單元,所述離線計算單元與所述乘加單元相連,其中,所述離線計算單元用於離線計算一初始化偏置值、量化參數零點產生的一些計算項以及所述實際量化因數,並合併所述初始化偏置值和量化參數零點產生的一些計算項,以生成所述實際偏置值。
本發明的另一方面,提供一種運算方法,所述運算方法包括:接收一第一特徵資料並對所述第一特徵資料進行非對稱均勻量化,以獲得一第二特徵資料;接收一第一權重係數並對所述第一權重係數進行對稱均勻量化,以獲得一第二權重係數;根據指令對所述第二特徵資料和所述第二權重係數執行一卷積運算,以獲得一初始運算結果;以及對所述初始運算結果、一實際量化因數以及一實際偏置值執行一乘加運算,以獲得一最終運算結果。
在一些可選地實施方式中,所述運算方法還包括:離線計算一初始化偏置值、量化參數零點產生的一些計算項以及所述實際量化因數;以及合併所述初始化偏置值和量化參數零點產生的一些計算項,以生成所述實際偏置值。
本發明實施例的運算裝置及運算方法,通過對第一特徵資料進行非對稱均勻量化來獲得第二特徵資料,以及對第一權重係數進行對稱均勻量化來獲得第二權重係數,這樣,可以省去由量化參數零點帶來的線上(online)計算,可以使得線上(online)計算量和第二特徵資料、第二權重係數均採用對稱量化時一致,但由於本發明的第二特徵資料採用非對稱均勻量化,所以精度比第二特徵資料和第二權重係數都採用均勻量化時更高,這在低位元時效果更為明顯。
為使本領域具有通常知識者更好地理解本發明的技術方案,下面結合附圖和具體實施方式對本發明作進一步詳細描述。
首先,參照圖1來描述用於實現本發明實施例的運算裝置及運算方法的示例電子設備。
如圖1所示,電子設備200包括一個或多個處理器210、一個或多個儲存裝置220、一個或多個輸入裝置230、一個或多個輸出裝置240等,這些元件通過匯流排系統250和/或其他形式的連接機構互連。應當注意,圖1所示的電子設備的元件和結構只是示例性的,而非限制性的,根據需要,電子設備也可以具有其他元件和結構。
處理器210可以是中央處理單元(CPU)或者具有資料處理能力和/或指令執行能力的其他形式的處理單元,並且可以控制電子設備200中的其他元件以執行期望的功能。
儲存裝置220可以包括一個或多個電腦程式產品,所述電腦程式產品可以包括各種形式的電腦可讀取記錄媒體,例如揮發性記憶體和/或非揮發性記憶體。所述揮發性記憶體例如可以包括隨機存取記憶體(RAM)和/或高速緩衝記憶體(cache)等。所述非揮發性記憶體例如可以包括唯讀記憶體(ROM)、硬碟、快閃記憶體等。在所述電腦可讀取記錄媒體上可以儲存一個或多個電腦程式指令,處理器可以運行所述程式指令,以實現下文所述的本發明實施例中(由處理器實現)的用戶端功能以及/或者其他期望的功能。在所述電腦可讀取記錄媒體中還可以儲存各種應用程式和各種資料,例如,所述應用程式使用和/或產生的各種資料等。
輸入裝置230可以是使用者用來輸入指令的裝置,並且可以包括鍵盤、滑鼠、麥克風和觸控式螢幕等中的一個或多個。
輸出裝置240可以向外部(例如使用者)輸出各種資訊(例如圖像或聲音),並且可以包括顯示器、揚聲器等中的一個或多個。
下面,將參考圖2描述根據本發明實施例的運算裝置。
如圖2所示,一種運算裝置100包括一個量化單元110、一個卷積核單元120、一個乘加單元130、一個暫存單元140以及一個控制單元170。量化單元110用於接收一第一特徵資料,例如是特徵圖(Feature maps)的資料,並對第一特徵資料進行非對稱均勻量化用以獲得一第二特徵資料IB後儲存於暫存單元140。量化單元110還用於接收一第一權重係數(weights)並對第一權重係數進行對稱均勻量化以獲得一第二權重係數KB後儲存於暫存單元140。卷積核單元120用於根據控制單元170的指令對第二特徵資料IB和第二權重係數KB執行一卷積運算,以獲得一初始運算結果AB1後儲存於暫存單元140。該控制單元170例如可以是中央處理單元(CPU)或者具有資料處理能力和/或指令執行能力的其他形式的控制單元。控制單元170可以用於控制將哪些第二權重係數KB、哪些第二特徵資料IB以及哪些初始運算結果AB1發送到卷積核單元120中,以便該卷積核單元120計算得到具有第一位元寬度的累加初始運算結果AB2後儲存於暫存單元140,AB2=AB1+KB*IB,AB2是一個累加的結果。乘加單元130用於對具有第一位元寬度的累加初始運算結果AB2、一實際量化因數(scale)以及一實際偏置值(Bias_comb)執行乘加運算來獲得一最終運算結果VB,並將最終運算結果VB暫存至暫存單元140中。
本實施例的運算裝置,通過對第一特徵資料進行非對稱均勻量化以獲得第二特徵資料,以及對第一權重係數進行對稱均勻量化以獲得第二權重係數。這樣,可以省去由量化參數零點帶來的線上(online)計算,降低計算量、節省儲存資源,並且可以使得online計算量和第二特徵資料、第二權重係數均採用對稱量化時一致,但由於本實施例中的第二特徵資料採用非對稱均勻量化,所以精度比第二特徵資料和第二權重係數都採用均勻量化時更高,這在低位元時效果更為明顯。
示例性的,如圖2所示,運算裝置100還包括一個離線計算單元150,離線計算單元150與乘加單元130相連,其中,離線計算單元150用於離線計算一初始化偏置值、量化參數零點產生的一些計算項以及實際量化因數,並合併初始化偏置值和量化參數零點產生的一些計算項,以生成實際偏置值。
具體地,離線計算單元150,首先離線(offline)計算神經網路卷積初始化偏置值(bias)、量化參數零點產生的一些計算項以及實際量化因數(scale)等,然後合併bias和量化參數零點產生的一些計算項,以生成實際偏置值(bias_float)。
本實施例的運算裝置,初始化偏置值、量化參數零點產生的一些計算項、實際量化因數以及實際偏置值等的計算過程均是通過離線計算單元離線計算完成,從而可以減少線上(online)計算量,而且離線(offline)可以用單精確度浮點數(single precision floating point,FP32)計算,這樣既不影響卷積的線上(online)執行速度,又沒有精度損失。
需要說明的是,離線計算單元150除了可以採用單精確度浮點數離線計算相關參數以外,本領域具有通常知識者還可以根據實際需要,選擇其他一些計算工具進行離線計算,本發明實施例對此並不具體限制。
示例性的,如圖2所示,裁剪單元160用於接收具有第一位元寬度的初始運算結果AB2,並將具有第一位元寬度的初始運算結果AB2裁剪生成具有第二位元寬度的初始運算結果OB。乘加單元130用於對具有第二位元寬度的初始運算結果OB、實際量化因數以及實際偏置值執行乘加運算,以獲得最終運算結果VB。其中,第一位元寬度大於第二位元寬度。
本實施例的運算裝置,通過統計初始運算結果的範圍,可以將具有較高位元寬度的初始運算結果裁剪成較低位元寬度,也即用更低的位元寬度表示初始運算結果,僅保留高位元,這樣可以在相同的計算資源下,可以使得運算裝置具有更高的平行計算能力,並且可以節省儲存資源,降低記憶體存取(memory access)次數,提高網路的執行效率,並且,因為保留了初始運算結果的高位元,所以性能損失較小,此外,通過將具有第一位元寬度的初始運算結果裁剪成具有第二位元寬度的初始運算結果,可以節省該具有第二位元寬度的初始運算結果的儲存空間。
示例性的,如圖2所示,對第二位元寬度的初始運算結果、實際量化因數以及實際偏置值執行乘加運算,獲得最終運算結果,還包括:
裁剪單元160還用於接收具有第一位元寬度的實際偏置值,並將具有第一位元寬度的實際偏置值裁剪生成具有第二位元寬度的實際偏置值。乘加單元130用於對具有第二位元寬度的初始運算結果OB、實際量化因數以及具有第二位元寬度的實際偏置值執行乘加運算,以獲得最終運算結果VB。
本實施例的運算裝置,通過統計實際偏置值的範圍,可以將具有較高位元寬度的實際偏置值裁剪成較低位元寬度,也即用更低的位元寬度表示實際偏置值,僅保留高位元位,這樣可以在相同的計算資源下,可以使得運算裝置具有更高的平行計算能力,並且可以節省儲存資源,降低記憶體存取(memory access)次數,提高網路的執行效率,並且,因為保留了實際偏置值的高位元,所以性能損失較小。
此外,對於乘加單元130而言,其結構可以包括一個加法器和一個乘法器,根據下述關係式計算最終運算結果:
VB=(OB+bias_comb)*scale。
下面,將參考圖3描述根據本發明另一實施例的運算方法。
如圖3所示,一種運算方法S100,該運算方法S100可以經由如圖1所示的電子設備實現,或者,該運算方法S100也可以經由如圖2所示以及前文記載的運算裝置實現,具體可以參考前文相關記載,在此不作贅述。運算方法S100包括:
在步驟S110中,接收一第一特徵資料並對第一特徵資料進行非對稱均勻量化以獲得一第二特徵資料。
在步驟S120中,接收一第一權重係數,並對第一權重係數進行對稱均勻量化以獲得一第二權重係數。
在步驟S130中,根據指令對第二特徵資料和第二權重係數執行一卷積運算,以獲得一初始運算結果。
在步驟S140中,對初始運算結果、一實際量化因數以及一實際偏置值執行一乘加運算,以獲得一最終運算結果。
本實施例的運算方法,通過對第一特徵資料進行非對稱均勻量化來獲得第二特徵資料,以及對第一權重係數進行對稱均勻量化來獲得第二權重係數,這樣,可以省去由量化參數零點帶來的線上(online)計算,可以使得線上(online)計算量和第二特徵資料、第二權重係數均採用對稱量化時一致,但由於本實施例中的第二特徵資料採用非對稱均勻量化,所以精度比第二特徵資料和第二權重係數都採用均勻量化時更高,這在低位元時效果更為明顯。
示例性的,運算方法S100還包括:離線計算一初始化偏置值、量化參數零點產生的一些計算項以及實際量化因數;以及合併初始化偏置值和量化參數零點產生的一些計算項,以生成實際偏置值。
本實施例的運算方法,初始化偏置值、量化參數零點產生的一些計算項、實際量化因數以及實際偏置值等的計算過程均是通過離線計算單元離線計算完成,從而可以減少線上(online)計算量,而且離線(offline)可以用單精確度浮點數計算,這樣既不影響卷積的線上(online)執行速度,又沒有精度損失。
示例性的,對初始運算結果、實際量化因數以及實際偏置值執行乘加運算,獲得最終運算結果,還包括:接收具有第一位元寬度的初始運算結果,並將具有第一位元寬度的初始運算結果裁剪生成具有第二位元寬度的初始運算結果;以及對具有第二位元寬度的初始運算結果、實際量化因數以及實際偏置值執行乘加運算,以獲得最終運算結果。其中,第一位元寬度大於第二位元寬度。
本實施例的運算方法,通過統計初始運算結果的範圍,可以將具有較高位元寬度的初始運算結果裁剪成較低位元寬度,也即用更低的位元寬度表示初始運算結果,僅保留高位元,這樣可以在相同的計算資源下,可以使得運算裝置具有更高的平行計算能力,並且可以節省儲存資源,降低記憶體存取(memory access)次數,提高網路的執行效率,並且,因為保留了初始運算結果的高位元,所以性能損失較小,此外,通過將第一位元寬度的初始運算結果裁剪成第二位元寬度的初始運算結果,可以節省該第二位元寬度的初始運算結果的儲存空間。
示例性的,對具有第二位元寬度的初始運算結果、實際量化因數以及實際偏置值執行乘加運算,獲得最終運算結果,還包括:接收具有第一位元寬度的實際偏置值,並將具有第一位元寬度的實際偏置值裁剪生成具有第二位元寬度的實際偏置值;以及對具有第二位元寬度的初始運算結果、實際量化因數以及具有第二位元寬度的實際偏置值執行乘加運算,以獲得最終運算結果。
可以理解的是,以上實施方式僅僅是為了說明本發明的原理而採用的示例性實施方式,然而本發明並不局限於此。對於本領域內的具有通常知識者而言,在不脫離本發明的精神和實質的情況下,可以做出各種變形和改進,這些變形和改進也視為本發明的保護範圍。
200:電子設備
210:處理器
220:儲存裝置
230:輸入裝置
240:輸出裝置
250:匯流排系統
100:運算裝置
110:量化單元
120:卷積核單元
130:乘加單元
140:暫存單元
150:離線計算單元
160:裁剪單元
170:控制單元
KB:第二權重係數
AB1:初始運算結果
AB2:累加初始結果
IB:第二特徵資料
OB:初始運算結果
VB:最終運算結果
S100:運算方法
S110,S120,S130,S140:步驟
[圖1]為本發明第一實施例的一種電子設備的組成示意框圖;
[圖2]為本發明第二實施例的一種運算裝置的結構示意圖;以及
[圖3]為本發明第三實施例的一種運算方法的流程示意圖。
100:運算裝置
110:量化單元
120:卷積核單元
130:乘加單元
140:暫存單元
150:離線計算單元
160:裁剪單元
170:控制單元
KB:第二權重係數
AB1:初始運算結果
AB2:累加初始結果
IB:第二特徵資料
OB:初始運算結果
VB:最終運算結果
Claims (10)
- 一種運算裝置,包括一量化單元、一暫存單元、一控制單元、一卷積核單元以及一乘加單元,其中, 所述量化單元用於接收一第一特徵資料並對所述第一特徵資料進行非對稱均勻量化,以獲得一第二特徵資料後儲存於所述暫存單元,並用於接收一第一權重係數並對所述第一權重係數進行對稱均勻量化,以獲得一第二權重係數後儲存於所述暫存單元; 所述卷積核單元用於根據所述控制單元的指令對所述第二特徵資料和所述第二權重係數執行一卷積運算,以獲得一初始運算結果; 所述乘加單元用於對所述初始運算結果、一實際量化因數以及一實際偏置值執行一乘加運算,以獲得一最終運算結果。
- 如請求項1之運算裝置,其中所述運算裝置還包括一離線計算單元,所述離線計算單元與所述乘加單元相連,其中,所述離線計算單元用於: 離線計算一初始化偏置值、量化參數零點產生的一些計算項以及所述實際量化因數;以及 合併所述初始化偏置值和所述量化參數零點產生的一些計算項,以生成所述實際偏置值。
- 如請求項2之運算裝置,其中所述離線計算單元採用單精確度浮點數進行離線計算。
- 如請求項1之運算裝置,其中所述運算裝置還包括一裁剪單元; 其中,所述裁剪單元用於接收具有第一位元寬度的所述初始運算結果,並將具有所述第一位元寬度的所述初始運算結果裁剪生成具有第二位元寬度的所述初始運算結果; 所述乘加單元用於對具有所述第二位元寬度的所述初始運算結果、所述實際量化因數以及所述實際偏置值執行所述乘加運算,以獲得所述最終運算結果; 其中,所述第一位元寬度大於所述第二位元寬度。
- 如請求項4之運算裝置,其中所述裁剪單元還用於接收具有所述第一位元寬度的所述實際偏置值,並將具有所述第一位元寬度的所述實際偏置值裁剪生成具有所述第二位元寬度的所述實際偏置值; 所述乘加單元用於對具有所述第二位元寬度的所述初始運算結果、所述實際量化因數以及具有所述第二位元寬度的所述實際偏置值執行所述乘加運算,以獲得所述最終運算結果。
- 一種運算方法,包括: 對一第一特徵資料進行非對稱均勻量化,以獲得一第二特徵資料; 對一第一權重係數進行對稱均勻量化,以獲得一第二權重係數; 根據指令對所述第二特徵資料和所述第二權重係數執行一卷積運算,以獲得一初始運算結果;以及 對所述初始運算結果、一實際量化因數以及一實際偏置值執行一乘加運算,以獲得一最終運算結果。
- 如請求項6之運算方法,還包括: 離線計算一初始化偏置值、量化參數零點產生的一些計算項以及所述實際量化因數;以及 合併所述初始化偏置值和所述量化參數零點產生的一些計算項,以生成所述實際偏置值。
- 如請求項7之運算方法,其中採用單精確度浮點數進行離線計算。
- 如請求項6之運算方法,其中對所述初始運算結果、所述實際量化因數以及所述實際偏置值所述執行乘加運算,以獲得所述最終運算結果的步驟包括: 接收具有第一位元寬度的所述初始運算結果,並將具有所述第一位元寬度的所述初始運算結果裁剪生成具有第二位元寬度的所述初始運算結果;以及 對具有所述第二位元寬度的所述初始運算結果、所述實際量化因數以及所述實際偏置值執行所述乘加運算,以獲得所述最終運算結果; 其中,所述第一位元寬度大於所述第二位元寬度。
- 如請求項9之運算方法,其中對具有所述第二位元寬度的所述初始運算結果、所述實際量化因數以及所述實際偏置值執行所述乘加運算,以獲得所述最終運算結果,還包括: 接收具有所述第一位元寬度的所述實際偏置值,並將具有所述第一位元寬度的所述實際偏置值裁剪生成具有所述第二位元寬度的所述實際偏置值;以及 對具有所述第二位元寬度的所述初始運算結果、所述實際量化因數以及具有所述第二位元寬度的所述實際偏置值執行所述乘加運算,以獲得所述最終運算結果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072697.9 | 2020-01-21 | ||
CN202010072697.9A CN111291876B (zh) | 2020-01-21 | 2020-01-21 | 运算装置、运算方法和运算芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202129551A true TW202129551A (zh) | 2021-08-01 |
TWI768516B TWI768516B (zh) | 2022-06-21 |
Family
ID=71023450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109136466A TWI768516B (zh) | 2020-01-21 | 2020-10-21 | 運算裝置和運算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11886832B2 (zh) |
CN (1) | CN111291876B (zh) |
TW (1) | TWI768516B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230350678A1 (en) * | 2022-04-28 | 2023-11-02 | Qualcomm Incorporated | Instruction Set Architecture for Neural Network Quantization and Packing |
CN114997388B (zh) * | 2022-06-30 | 2024-05-07 | 杭州知存算力科技有限公司 | 存算一体芯片用基于线性规划的神经网络偏置处理方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5375590B2 (ja) * | 2009-12-24 | 2013-12-25 | 富士通セミコンダクター株式会社 | 量子化制御回路、量子化パラメータ変更方法、及び符号化装置 |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US20180107926A1 (en) * | 2016-10-19 | 2018-04-19 | Samsung Electronics Co., Ltd. | Method and apparatus for neural network quantization |
EP3561736A4 (en) * | 2016-12-20 | 2020-09-09 | Shanghai Cambricon Information Technology Co., Ltd | MULTIPLICATION AND ADDITION DEVICE FOR MATRICES, COMPUTER DEVICE WITH NEURONAL NETWORK AND PROCESS |
CN108628807B (zh) * | 2017-03-20 | 2022-11-25 | 北京百度网讯科技有限公司 | 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质 |
CN107679620B (zh) * | 2017-04-19 | 2020-05-26 | 赛灵思公司 | 人工神经网络处理装置 |
US10878273B2 (en) * | 2017-07-06 | 2020-12-29 | Texas Instruments Incorporated | Dynamic quantization for deep neural network inference system and method |
US10678508B2 (en) * | 2018-03-23 | 2020-06-09 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
US11423312B2 (en) * | 2018-05-14 | 2022-08-23 | Samsung Electronics Co., Ltd | Method and apparatus for universal pruning and compression of deep convolutional neural networks under joint sparsity constraints |
CN110490310A (zh) * | 2018-05-14 | 2019-11-22 | 北京深鉴智能科技有限公司 | 神经网络数据压缩及其相关计算方法和装置 |
US11630982B1 (en) * | 2018-09-14 | 2023-04-18 | Cadence Design Systems, Inc. | Constraint-based dynamic quantization adjustment for fixed-point processing |
CN109472353B (zh) * | 2018-11-22 | 2020-11-03 | 浪潮集团有限公司 | 一种卷积神经网络量化电路及量化方法 |
KR20200061164A (ko) * | 2018-11-23 | 2020-06-02 | 삼성전자주식회사 | 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서 |
CN110677652A (zh) * | 2019-09-26 | 2020-01-10 | 叠境数字科技(上海)有限公司 | 一种基于体素卷积的点云几何有损压缩方法 |
US11775611B2 (en) * | 2019-11-01 | 2023-10-03 | Samsung Electronics Co., Ltd. | Piecewise quantization for neural networks |
US11816446B2 (en) * | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
US11601134B2 (en) * | 2020-01-10 | 2023-03-07 | Robert Bosch Gmbh | Optimized quantization for reduced resolution neural networks |
US11704556B2 (en) * | 2020-02-06 | 2023-07-18 | Baidu Usa Llc | Optimization methods for quantization of neural network models |
US20220114413A1 (en) * | 2020-10-12 | 2022-04-14 | Black Sesame International Holding Limited | Integer-based fused convolutional layer in a convolutional neural network |
-
2020
- 2020-01-21 CN CN202010072697.9A patent/CN111291876B/zh active Active
- 2020-10-21 TW TW109136466A patent/TWI768516B/zh active
- 2020-12-28 US US17/134,660 patent/US11886832B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210224033A1 (en) | 2021-07-22 |
CN111291876B (zh) | 2023-03-28 |
US11886832B2 (en) | 2024-01-30 |
TWI768516B (zh) | 2022-06-21 |
CN111291876A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
WO2021004366A1 (zh) | 基于结构化剪枝和低比特量化的神经网络加速器及方法 | |
TWI768516B (zh) | 運算裝置和運算方法 | |
CN105844330A (zh) | 神经网络处理器的数据处理方法及神经网络处理器 | |
TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
TWI740726B (zh) | 卷積神經網路的排序方法、運算方法及裝置 | |
CN114757347A (zh) | 低比特量化神经网络加速器实现方法和系统 | |
Alawad | Scalable FPGA accelerator for deep convolutional neural networks with stochastic streaming | |
Liao et al. | Compressing deep neural networks using toeplitz matrix: Algorithm design and fpga implementation | |
CN110110852B (zh) | 一种深度学习网络移植到fpag平台的方法 | |
CN114819159A (zh) | 深度学习模型的推理方法、装置、设备及存储介质 | |
CN114861907A (zh) | 数据计算方法、装置、存储介质和设备 | |
CN117574970A (zh) | 用于大规模语言模型的推理加速方法、系统、终端及介质 | |
JP2022042467A (ja) | 人工ニューラルネットワークモデル学習方法およびシステム | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
JP2022022876A (ja) | 畳み込みニューラルネットワーク処理装置 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
CN115953651A (zh) | 一种基于跨域设备的模型训练方法、装置、设备及介质 | |
CN117474045A (zh) | 一种模型训练方法及相关设备 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
Liu et al. | Accurate and efficient quantized reservoir computing system | |
TWI798591B (zh) | 卷積神經網路運算方法及裝置 | |
TWI841838B (zh) | 資訊處理電路及資訊處理電路之設計方法 | |
CN113298248B (zh) | 一种针对神经网络模型的处理方法、装置以及电子设备 | |
Hsia et al. | Fast computation of deep neural network and its real‐time implementation for image recognition |