CN112085154A - 用于神经网络的压缩和推断加速的非对称量化 - Google Patents

用于神经网络的压缩和推断加速的非对称量化 Download PDF

Info

Publication number
CN112085154A
CN112085154A CN202010526606.4A CN202010526606A CN112085154A CN 112085154 A CN112085154 A CN 112085154A CN 202010526606 A CN202010526606 A CN 202010526606A CN 112085154 A CN112085154 A CN 112085154A
Authority
CN
China
Prior art keywords
value
layer
weight
quantized
weight values
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.)
Pending
Application number
CN202010526606.4A
Other languages
English (en)
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.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
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
Priority claimed from US16/877,582 external-priority patent/US12008467B2/en
Application filed by Baidu USA LLC filed Critical Baidu USA LLC
Publication of CN112085154A publication Critical patent/CN112085154A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开涉及用于神经网络的压缩和推断加速的非对称量化。改进的非对称量化的实施例,通常可被称为改进非对称量化(IAQ)实施例。IAQ实施例结合常规的非对称量化和对称量化的优点,但也提供了额外的计算效率。IAQ的实施例采用神经网络层的权重的非对称范围,因此它们规避了对称量化的对称范围的限制。另外,通过量化每个层的偏移值,通过IAQ实施例量化的神经网络的推断过程比由常规的非对称量化而量化的神经网络的推断过程快得多。

Description

用于神经网络的压缩和推断加速的非对称量化
技术领域
本公开一般涉及用于计算机学习的系统和方法,可以提供改进的计算机性能、特征和用途。更特别地,本公开涉及神经网络的改进的压缩和改进的加速推断的实施例。
背景技术
深度神经网络(Deep Neural Network,DNN)在人工智能中实现了惊人成就。然而,DNN的模型大小通常非常大。权重量化是通过使用用于DNN的每个浮动权重的低位表示压缩DNN的重要方法。传统的对称量化假设权重的范围关于零对称。这种假设在实践中通常不成立。因此,非对称量化已经被广泛地用于规避对称量化的缺点。然而,常规的非对称量化导致经量化的DNN的推断过程中的延迟,部分是因为添加的计算以及因为计算的类型。
因此,需要提供神经网络的改进的非对称量化、改进的加速或两者的系统和方法,改进的非对称量化提供压缩,这有助于降低存储器和处理要求,通过降低由于量化引起的计算负荷提高神经网络的加速。
发明内容
在第一方面中,提供一种用于神经网络的量化的计算机实现的方法,包括:
从用于所述神经网络的层的权重值中识别极值权重值的集合,所述极值权重值的集合包括最大权重值和最小权重值;
使用所述极值权重值的集合和将用于以量化形式表示所述权重值的位的数量来获得用于量化用于所述神经网络的层的所述权重值的缩放因子;
使用所述极值权重值中的一个以及所述缩放因子以量化用于所述神经网络的层的所述权重值;
使用所述缩放因子和来自被用于量化所述层的所述权重值的所述极值权重值的集合的极值来获得用于所述层的偏移值,所述偏移值是整数值;以及
对于所述层,存储所述缩放因子、所述偏移值及经量化的权重以在推断期间使用,其中获得用于所述层的输出包括仅使用整数运算,以通过所述偏移值调整所述经量化的权重,以及将经调整的经量化的权重值与用于所述层的输入值相乘。
在第二方面中,提供一种系统,包括:
一个或多个处理器;以及
非暂时性计算机可读介质,包括一个或多个指令集,所述一个或多个指令集在由所述一个或多个处理器中的至少一个执行时,使得如第一方面所述的方法的步骤被执行。
在第三方面中,提供一种非暂时性计算机可读介质,包括一个或多个指令序列,所述一个或多个指令序列在由一个或多个处理器执行时,使得如第一方面所述方法的步骤被执行。
根据本发明的实施例采用神经网络层的权重的非对称范围,因此规避了对称量化的对称范围的限制。另外,通过量化每个层的偏移值,通过本发明的实施例量化的神经网络的推断过程比由常规的非对称量化而量化的神经网络的推断过程快得多。
附图说明
将参考本公开的实施例,其示例可以在附图中示出。这些附图旨在说明而非限制。尽管本公开一般在这些实施例的上下文中描述,但是应当理解的是,其不旨在将本公开内容的范围限制于这些特别的实施例。图中的项目可以不是按比例的。
图1描述通过常规的非对称量化而量化的深度神经网络(DNN)的层的图示。
图2描述根据本公开的实施例的通过改进的非对称量化(Improved AsymmetricQuantization,IAQ)而量化的神经网络的层的图示。
图3描述根据本公开的实施例的用于改进的非对称量化(IAQ)的方法。
图4提供使用已使用IAC实施例量化的权重用于推断的方法。
图5描述根据本公开的实施例的通过改进的非对称量化(IAQ)而量化的神经网络的多个层的图示。
图6描述根据本公开的实施例的计算设备/信息处理系统的简化框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以提供对本公开的理解。然而,对于本领域技术人员来说,显然可以在没有这些细节的情况下实践本公开。另外,本领域技术人员将认识到,下面描述的本公开的实施例可以以各种方式实现,诸如过程、装置、系统/设备或有形计算机可读介质上的方法。
图中所示的组件或模块是本公开的示例性实施例的说明,并且意在避免使本公开模糊。还应当理解的是,在整个讨论中,组件可以被描述为可包括子单元的分离的功能单元,但是本领域技术人员将认识到,各种组件或其部分可以被划分为分离的组件或者可以被集成在一起,包括集成在单个系统或组件内。应当注意的是,这里讨论的功能或操作可以被实现为组件。组件可以用软件、硬件或其组合实现。
另外,附图中的组件或系统之间的连接不旨在限于直接连接。相反,这些组件之间的数据可由中间组件修改、重新格式化或以其他方式改变。另外,可以使用额外的或更少的连接。还应当注意,术语“耦接”、“连接”、“通信地耦接”、“接合”、“接口”或它们的派生词中的任何派生词应当被理解为包括直接连接、通过一个或多个中间设备的间接连接以及无线连接。还应当注意的是,任何通信,诸如信号、响应、回复、确认、消息、查询等,可包括信息的一个或多个交换。
说明书中对“一个实施例”、“优选实施例”、“实施例”或“多个实施例”的引用意味着结合实施例描述的特别的特征、结构、特性或功能被包括在本公开的至少一个实施例中,并且可以在多于一个实施例中。另外,在说明书中的各个位置出现的上述短语不一定都指相同的一个或多个实施例。
在说明书中的各个位置使用某些术语是为了说明,而不应被解释为限制。术语“包括”、“具有”、“包含”和“含有”应被理解为开放性术语,并且随后的任何列表是示例,并且不意味着限于所列出的项目。“层”可包括一个或多个操作。词语“最优的”、“使最优化”、“优化”等是指结果或过程的改进,并且不需要指定的结果或过程已经达到“最优的”或峰值状态。
服务、功能或资源不限于单个服务、功能或资源;这些术语的使用可以指可以是分布式或聚合的有关的服务、功能或资源的组合。存储器、数据库、信息库、数据存储、表、硬件、高速缓存等的使用在此可用于指信息可被输入或以其它方式记录到其中的一个或多个系统组件。术语“数据”、“信息”以及类似术语可以由涉及一组位的其他术语替换,并且可以互换地使用。在一个或多个实施例中,停止条件可包括:(1)已经执行了设定次数的迭代;(2)已经达到处理时间的量;(3)收敛(例如,连续迭代之间的差小于第一阈值);(4)发散(例如,性能恶化);以及(5)已经达到可接受的结果。
本文所用的任何标题仅用于组织目的,而不应被用于限制说明书或权利要求书的范围。在此专利文件中提到的每个参考文献都通过引用整体结合于此。
应当注意的是:(1)可以可选地执行某些步骤;(2)步骤可以不限于本文阐述的特定顺序;(3)某些步骤可以以不同的顺序执行;以及(4)某些步骤可以同时进行。
应注意的是,本文提供的任何实验和结果都是通过说明的方式提供的,并且是使用一个或多个特定实施例在特定的条件下执行的;因此,这些实验或其结果都不应被用于限制本专利文献的公开的范围。
A.介绍
如上所述,常规的非对称量化往往导致经量化的神经网络的推断过程中的延迟。因此,本文呈现改进的非对称量化的实施例,为方便起见,实施例可一般称为改进的非对称量化(IAQ)实施例。IAQ实施例采用非对称量化的实施方式,但与常规的非对称量化相比,大大减少了推断过程期间的延迟。
量化方法已经被用于减小神经网络(NN)的模型尺寸。量化方法通过低位表示来表示神经网络的每个浮动权重,因此经量化的NN具有减小的模型尺寸。例如,可以用8位字节表示NN的每个32位浮点权重,使得存储NN所需的位的总数减少四倍。
基于如何将浮点值映射到低位表示,量化方法通常可以被分类为两类,即,非对称量化和对称量化,这将在下面更详细地讨论。
1.非对称量化
神经网络的层包括多个权重,其中至少一个权重将具有最小值,以及至少一个权重将具有最大值。神经网络的层的权重的最小值和最大值可以分别由min和max表示。如果目标低位表示具有n位,则用于量化的缩放因子可以计算为
Figure BDA0002533888000000041
其中n是低位表示的位的数量。每个浮点权重w可以被量化为
Figure BDA0002533888000000042
其中round是将其输入舍入到最接近的整数的舍入函数。wq是在非对称量化之后用于原始权重w的低位表示。
虽然非对称量化覆盖了可以关于零是非对称的范围,但是从经量化的权重恢复的浮点权重被表示为min+wq*s。虽然可以以有效的方式处理部分wq*s,但是由于min是浮点数,所以min和wq*s的相加构成浮点运算。因此,去量化,即,将经量化的权重转换为浮点权重的过程,在计算上是低效的。假定神经网络可能具有大量的权重,每个权重需要这种低效的计算,则计算资源(例如,计算时间和能量)被低效地利用,从而致使增加的延迟、增加的计算和增加的能量消耗。
2.对称量化
与其中范围[min,max]被映射到经量化的范围的非对称量化相比,对称量化将范围[-mmax,mmax]映射到经量化的范围,其中mmax表示|min|和|max|的最大值,并且||指示返回输入的绝对值的算子。因此,对称量化是量化关于零对称的范围。
用于量化的缩放因子可以被计算为
Figure BDA0002533888000000051
每个浮点权重w可被量化为
Figure BDA0002533888000000052
Figure BDA0002533888000000053
以及从经量化的权重恢复的浮点权重是
Figure BDA0002533888000000054
Figure BDA0002533888000000055
由于(-2n-1+wq)是低位整数,例如当n=8时它是int8类型,因此可以更有效地计算恢复的浮点权重。
然而,如果权重的范围偏向零的一侧,则对称量化导致其中整个范围的一半专用于将永远不会被观察到的值的经量化的范围。最极端的示例是所有浮点权重都为正的情况。以对称模式量化这样的权重导致至少一个位的丢失,这是对称量化的主要缺点。
B.改进的非对称量化(IAQ)实施例
改进的非对称量化(IAQ)实施例结合了常规非对称量化和对称量化的最佳状态,并避免了它们的缺点。IAQ实施例采用非对称范围的权重,因此它们规避了对称量化的对称范围的限制。另外,通过量化每个层的最小值或最大值,通过IAQ实施例量化的神经网络的推断过程比由常规的非对称量化而量化的神经网络的推断过程快得多。
图1描述通过常规的非对称量化而量化的神经网络的层的图示。图1的左部105示出通过常规的非对称量化而量化的神经网络的层,并且其右部110示出推断过程中此层的操作。这里,m是此层的权重的最小值,s是用于量化的缩放因子,W是用于在此层中执行的线性运算的经量化的矩阵。作为说明而非限制,假设W是2×2矩阵,并且i0,i1,i2,和i3是W的四个经量化的权重。
通过选择用于量化的低位表示中的位的数量的不同的值,经量化的权重需要比原始浮点权重少得多的存储。在一个或多个实施例中,采用8位表示,这使得每个经量化的权重一个字节或是int8类型。每个经量化的权重仅占用32位浮点数所需的存储的四分之一。然而,应当注意的是,可以使用除8位之外的不同的位表示。
在一个或多个实施例中,在推断过程中,W’指示从W恢复的浮点权重,a是此层的输入,而b是此层的输出。在一个或多个实施例中,输入a被量化,使得a的每个元素是一个字节或int8类型。在图1中可以看到b=W′a的表达式,其包括两项。框115中的项仅涉及整数运算(以s进行缩放),其可在可编程逻辑设备(即,硬件实施方式),诸如专用集成电路,如人工智能微芯片/微处理器,中有效地被计算。然而,第一部分具有与浮点数m相乘的运算,并且必须通过浮点加法将两个项目相加以获得输出b。因此,b的总体计算不能够受益于快速整数运算。IAQ实施例克服了用于神经网络的推断速度的问题。
图2描述由改进的非对称量化实施例量化的DNN的层的图示。与图1所示相同的层在图2中由IAQ实施例量化,图2的左部205显示由IAQ实施例量化的层,并且每个经量化的权重是一个字节或int8类型。图2的右部210显示此层的推断过程。
与常规的非对称量化相比,IAQ的创新方面中的一个是量化原始层的权重的最小值或最大值。如图2所示,所描述的IAQ实施例计算
Figure BDA0002533888000000061
并随后使用m0*s作为原始m的近似。以这种方式量化m将导致图2所示的输出b的新的表达式,其中b是缩放因子s和用框215标记的整数运算的另一结果的乘积的结果。框215概述的整数运算可以在芯片上有效地计算,并且可以分离地处理涉及s的乘法。由于对芯片上的整数运算的快速计算,由IAQ实施例量化的DNN的推断过程比常规的非对称量化快得多。
图3描述根据本公开的实施例的用于改进的非对称量化(IAQ)的方法。在一个或多个实施例中,对于神经网络的层,识别(305)来自用于此层的权重值的极值权重值。极值权重值的集合包括来自用于此层的权重值的最大权重值(max)和来自用于此层的权重值的最小权重值(min)。
在一个或多个实施例中,给定极值,可使用极值权重值的集合以及将被用于以经量化的形式表示权重值的位的数量(n)获得(310)用于量化神经网络的层的权重值的缩放因子。在一个或多个实施例中,可以如下计算缩放因子(s):
Figure BDA0002533888000000062
给定用于层的缩放因子以及来自层的极值权重值中的一个,可计算(315)偏移值。在一个或多个实施例中,极值可以是min值或max值;然而,如下面将示出的,选择影响如何执行去量化。
如果选择min值,则可以如下计算偏移量:
Figure BDA0002533888000000063
如果选择了max值,则可以如下计算偏移量:
Figure BDA0002533888000000064
如上所述,不管实施例如何,偏移值被设置为整数值,使得在推断期间,可以更广泛地使用执行得更快的整数运算。在一个或多个实施例中,可使用舍入运算获得整数偏移值m0。然而,应注意的是,可使用其它机制,包括导致偏移为整数值的截断或其它转换。
在一个或多个实施例中,使用(320)用于获得偏移值的用于层的选择的极值权重值和缩放因子以获得用于层的经量化的权重值。在一个或多个实施例中,如果使用min值用于获得偏移值,则权重值w可以被如下量化:
Figure BDA0002533888000000071
以及,如果使用max值用于获得偏移值,则在一个或多个实施例中,权重值w可以被如下量化:
Figure BDA0002533888000000072
应当注意的是,步骤315和325可以容易地以不同的顺序完成或同时完成。应当注意的是,虽然以上提到了舍入,但是可以使用其他机制,包括导致经量化的权重值是整数值的截断或其他转换。
在一个或多个实施例中,对于神经网络的层,存储(325)缩放因子、偏移值和经量化的权重。因此,在推断期间,获得用于层的输出包括仅使用整数运算,以通过偏移值调整经量化的权重,以及将经调整的经量化的权重值与输入值相乘。由于这些仅是整数运算,因此它们可以被有效地执行。在一个或多个实施例中,还可以存储指示符以指示偏移值是根据min值还是max值确定的。在一个或多个实施例中,可以设置默认值(例如,使用min值或使用max值),使得不需要指示符。在又一实施例中,可以使用默认值,并且只有当选择的极值与默认值不同时才使用指示符。
本领域技术人员将认识到IAC的实施例提供了若干技术优点。首先,量化允许权重的压缩。压缩提供了许多优点,诸如较少的存储要求和潜在较少的存储器读取,因为经量化的值更可能适合处理存储器/高速缓存。其次,通过根据IAC配置量化,在推断期间,可以使用整数运算执行更多的运算,这在硬件中执行得更快。
图4提供使用已使用IAC实施例量化的权重进行推断的方法。在一个或多个实施例中,接收(405)用于神经网络的层的输入值,其通常是整数的向量。在一个或多个实施例中,可以使用用于层的缩放因子、偏移值、用于层的经量化的权重和输入值计算(410)用于神经网络的此层的输出。
为了说明起见,假设层的权重矩阵(W)是具有经量化的权重值的2×2矩阵:
Figure BDA0002533888000000081
在偏移值mo基于min值的一个或多个实施例中,输出b可以被计算为:
Figure BDA0002533888000000082
在偏移值mo基于max值的一个或多个实施例中,输出b可以被计算为:
Figure BDA0002533888000000083
不管是min还是max实施例,计算输出b涉及仅使用整数运算以通过偏移值mo调整经量化的权重,并且将经调整的经量化的权重值乘以输入值a。
应注意的是,IAQ的实施例改进具有多个层的推断速度。为了进一步说明IAQ实施例如何提高具有多个层的神经网络的推断速度,本文呈现涉及IAQ对神经网络中的两个层进行量化的情况。图5描述由IAQ实施例量化的神经网络的两个层的图示。图5的上部505示出两个经量化的层,其中两个层执行由矩阵W1和W2表示的线性运算,并且在所描述的示例中,W1和W2中的每个经量化的权重可以是一个字节或int8类型。图5的底部510示出这两个层的推断过程。s1和s2分别是用于这两个层的量化的缩放因子,以及m1和m2是这两个层的经量化的最小值。根据上述量化IAQ实施例,这两个层的输出,由b2=W′2W1′a指示,可以被表示为s2*s1与由框515标记的整数运算的结果的乘积。在所描述的实施例中,整数运算涉及两个整数矩阵的乘法;以及在具有L个连续层的神经网络的一般情况下,计算L个整数矩阵的乘积。
如同其它实施例一样,可有效地执行整数运算,特别是在芯片上执行。在一个或多个实施例中,可将由IAQ实施例量化的这些连续层的总体推断过程划分为两个有效的步骤:(1)计算由框515标记的整数运算的结果,为了方便起见,结果可以被称为中间乘积;以及(2)由缩放因子的乘积s2*s1缩放步骤(1)的中间乘积。虽然步骤(2)涉及与浮点数s1和s2的乘法,但是仅针对步骤(1)的结果的每个元素执行这样的乘法,这是比没有任何量化或具有传统的量化的情况少得多的非整数运算。与由常规的非对称量化(其中执行浮点矩阵的乘法)进行量化的神经网络的推断过程相比,由IAQ实施例量化的神经网络的推断过程更有效,且因此更快。
C.计算系统实施例
在一个或多个实施例中,本专利文件的方面可以针对一个或多信息处理系统/计算系统,可包括一个或多个信息处理系统/计算系统,或者可以在一个或多个信息处理系统/计算系统上实现。计算系统可包括任何手段或手段的集合,其可操作以计算、运算、确定、分类、处理、传输、接收、检索、发起、路由、切换、存储、显示、通信、表明、检测、记录、复制、处理或利用任何形式的信息、情报或数据。例如,计算系统可以是或可包括个人计算机(例如,笔记本电脑)、平板计算机、平板手机、个人数字助理(PDA)、智能电话、智能手表、智能包装、服务器(例如,刀片服务器或机架服务器)、网络存储设备、相机或任何其他合适的设备,并且可以在大小、形状、性能、功能和价格上变化。计算系统可包括随机存取存储器(RAM)、一个或多个处理资源(诸如中央处理单元(CPU)或硬件或软件控制逻辑)、只读存储器(ROM)和/或其他类型的存储器。计算系统的额外的组件可包括一个或多个磁盘驱动器、用于与外部设备通信的一个或多个网络端口以及各种输入和输出(I/O)设备,诸如键盘、鼠标、触笔、触摸屏和/或视频显示器。计算系统还可包括一个或多个总线,其可操作以在各种硬件组件之间传输通信。
图6示出根据本公开的实施例的计算设备/信息处理系统(或计算系统)的简化框图。将理解的是,系统600所示的功能可操作以支持计算系统的各种实施例—尽管应当理解的是,计算系统可以被不同地配置并且包括不同的组件,包括具有比图6中描述的更少或更多的组件。
如图6所示,计算系统600包括提供计算资源并控制计算机的一个或多个中央处理单元(CPU)601。CPU601可以用微处理器等实现,并且还可包括一个或多个图形处理单元(GPU)619和/或用于数学计算的浮点协处理器。在一个或多个实施例中,一个或多个GPU619可以被包括在显示控制器609内,诸如一个或多个图形卡的部分。系统600还可包括系统存储器602,其可包括RAM、ROM或两者。
如图6所示,也可以提供多个控制器和外围设备。输入控制器603表示到各种输入设备604(诸如键盘、鼠标、触摸屏和/或触笔)的接口。计算系统600还可包括用于与一个或多个存储设备608接口的存储控制器607,存储设备608中的每一个包括诸如磁带或磁盘的存储介质,或者可以用于记录用于操作系统、实用程序和应用的指令的程序的光学介质,其可包括实现本公开的各个方面的程序的实施例。(一个或多个)存储设备608还可以用于存储处理的数据或根据本公开待处理的数据。系统600还可包括显示控制器609,用于提供到显示装置611的接口,显示设备611可以是阴极射线管(CRT)、薄膜晶体管(TFT)显示器、有机发光二极管、电致发光面板、等离子面板或其它类型的显示器。计算系统600还可包括用于一个或多个外围设备606的一个或多个外围控制器或接口605。外围设备的示例可包括一个或多个打印机、扫描仪、输入设备、输出设备、传感器等。通信控制器614可以与一个或多个通信设备615接口,这使得系统600能够通过包括因特网、云资源(例如,以太网云、以太网光纤通道(FCoE)/数据中心桥接(DCB)云等)、局域网(LAN)、广域网(WAN)、存储区域网(SAN)的各种网络中的任一个或者通过包括红外信号的任何合适的电磁载波信号连接到远程设备。
在所示系统中,所有主要系统组件可连接到总线616,其可表示多于一个物理总线。然而,各种系统组件可以彼此物理接近或不彼此物理接近。例如,输入数据和/或输出数据可以从一个物理位置远程地传输到另一物理位置。另外,可以通过网络从远程位置(例如,服务器)访问实现本公开的各个方面的程序。这样的数据和/或程序可以通过各种机器可读介质中的任一个传送,各种机器可读介质包括例如:磁介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM和全息设备;磁光介质;以及专门配置为存储或存储并执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪存设备以及ROM和RAM设备。
本公开的方面可以编码在一个或多个非暂时性计算机可读介质上,该介质具有用于一个或多个处理器或处理单元的指令以致使步骤被执行。应当注意的是,一个或多个非暂时性计算机可读介质应当包括易失性和/或非易失性存储器。应当注意的是,包括硬件实现或软件/硬件实现的替换的实施方式是可能的。硬件实现的功能可以使用ASIC、可编程阵列、数字信号处理电路等实现。因此,任何权利要求中的“装置”术语旨在覆盖软件和硬件实施方式。类似地,如本文所使用的术语“计算机可读介质或媒介”包括其上包含指令程序的软件和/或硬件,或其组合。考虑到这些实施方式可替换方案,应当理解的是,附图和所附描述提供了本领域技术人员编写程序代码(即,软件)和/或制造电路(即,硬件)以执行所需处理所需的功能信息。
应当注意的是,本公开的实施例还可以涉及具有非暂时性有形计算机可读介质的计算机产品,计算机产品上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本公开的目的而专门设计和构造的那些,或者它们可以是相关领域的技术人员已知或可用的类型。有形计算机可读介质的示例包括,例如:磁介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM和全息设备;磁光介质;以及专门配置为存储或存储并执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪存设备以及ROM和RAM设备。计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机使用解释器执行的更高级代码的文件。本公开的实施例可以整体或部分地实现为机器可执行指令,机器可执行指令可以在由处理设备执行的程序模块中。程序模块的示例包括库、程序、例程、对象、组件和数据结构。在分布式计算环境中,程序模块可以物理地位于本地、远程或两者的设置中。
应当注意的是,本公开的实施例还可以涉及计算机微芯片或芯片,其中可以在一个或多个芯片的硬件和/或固件中实现本文所述的功能。
本领域技术人员将认识到,没有计算系统或编程语言对于本公开的实践是关键的。本领域技术人员还将认识到,上述多个元件可以在物理上和/或功能上分离为模块和/或子模块或者组合在一起。
本领域技术人员将理解的是,前述示例和实施例是示例性的,而不是限制本公开的范围。在阅读说明书和研究附图之后,本领域技术人员显而易见的所有置换、增强、等效、组合和改进都包括在本公开的真实精神和范围内。还应当注意的是,任何权利要求的元素可以被不同地布置,包括具有多个依赖性、配置和组合。

Claims (9)

1.一种用于神经网络的量化的计算机实现的方法,包括:
从用于所述神经网络的层的权重值中识别极值权重值的集合,所述极值权重值的集合包括最大权重值和最小权重值;
使用所述极值权重值的集合和将用于以量化形式表示所述权重值的位的数量来获得用于量化用于所述神经网络的层的所述权重值的缩放因子;
使用所述极值权重值中的一个以及所述缩放因子以量化用于所述神经网络的层的所述权重值;
使用所述缩放因子和来自被用于量化所述层的所述权重值的所述极值权重值的集合的极值来获得用于所述层的偏移值,所述偏移值是整数值;以及
对于所述层,存储所述缩放因子、所述偏移值及经量化的权重以在推断期间使用,其中获得用于所述层的输出包括仅使用整数运算,以通过所述偏移值调整所述经量化的权重,以及将经调整的经量化的权重值与用于所述层的输入值相乘。
2.如权利要求1所述的计算机实现的方法,还包括:
使用用于所述层的所述缩放因子、用于所述层的所述偏移值、用于所述层的所述经量化的权重和输入值计算用于所述神经网络的层的输出,其中使用整数运算以通过所述偏移值调整所述经量化的权重,以及将所述经调整的经量化的权重值与所述输入值相乘。
3.如权利要求1所述的计算机实现的方法,其中所述极值权重值是所述最大权重值,以及通过使用整数运算从所述偏移值减去所述经量化的值获得经调整的经量化的权重值。
4.如权利要求1所述的计算机实现的方法,其中所述极值权重值是所述最小权重值,以及通过使用整数运算将所述经量化的值加到所述偏移值获得经调整的经量化的权重值。
5.如权利要求1所述的计算机实现的方法,其中使用所述缩放因子和来自被用于量化用于所述层的所述权重值的所述极值权重值的集合的所述极值来获得用于所述层的为整数值的偏移值的步骤包括:
通过以所述缩放因子除以来自所述极值权重值的集合的所述极值获得商;以及
将所述商转换为整数值。
6.如权利要求1所述的计算机实现的方法,还包括:
将权利要求1的方法用于所述神经网络的两个或更多个层中的每个层。
7.如权利要求6所述的计算机实现的方法,其中所述两个或多个层中的至少多个层是连续层,以及所述方法还包括:
通过执行以下步骤计算用于所述神经网络的所述连续层的输出,所述步骤包括:
使用整数运算以:
针对所述连续层中的每个层,通过以所述层的所述偏移值调整所述层的所述经量化的权重值获得用于所述层的经调整的经量化的权重值的集合;以及
将所述经调整的经量化的权重值的集合与用于所述连续层的第一层的输入值相乘在一起以获得中间乘积;以及
将用于所述连续层中的每个层的所述缩放因子与所述中间乘积相乘在一起以获得用于所述连续层的所述输出。
8.一种系统,包括:
一个或多个处理器;以及
非暂时性计算机可读介质,包括一个或多个指令集,所述一个或多个指令集在由所述一个或多个处理器中的至少一个执行时,使得如权利要求1至7中任一项所述的方法的步骤被执行。
9.一种非暂时性计算机可读介质,包括一个或多个指令序列,所述一个或多个指令序列在由一个或多个处理器执行时,使得如权利要求1至7中任一项所述方法的步骤被执行。
CN202010526606.4A 2019-07-01 2020-06-11 用于神经网络的压缩和推断加速的非对称量化 Pending CN112085154A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962869560P 2019-07-01 2019-07-01
US62/869,560 2019-07-01
US16/877,582 2020-05-19
US16/877,582 US12008467B2 (en) 2020-05-19 Asymmetric quantization for compression and for acceleration of inference for neural networks

Publications (1)

Publication Number Publication Date
CN112085154A true CN112085154A (zh) 2020-12-15

Family

ID=71105384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010526606.4A Pending CN112085154A (zh) 2019-07-01 2020-06-11 用于神经网络的压缩和推断加速的非对称量化

Country Status (2)

Country Link
EP (1) EP3767550A1 (zh)
CN (1) CN112085154A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492778A (zh) * 2022-02-16 2022-05-13 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492778A (zh) * 2022-02-16 2022-05-13 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备

Also Published As

Publication number Publication date
US20210004679A1 (en) 2021-01-07
EP3767550A1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
US11580719B2 (en) Dynamic quantization for deep neural network inference system and method
US11847550B2 (en) Sparse convolutional neural network accelerator
CN108337000B (zh) 用于转换到较低精度数据格式的自动方法
Chen et al. Adacomp: Adaptive residual gradient compression for data-parallel distributed training
KR102476343B1 (ko) 자리수가 비교적 적은 고정 소수점 수치의 신경망 연산에 대한 지원 장치와 방법
CN111989697A (zh) 用于并行和分布式张量计算的神经硬件加速器
US10491239B1 (en) Large-scale computations using an adaptive numerical format
US20200117981A1 (en) Data representation for dynamic precision in neural network cores
US10872295B1 (en) Residual quantization of bit-shift weights in an artificial neural network
CN110163334B (zh) 集成电路芯片装置及相关产品
KR102655950B1 (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
WO2021044244A1 (en) Machine learning hardware having reduced precision parameter components for efficient parameter update
CN114118347A (zh) 用于神经网络量化的细粒度每向量缩放
CN111240746B (zh) 一种浮点数据反量化及量化的方法和设备
US20220261650A1 (en) Machine learning training in logarithmic number system
CN112085175B (zh) 基于神经网络计算的数据处理方法和装置
US9143159B2 (en) DPD/BCD to BID converters
CN112085154A (zh) 用于神经网络的压缩和推断加速的非对称量化
Xia et al. An energy-and-area-efficient cnn accelerator for universal powers-of-two quantization
US20210044303A1 (en) Neural network acceleration device and method
CN109389209B (zh) 处理装置及处理方法
US12008467B2 (en) Asymmetric quantization for compression and for acceleration of inference for neural networks
Madadum et al. A resource-efficient convolutional neural network accelerator using fine-grained logarithmic quantization
KR20220018199A (ko) 희소성 데이터를 이용하는 연산 장치 및 그것의 동작 방법
KR102567603B1 (ko) 선형 보간법을 이용한 삼각함수 계산 방법 및 장치

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