CN110135570B - 压缩卷积运算系数的方法、卷积运算晶片及系统 - Google Patents

压缩卷积运算系数的方法、卷积运算晶片及系统 Download PDF

Info

Publication number
CN110135570B
CN110135570B CN201810243143.3A CN201810243143A CN110135570B CN 110135570 B CN110135570 B CN 110135570B CN 201810243143 A CN201810243143 A CN 201810243143A CN 110135570 B CN110135570 B CN 110135570B
Authority
CN
China
Prior art keywords
convolution operation
coefficients
convolution
original
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810243143.3A
Other languages
English (en)
Other versions
CN110135570A (zh
Inventor
杜力
杜源
苏俊杰
蒋明哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kneron Inc
Original Assignee
Kneron Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kneron Inc filed Critical Kneron Inc
Publication of CN110135570A publication Critical patent/CN110135570A/zh
Application granted granted Critical
Publication of CN110135570B publication Critical patent/CN110135570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H21/00Adaptive networks
    • H03H21/0012Digital adaptive filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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为一个实施例的卷积运算系统的区块图。
图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之外的外部存储器,另一或外部存储器可选择如动态随机存取存储器(dynamicrandom access memory,DRAM)或其他种类的存储器。当卷积运算晶片1要进行卷积运算时,再全部或部分地将数据由另一或外部存储器加载至存储器12中,然后卷积运算模块13从存储器12读取这些输入值来进行卷积运算。
卷积运算模块13可具有一个或多个卷积单元,各卷积单元基于滤波器(filter)以及多个当前卷积运算输入值进行卷积运算并产生运算结果,卷积运算结果可输出到存储器12储存。一个卷积单元可进行m×m的卷积运算,即卷积运算输入值有m个数值,滤波器有m个滤波器系数,各卷积运算输入值个别和对应的滤波器系数相乘,全部相乘的结果相加就是该卷积单元的卷积运算结果。
以卷积神经网络的应用来说,卷积运算结果储存在存储器12以供卷积运算模块13在下一层卷积层时能快速地从存储器12取得数值来作为卷积运算的输入。滤波器具有多个的滤波器系数,卷积运算模块13可通过直接内存访问DMA(direct memory access)的方式由外部的存储器直接让滤波器系数输入。
卷积运算输入值、滤波器系数及卷积运算结果具有整数部分和小数部分,且这些数值的宽度也一样。一般的卷积神经网络使用固定小数点格式来表示滤波器系数和中间结果,也就是各运算层的输入或输出都是采用相同的固定小数点格式(fixed pointformat)。固定小数点格式中分成整数部分(integer part)和小数部分(fractionalpart),整数部分固定使用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 (12)

1.一种压缩卷积运算系数的方法,用于压缩多个原始卷积运算系数至卷积运算晶片,包括:
找出所述原始卷积运算系数的范围,其中所述原始卷积运算系数是滤波器系数或滤波器的权重系数;
根据所述范围设定表示所述范围所需的有效位元数,其中所述范围值为2n-1至2n-1,所述有效位元数的整数部分为n位元,所述有效位元数的小数部分和所述原始卷积运算系数的小数部分位元数相同;
设定代表值,所述代表值落在所述范围中,其中所述代表值为所述原始卷积运算系数的平均值、最大值或最小值,其中所述有效位元数、所述代表值和所述原始卷积运算系数的宽度相同;
计算各所述原始卷积运算系数与所述代表值的差值;
将所述差值量化至最低有效位以得到多个经压缩卷积运算系数;以及
将所述有效位元数、所述代表值及所述经压缩卷积运算系数传输到所述卷积运算晶片。
2.根据权利要求1所述的方法,其中,找出所述原始卷积运算系数的所述范围的步骤包括找出所述原始卷积运算系数的最大值及最小值。
3.根据权利要求1所述的方法,其中,所述原始卷积运算系数的最低有效位和所述差值的最低有效位相同。
4.根据权利要求1所述的方法,其中,设定表示所述范围所需的所述有效位元数的步骤为根据所述原始卷积运算系数的最低有效位元设定所述有效位元数。
5.一种卷积运算晶片,耦接晶片外装置,所述晶片外装置配置来进行如权利要求1所述的压缩卷积运算系数的方法,所述卷积运算晶片包括:
存储器,储存多个卷积运算输入值;
卷积运算模块,耦接所述存储器以取得所述卷积运算输入值;以及
控制模块,耦接所述存储器及所述卷积运算模块,并耦接所述晶片外装置以接收所述有效位元数、所述代表值以及所述多个经压缩卷积运算系数,所述控制模块依据所述有效位元数及所述代表值将所述经压缩卷积运算系数解压以得到多个解压卷积运算系数,所述卷积运算模块根据所述解压卷积运算系数及所述卷积运算输入值进行卷积运算。
6.根据权利要求5所述的卷积运算晶片,其中,各所述经压缩卷积运算系数代表各所述原始卷积运算系数和所述代表值的差值。
7.根据权利要求5所述的卷积运算晶片,其中,所述解压卷积运算系数不再进行用以还原所述原始卷积运算系数的反向量化。
8.一种卷积运算系统,包括:
晶片外装置,配置来进行:
找出多个原始卷积运算系数的范围,其中所述原始卷积运算系数是滤波器系数或滤波器的权重系数;
根据所述范围设定表示所述范围所需的有效位元数,其中所述范围值为2n-1至2n-1,所述有效位元数的整数部分为n位元,所述有效位元数的小数部分和所述原始卷积运算系数的小数部分位元数相同;
设定代表值,所述代表值落在所述范围中,其中所述代表值为所述原始卷积运算系数的平均值、最大值或最小值,其中所述有效位元数、所述代表值和所述原始卷积运算系数的宽度相同;
计算各所述原始卷积运算系数与所述代表值的差值;以及
将所述差值量化至最低有效位以得到多个经压缩卷积运算系数;以及卷积运算晶片,耦接所述晶片外装置,包括:
存储器,储存多个卷积运算输入值;
卷积运算模块,耦接所述存储器以取得所述卷积运算输入值;以及
控制模块,耦接所述存储器及所述卷积运算模块,并耦接所述晶片外装置以接收所述有效位元数、所述代表值以及所述多个经压缩卷积运算系数,所述控制模块依据所述有效位元数及所述代表值将所述经压缩卷积运算系数解压以得到多个解压卷积运算系数,所述卷积运算模块根据所述解压卷积运算系数及所述卷积运算输入值进行卷积运算。
9.根据权利要求8所述的系统,其中,所述晶片外装置找出所述原始卷积运算系数的最大值及最小值。
10.根据权利要求8所述的系统,其中,所述原始卷积运算系数的最低有效位和所述差值的最低有效位相同。
11.根据权利要求8所述的系统,其中,所述晶片外装置根据所述原始卷积运算系数的最低有效位元设定所述有效位元数。
12.根据权利要求8所述的系统,其中,所述解压卷积运算系数不再进行用以还原所述原始卷积运算系数的反向量化。
CN201810243143.3A 2018-02-09 2018-03-23 压缩卷积运算系数的方法、卷积运算晶片及系统 Active CN110135570B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/893,294 US10516415B2 (en) 2018-02-09 2018-02-09 Method of compressing convolution parameters, convolution operation chip and system
US15/893,294 2018-02-09

Publications (2)

Publication Number Publication Date
CN110135570A CN110135570A (zh) 2019-08-16
CN110135570B true CN110135570B (zh) 2023-05-23

Family

ID=67540950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810243143.3A Active CN110135570B (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)

* Cited by examiner, † Cited by third party
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW569570B (en) * 2000-10-16 2004-01-01 Physical Optics Corp Multimedia sensor network
US10223635B2 (en) * 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
EP3408798B1 (en) 2016-01-29 2020-07-15 FotoNation Limited A convolutional neural network
US10599935B2 (en) * 2017-02-22 2020-03-24 Arm Limited Processing artificial neural network weights
CN107274437A (zh) * 2017-06-23 2017-10-20 燕山大学 一种基于卷积神经网络的视觉跟踪方法
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Case of On-Chip Memory Subsystem Design for Low-Power CNN Accelerators;Ying Wang等;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20171204;第1971-1984页 *

Also Published As

Publication number Publication date
US20190253071A1 (en) 2019-08-15
TW201935230A (zh) 2019-09-01
TWI675328B (zh) 2019-10-21
CN110135570A (zh) 2019-08-16
US10516415B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
US11309907B2 (en) Guaranteed data compression
US11509330B2 (en) Guaranteed data compression
CN110135570B (zh) 压缩卷积运算系数的方法、卷积运算晶片及系统
US11258457B2 (en) Guaranteed data compression
US10691360B2 (en) Lossy data compression
CN110662066B (zh) 有保证的数据压缩
CN110662068B (zh) 进行有保证的数据压缩的方法、系统、电路、介质和单元
US11323718B2 (en) Guaranteed data compression
JP2019036899A (ja) 情報処理装置、情報処理方法およびプログラム
US20180255300A1 (en) Image processing device, image processing method, and recording medium storing image processing program
CN116260969B (zh) 一种自适应的通道渐进式编解码方法、装置、终端及介质
US11742875B1 (en) Compression of floating-point numbers for neural networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant