TWI675328B - 壓縮卷積運算係數的方法、卷積運算晶片及系統 - Google Patents
壓縮卷積運算係數的方法、卷積運算晶片及系統 Download PDFInfo
- Publication number
- TWI675328B TWI675328B TW107110117A TW107110117A TWI675328B TW I675328 B TWI675328 B TW I675328B TW 107110117 A TW107110117 A TW 107110117A TW 107110117 A TW107110117 A TW 107110117A TW I675328 B TWI675328 B TW I675328B
- Authority
- TW
- Taiwan
- Prior art keywords
- convolution operation
- coefficients
- original
- representative value
- range
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013139 quantization Methods 0.000 claims description 11
- 230000006837 decompression Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 description 21
- 238000013527 convolutional neural network Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
-
- 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
-
- 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)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
一種方法,用於壓縮多個原始卷積運算係數至一卷積運算晶片,包括:找出該等原始卷積運算係數的一範圍;根據該範圍設定表示該範圍所需的一有效位元數;設定一代表值,該代表值落在該範圍中;計算各該等原始卷積運算係數與該代表值的一差值;將該等差值量化至最低有效位以得到多個經壓縮卷積運算係數;以及將有效位元數、該代表值及該等經壓縮卷積運算係數傳輸到該卷積運算晶片。
Description
本發明係關於一種卷積運算裝置及系統,尤指一種能壓縮卷積運算係數的方法、卷積運算晶片及系統。
深度學習(deep learning)已是開展人工智慧(Artificial intelligence,AI)的重要應用技術之一。其中,卷積神經網路(Convolutional Neural Network,CNN)則是近年來,引起廣泛重視的一種深度學習高效識別技術。與其他深度學習架構相比,特別是在模式分類領域的應用,例如圖像和語音識別方面,卷積神經網路避免了複雜的前期預處理,且可以直接輸入原始圖像或原始數據,因而得到了更為廣泛的應用並可取得較佳的識別結果。
然而,卷積運算是一種很耗費效能數據計算量很大的運算,數據在有限頻寬的傳輸也會造成計算過程中的瓶頸,例如從晶片外裝置傳送權重係數或濾波器係數至卷積運算晶片會佔用很大的頻寬。因此,有必要提出一種方法、裝置及系統,能降低卷積運算係數所需的傳輸量,實為當前重要的課題之一。
有鑑於上述課題,本發明提出一種能降低卷積運算係數所需的傳輸量的方法、裝置及系統。
一種方法,用於壓縮多個原始卷積運算係數至一卷積運算晶片,包括:找出該等原始卷積運算係數的一範圍;根據該範圍設定表示該範圍所需的一有效位元數;設定一代表值,該代表值落在該範圍中;計算
各該等原始卷積運算係數與該代表值的一差值;將該等差值量化至最低有效位以得到多個經壓縮卷積運算係數;以及將有效位元數、該代表值及該等經壓縮卷積運算係數傳輸到該卷積運算晶片。
在一實施例中,原始卷積運算係數是濾波器係數或濾波器的權重係數。
在一實施例中,代表值為原始卷積運算係數的平均值、最大值或最小值。
在一實施例中,找出原始卷積運算係數的範圍的步驟包括找出原始卷積運算係數的最大值及最小值。
在一實施例中,原始卷積運算係數的最低有效位和差值的最低有效位相同。
在一實施例中,設定表示該範圍所需的該有效位元數的步驟係根據原始卷積運算係數的最低有效位元設定有效位元數。
一種卷積運算晶片耦接一晶片外裝置,其包括一記憶體、一卷積運算模組以及一控制模組。記憶體儲存多個卷積運算輸入值;卷積運算模組耦接記憶體以取得卷積運算輸入值;控制模組耦接記憶體及卷積運算模組,並耦接晶片外裝置以接收一有效位元數、一代表值以及多個經壓縮卷積運算係數,控制模組依據有效位元數及代表值將經壓縮卷積運算係數解壓以得到多個解壓卷積運算係數,卷積運算模組根據解壓卷積運算係數及卷積運算輸入值進行卷積運算。
在一實施例中,解壓卷積運算係數作為濾波器係數或濾波器的權重係數。
在一實施例中,代表值為多個原始卷積運算係數的平均值、最大值或最小值。
在一實施例中,各經壓縮卷積運算係數代表各原始卷積運算係數和代表值的一差值。
在一實施例中,解壓卷積運算係數不再進行用以還原原始卷積運算係數的反向量化。
一種卷積運算系統包括一晶片外裝置以及一卷積運算晶
片。晶片外裝置配置來進行:找出多個原始卷積運算係數的一範圍;根據該範圍設定表示該範圍所需的一有效位元數;設定一代表值,該代表值落在該範圍中;計算各該等原始卷積運算係數與該代表值的一差值;以及將該等差值量化至最低有效位以得到多個經壓縮卷積運算係數。卷積運算晶片耦接晶片外裝置,其包括一記憶體、一卷積運算模組以及一控制模組。記憶體儲存多個卷積運算輸入值;卷積運算模組耦接記憶體以取得卷積運算輸入值;控制模組耦接記憶體及卷積運算模組,並耦接晶片外裝置以接收一有效位元數、一代表值以及多個經壓縮卷積運算係數,控制模組依據有效位元數及代表值將經壓縮卷積運算係數解壓以得到多個解壓卷積運算係數,卷積運算模組根據解壓卷積運算係數及卷積運算輸入值進行卷積運算。
在一實施例中,原始卷積運算係數是濾波器係數或濾波器的權重係數。
在一實施例中,代表值為原始卷積運算係數的平均值、最大值或最小值。
在一實施例中,晶片外裝置找出原始卷積運算係數的最大值及最小值。
在一實施例中,原始卷積運算係數的最低有效位和差值的最低有效位相同。
在一實施例中,晶片外裝置根據原始卷積運算係數的最低有效位元設定有效位元數。
在一實施例中,解壓卷積運算係數不再進行用以還原原始卷積運算係數的反向量化。
承上所述,用於壓縮多個原始卷積運算係數至一卷積運算晶片的方法、卷積運算晶片及卷積運算系統中,並非將原始原始卷積運算係數直接傳輸到卷積運算晶片,而是透過壓縮機制降低傳輸量,因而可避免傳輸卷積運算係數過度佔用頻寬的消耗,進而能在有限的頻寬中傳輸更多數據或係數,因而可提高處理效能。
1‧‧‧卷積運算晶片
11‧‧‧控制模組
12‧‧‧記憶體
13‧‧‧卷積運算模組
2‧‧‧晶片外裝置
3‧‧‧傳輸通道
4‧‧‧卷積運算系統
P1~Pn‧‧‧數據
F1~Fn‧‧‧濾波器係數
C1~Cn‧‧‧數據
W1~Wn‧‧‧權值
W_max‧‧‧最大值
W_min‧‧‧最小值
W_ave‧‧‧平均值
V‧‧‧有效位元數
R‧‧‧代表值
CW、CW1~CWX‧‧‧經壓縮卷積運算係數
QW‧‧‧解壓卷積運算係數
S01~S07、S11~S13‧‧‧步驟
圖1為一實施例的一卷積運算系統的區塊圖。
圖2A與圖2B為卷積神經網路中一層卷積運算的示意圖。
圖3為一實施例的壓縮原始卷積運算係數的方法的流程圖。
圖4A與圖4B為壓縮原始卷積運算係數的示意圖。
圖5A與圖5B為傳輸卷積運算係數的示意圖。
圖6為一實施例的解壓縮卷積運算係數的方法的流程圖。
以下將參照相關圖式,說明依本發明較佳實施例之一種卷積運算裝置,其中相同的元件將以相同的參照符號加以說明。
請先參考圖1所示,圖1為依據本發明一實施例的一卷積運算系統4的區塊圖。卷積運算系統4包括一晶片外裝置2、一傳輸通道3以及一卷積運算晶片1。傳輸通道3耦接晶片外裝置2與卷積運算晶片1,傳輸通道3可以是匯流排或傳輸線等等。卷積運算晶片可用在卷積神經網路(Convolutional Neural Network,CNN)的應用。卷積神經網路具有多個運算層,運算層可以是卷積層,運算層也可以是卷積層加上池化層。各運算層的輸出是中間結果,其可以當作另一層或後續層的輸入,例如第N-1層運算層輸出是第N層運算層的輸入或是其他後續層的輸入,第N層運算層輸出是第N+1層運算層的輸入或是其他後續層的輸入。各層的濾波器可以使用相同或不同的濾波器。
卷積運算晶片1包括一記憶體12、一卷積運算模組13以及一控制模組11。記憶體12儲存多個卷積運算輸入值,卷積運算模組13耦接記憶體12以取得卷積運算輸入值,控制模組11耦接記憶體12及卷積運算模組13並透過傳輸通道3耦接晶片外裝置2。
記憶體12儲存待卷積運算的卷積運算輸入值以及卷積運算結果,卷積運算結果可以是中間結果或最終結果,這些輸入值或結果可例如為影像、視頻、音頻、統計、卷積神經網路其中一層的數據等等。以影像數據來說,其例如是像素(pixel)數據;以視頻數據來說,其例如是視
頻視框的像素數據或是移動向量、或是視頻中的音訊;以卷積神經網路其中一層的數據來說,其通常是一個二維陣列數據;以影像數據而言,則通常是一個二維陣列的像素數據。另外,記憶體12可具有多層的儲存結構並分別存放待運算與運算完畢的數據,換言之,記憶體12可做為如卷積運算晶片1內部的快取(cache)。
待卷積運算的卷積運算輸入值可先儲存在其他地方,例如在另一記憶體或卷積運算晶片1之外的外部記憶體,另一或外部記憶體可選擇如動態隨機存取記憶體(dynamic random access memory,DRAM)或其他種類之記憶體。當卷積運算晶片1要進行卷積運算時,再全部或部分地將數據由另一或外部記憶體載入至記憶體12中,然後卷積運算模組13從記憶體12讀取這些輸入值來進行卷積運算。
卷積運算模組13可具有一或多個卷積單元,各卷積單元基於一濾波器(filter)以及多個當前卷積運算輸入值進行一卷積運算並產生運算結果,卷積運算結果可輸出到記憶體12儲存。一個卷積單元可進行m×m的卷積運算,即卷積運算輸入值有m個數值,濾波器有m個濾波器係數,各卷積運算輸入值個別和對應的濾波器係數相乘,全部相乘的結果相加就是該卷積單元的卷積運算結果。
以卷積神經網路的應用來說,卷積運算結果儲存在記憶體12以供卷積運算模組13在下一層卷積層時能快速地從記憶體12取得數值來作為卷積運算的輸入。濾波器具有多個的濾波器係數,卷積運算模組13可藉由直接記憶體存取DMA(direct memory access)的方式由外部之記憶體,直接讓濾波器係數輸入。
卷積運算輸入值、濾波器係數及卷積運算結果具有整數部分和小數部分,且這些數值的寬度也一樣。一般的卷積神經網路使用固定小數點格式來表示濾波器係數和中間結果,也就是各運算層的輸入或輸出都是採用相同的固定小數點格式(fixed point format)。固定小數點格式中分成整數部分(integer part)和小數部分(fractional part),整數部分固定使用j位元,小數部分固定使用k位元。舉例來說,一個16位元固定小數點數值通常有8位元整數部分和8位元小數部分,整數部分的最左位元可以是正
負號位元。
圖2A與圖2B為卷積神經網路中一層卷積運算的示意圖。請參閱圖2A所示,在卷積層中,多個數據P1~Pn和多個濾波器係數F1~Fn進行卷積運算以產生多個數據C1~Cn,數據P1~Pn代表帶小數部的卷積運算輸入值CI,數據C1~Cn代表帶小數部的卷積運算結果CO。濾波器係數F1~Fn可以經加權或未經加權皆可,圖2A的例子是濾波器係數F1~Fn未經加權,原始的濾波器係數F1~Fn直接提供給卷積運算。加權是原始的濾波器係數F1~Fn共同乘上一個權值或分別乘上多個權值,圖2B的例子是原始的濾波器係數F1~Fn分別乘上多個權值W1~Wn,加權後的濾波器係數再提供給卷積運算。圖1中的原始卷積運算係數可以是圖2A的濾波器係數F1~Fn或圖2B的濾波器的權值W1~Wn。
圖3為一實施例的壓縮原始卷積運算係數的方法的流程圖。如圖3所示,圖1的晶片外裝置2配置來進行步驟S01至步驟S07。
在步驟S01中,晶片外裝置2提供多個原始卷積運算係數,原始卷積運算係數可以是卷積運算用的濾波器係數或濾波器係數的權重係數。
在步驟S02中,晶片外裝置2找出這些原始卷積運算係數的一範圍。舉例來說,步驟S02如圖4A與圖4B找出原始卷積運算係數的最大值W_max及最小值W_min,並將最大值W_max減去最小值W_min,相減後的差值作為代表該範圍大小的範圍值。
在步驟S03中,晶片外裝置2根據該範圍設定表示該範圍所需的一有效位元數。舉例來說,範圍值為0,則有效位元數的整數部分為0位元,小數部分則和原始卷積運算係數的小數部分位元數相同。以此類推,範圍值為1,則有效位元數的整數部分為1位元;範圍值為2至3,則有效位元數的整數部分為2位元;範圍值為4至7,則有效位元數的整數部分為3位元;範圍值為2n-1至2n-1,則有效位元數的整數部分為n位元。小數部分則和原始卷積運算係數的小數部分位元數相同。
若把範圍值不分整數部分與小數部分而是整個當作整數來看,仍可適用前述設定方式,即範圍值為2n-1至2n-1,則有效位元數為n位
元。藉此種表示方式,後續傳輸壓縮係數至晶片1的過程將可不用傳正負號,整數部分前面的0也可以不用傳。
在步驟S04中,晶片外裝置2設定一代表值,代表值落在範圍中。如圖4A與圖4B,代表值是原始卷積運算係數的最大值W_max與最小值W_min間(含最大值W_max與最小值W_min)的數值,例如是原始卷積運算係數的平均值W_ave、最大值W_max或最小值W_min。
在步驟S05中,晶片外裝置2計算各原始卷積運算係數與代表值的一差值。若代表值是平均值,則表示差值所需的位元數可再降低1位元,即若依步驟S03設定得到的有效位元數為n位元,表示差值的位元為n-1位元,藉此可再降低傳輸量。若代表值採其他值,則表示差值所需的位元數仍為n位元。前面步驟的處理可以降低高位元的傳輸量,低位元的傳輸量可藉由量化最低有效位的大小來降低。舉例來說,原始卷積運算係數的最低有效位和差值的最低有效位相同,步驟S05係根據原始卷積運算係數的最低有效位元設定有效位元數,有效位元數會是表示差值所需的位元數再減去最低有效位元以右的位元數。例如設最低有效位元為m,代表值是平均值,則實際需要傳輸的位元寬度則為(n-1)-m+1;若代表值不是平均值,則實際需要傳輸的位元寬度則為n-m+1。
在步驟S06中,晶片外裝置2將差值量化至最低有效位以得到多個經壓縮卷積運算係數,藉此可將小於最低有效位(不含最低有效位本身)的位元去除,進一步降低需傳輸的位元數。舉例來說,最低有效位為3,則最右的二個位元會經量化去除。
在圖4A中,最低有效位元為1,沒有更右側位元要量化去除。若代表值是平均值,則實際需要傳輸的位元寬度則為(n-1)-m+1=n-1。在圖4B中,最低有效位元為5,右側有4位元要量化去除。若代表值是平均值,則實際需要傳輸的位元寬度則為(n-1)-m+1=n-1-4+1=n-4。
另外,代表值R也可經前述的量化處理,晶片外裝置2將代表值R量化至最低有效位,藉此可將小於最低有效位(不含最低有效位本身)的位元去除,進一步降低需傳輸的位元數。舉例來說,最低有效位為3,則最右的二個位元會經量化去除。
在步驟S07中,晶片外裝置2將有效位元數V、代表值R及經壓縮卷積運算係數CW1~CWX傳輸到卷積運算晶片1。在圖5B中,一壓縮係數組包括有效位元數V、代表值R及經壓縮卷積運算係數CW1~CWX,X代表經壓縮卷積運算係數的數量,傳輸過程先傳有效位元數V,卷積運算晶片1便可知道後續傳輸的經壓縮卷積運算係數的寬度,因而接收可取出各壓縮係數。代表值R與有效位元數V之間的傳輸順序沒有限定,但代表值R先於壓縮係數傳輸可讓卷積運算晶片1盡早開始解壓縮處理。有效位元數V和代表值R可以是固定寬度,例如和原始縮卷積運算係數W1~WX的寬度一樣。另外,若代表值R有經量化處理,則其寬度仍可和原始縮卷積運算係數W1~WX的寬度一樣,或是寬度也降低,寬度也降低則晶片外裝置2必須另外通知卷積運算晶片1。
在圖5A中,晶片外裝置2提供多個原始卷積運算係數W1~WX,原始卷積運算係數是權重係數時,在很多應用情況下,這些係數值會在一定的範圍內,因此,其實這些值不需要那麼多的位元數來表達。屬於同一個特徵區塊的各權重係數可以用更少的位元來表示。例如原始卷積運算係數W1~WX是使用16位元故定小數點(fixed point)的格式,這格式有1位元的正負號,7位元整數和8位元小數。若在一個特徵區塊中,全部的權重係數是在正負2,權重係數的表示最低只需要1位元的正負號、1位元整數和8位元小數。因此,10位元的寬度可以表示原本16位元的值。相較之下,圖5B中的壓縮係數組可以降低需傳輸的數據寬度。
圖6為一實施例的解壓縮卷積運算係數的方法的流程圖。如圖6所示,圖1的卷積運算晶片1可進行圖6的步驟S11至步驟S13。
在步驟S11中,控制模組11通過傳輸通道3從晶片外裝置2接收有效位元數V、代表值R以及多個經壓縮卷積運算係數CW。舉例來說,壓縮係數組如圖5B的格式傳送到控制模組11,控制模組11讀取有效位元數V及代表值R後,可依據有效位元數V接收取出經壓縮卷積運算係數CW1~CWX。
在步驟S12中,控制模組11依據有效位元數V及代表值R將經壓縮卷積運算係數CW解壓以得到多個解壓卷積運算係數QW。代表
值R為多個原始卷積運算係數的平均值、最大值或最小值。各經壓縮卷積運算係數CW代表各原始卷積運算係數和代表值R的一差值。因此,經壓縮卷積運算係數CW會是如前述步驟S06處理後經量化的差值,此步驟S12處理得到的解壓卷積運算係數QW可經反向量化並還原至和原始卷積運算係數相同,反向量化是將最低有效位元移到量化前的最低有效位元,若要反向量化則控制模組11還需從晶片外裝置2得到原始最低有效位元的資訊,然後據以對解壓卷積運算係數QW施以反向量化。
在步驟S13中,卷積運算模組13根據解壓卷積運算係數QW及卷積運算輸入值進行卷積運算。卷積運算輸入值是從記憶體12讀取然後輸入至卷積運算模組13,解壓卷積運算係數QW作為卷積運算用的濾波器係數或濾波器的權重係數。
舉例來說,解壓卷積運算係數QW不再進行用以還原原始卷積運算係數的反向量化,解壓卷積運算係數QW直接作為卷積運算用的濾波器係數或濾波器的權重係數。這對於注重各卷積運算結果間比例的應用較為適用,因為此種應用是注重比例而非值本身的大小。
舉例來說,解壓卷積運算係數QW可以先進行用以還原原始卷積運算係數的反向量化,然後才輸入到卷積運算模組13。這對於注重各卷積運算結果的值本身的應用較為適用。
在以上實施例中,記憶體12為晶片內快取或暫存器。記憶體12的種類例如是靜態隨機存取記憶體(static random-access memory,SRAM),控制模組11與卷積運算模組13是晶片內的邏輯電路。
綜上所述,用於壓縮多個原始卷積運算係數至一卷積運算晶片的方法、卷積運算晶片及卷積運算系統中,並非將原始原始卷積運算係數直接傳輸到卷積運算晶片,而是透過壓縮機制降低傳輸量,因而可避免傳輸卷積運算係數過度佔用頻寬的消耗,進而能在有限的頻寬中傳輸更多數據或係數,因而可提高處理效能。
以上所述僅為舉例性,而非為限制性者。任何未脫離本發明之精神與範疇,而對其進行之等效修改或變更,均應包含於後附之申請專利範圍中。
Claims (13)
- 一種卷積運算係數的壓縮方法,用於壓縮多個原始卷積運算係數至一卷積運算晶片,包括:找出該等原始卷積運算係數的一範圍;根據該範圍設定表示該範圍所需的一有效位元數;設定一代表值,該代表值落在該範圍中,其中該代表值為該等原始卷積運算係數的平均值、最大值或最小值;計算各該等原始卷積運算係數與該代表值的一差值;將該等差值量化至最低有效位以得到多個經壓縮卷積運算係數;以及將該有效位元數、該代表值及該等經壓縮卷積運算係數傳輸到該卷積運算晶片,俾使從該有效位元數、該代表值及該等經壓縮卷積運算係數而得的解壓卷積運算係數無需反向量化即直接用於卷積運算。
- 如申請專利範圍第1項所述之方法,其中該等原始卷積運算係數是濾波器係數或濾波器的權重係數。
- 如申請專利範圍第1項所述之方法,其中找出該等原始卷積運算係數的該範圍的步驟包括找出該等原始卷積運算係數的最大值及最小值。
- 如申請專利範圍第1項所述之方法,其中該等原始卷積運算係數的最低有效位和該等差值的最低有效位相同。
- 如申請專利範圍第1項所述之方法,其中設定表示該範圍所需的該有效位元數的步驟係根據該等原始卷積運算係數的最低有效位元設定該有效位元數。
- 一種卷積運算晶片,耦接一晶片外裝置,包括:一記憶體,儲存多個卷積運算輸入值;一卷積運算模組,耦接該記憶體以取得該等卷積運算輸入值;以及一控制模組,耦接該記憶體及該卷積運算模組,並耦接該晶片外裝置以接收一有效位元數、一代表值以及多個經壓縮卷積運算係數,其中該代表值為該等原始卷積運算係數的平均值、最大值或最小值,該控制模組依據該有效位元數及該代表值將該等經壓縮卷積運算係數解壓 以得到多個解壓卷積運算係數,該等解壓卷積運算係數不再進行用以還原該等原始卷積運算係數的反向量化,該卷積運算模組直接根據該等解壓卷積運算係數及該等卷積運算輸入值進行卷積運算。
- 如申請專利範圍第6項所述之卷積運算晶片,其中該等解壓卷積運算係數作為濾波器係數或濾波器的權重係數。
- 如申請專利範圍第6項所述之卷積運算晶片,其中各該等經壓縮卷積運算係數代表各原始卷積運算係數和該代表值的一差值。
- 一種卷積運算系統,包括:一晶片外裝置,配置來進行:找出多個原始卷積運算係數的一範圍;根據該範圍設定表示該範圍所需的一有效位元數;設定一代表值,該代表值落在該範圍中;計算各該等原始卷積運算係數與該代表值的一差值;以及將該等差值量化至最低有效位以得到多個經壓縮卷積運算係數;以及一卷積運算晶片,耦接該晶片外裝置,包括:一記憶體,儲存多個卷積運算輸入值;一卷積運算模組,耦接該記憶體以取得該等卷積運算輸入值;以及一控制模組,耦接該記憶體及該卷積運算模組,並耦接該晶片外裝置以接收一有效位元數、一代表值以及多個經壓縮卷積運算係數,其中該代表值為該等原始卷積運算係數的平均值、最大值或最小值,該控制模組依據該有效位元數及該代表值將該等經壓縮卷積運算係數解壓以得到多個解壓卷積運算係數,該等解壓卷積運算係數不再進行用以還原該等原始卷積運算係數的反向量化,該卷積運算模組直接根據該等解壓卷積運算係數及該等卷積運算輸入值進行卷積運算。
- 如申請專利範圍第9項所述之系統,其中該等原始卷積運算係數是濾波器係數或濾波器的權重係數。
- 如申請專利範圍第9項所述之系統,其中該晶片外裝置找出該等原始 卷積運算係數的最大值及最小值。
- 如申請專利範圍第9項所述之系統,其中該等原始卷積運算係數的最低有效位和該等差值的最低有效位相同。
- 如申請專利範圍第9項所述之系統,其中該晶片外裝置根據該等原始卷積運算係數的最低有效位元設定該有效位元數。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/893,294 | 2018-02-09 | ||
US15/893,294 US10516415B2 (en) | 2018-02-09 | 2018-02-09 | Method of compressing convolution parameters, convolution operation chip and system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201935230A TW201935230A (zh) | 2019-09-01 |
TWI675328B true TWI675328B (zh) | 2019-10-21 |
Family
ID=67540950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107110117A TWI675328B (zh) | 2018-02-09 | 2018-03-23 | 壓縮卷積運算係數的方法、卷積運算晶片及系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10516415B2 (zh) |
CN (1) | CN110135570B (zh) |
TW (1) | TWI675328B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7167832B2 (ja) * | 2019-04-19 | 2022-11-09 | 日本電信電話株式会社 | 画像変換装置、画像変換モデル学習装置、方法、及びプログラム |
CN110852439B (zh) * | 2019-11-20 | 2024-02-02 | 字节跳动有限公司 | 数据处理方法及装置、存储介质 |
CN116388768B (zh) * | 2023-06-06 | 2023-08-22 | 上海海栎创科技股份有限公司 | 一种信号数据的压缩方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW569570B (en) * | 2000-10-16 | 2004-01-01 | Physical Optics Corp | Multimedia sensor network |
TW201627923A (zh) * | 2015-01-22 | 2016-08-01 | 高通公司 | 模型壓縮和微調 |
WO2017129325A1 (en) * | 2016-01-29 | 2017-08-03 | Fotonation Limited | A convolutional neural network |
CN107274437A (zh) * | 2017-06-23 | 2017-10-20 | 燕山大学 | 一种基于卷积神经网络的视觉跟踪方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599935B2 (en) * | 2017-02-22 | 2020-03-24 | Arm Limited | Processing artificial neural network weights |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
US11055604B2 (en) * | 2017-09-12 | 2021-07-06 | Intel Corporation | Per kernel Kmeans compression for neural networks |
US20190102673A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Online activation compression with k-means |
-
2018
- 2018-02-09 US US15/893,294 patent/US10516415B2/en active Active
- 2018-03-23 CN CN201810243143.3A patent/CN110135570B/zh active Active
- 2018-03-23 TW TW107110117A patent/TWI675328B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW569570B (en) * | 2000-10-16 | 2004-01-01 | Physical Optics Corp | Multimedia sensor network |
TW201627923A (zh) * | 2015-01-22 | 2016-08-01 | 高通公司 | 模型壓縮和微調 |
WO2017129325A1 (en) * | 2016-01-29 | 2017-08-03 | Fotonation Limited | A convolutional neural network |
CN107274437A (zh) * | 2017-06-23 | 2017-10-20 | 燕山大学 | 一种基于卷积神经网络的视觉跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
US10516415B2 (en) | 2019-12-24 |
TW201935230A (zh) | 2019-09-01 |
US20190253071A1 (en) | 2019-08-15 |
CN110135570A (zh) | 2019-08-16 |
CN110135570B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020238603A1 (zh) | 深度神经网络的压缩方法、芯片、电子设备及介质 | |
TWI675328B (zh) | 壓縮卷積運算係數的方法、卷積運算晶片及系統 | |
KR102174777B1 (ko) | 이미지의 품질 향상을 위하여 이미지를 처리하는 방법 및 장치 | |
US20210067172A1 (en) | Guaranteed Data Compression | |
US20200007152A1 (en) | Guaranteed Data Compression | |
US10812101B2 (en) | Guaranteed data compression | |
US11570477B2 (en) | Data preprocessing and data augmentation in frequency domain | |
US20220286142A1 (en) | Guaranteed data compression using intermediate compressed data | |
JP7091521B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN110569961A (zh) | 一种神经网络训练方法、装置及终端设备 | |
US20200351503A1 (en) | Guaranteed Data Compression | |
US11483585B2 (en) | Electronic apparatus and controlling method thereof | |
US10652540B2 (en) | Image processing device, image processing method, and recording medium storing image processing program | |
EP4391533A1 (en) | Feature map encoding method and apparatus and feature map decoding method and apparatus | |
Guzmán et al. | Image compression algorithm based on morphological associative memories | |
US11742875B1 (en) | Compression of floating-point numbers for neural networks | |
US20240323407A1 (en) | Image processing device and operating method thereof | |
US20240073421A1 (en) | Image processing device and operating method of the image processing device | |
JP6310747B2 (ja) | データ記憶制御装置およびデータ記憶制御方法 | |
CN116260969B (zh) | 一种自适应的通道渐进式编解码方法、装置、终端及介质 | |
CN113052258B (zh) | 基于中间层特征图压缩的卷积方法、模型及计算机设备 | |
CN118694958A (zh) | 图像处理设备及其操作方法 | |
WO2020050089A1 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP2015195431A (ja) | データ記憶制御装置およびデータ記憶制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |