CN115511047B - Softmax模型的量化方法、装置、设备及介质 - Google Patents

Softmax模型的量化方法、装置、设备及介质 Download PDF

Info

Publication number
CN115511047B
CN115511047B CN202211106102.2A CN202211106102A CN115511047B CN 115511047 B CN115511047 B CN 115511047B CN 202211106102 A CN202211106102 A CN 202211106102A CN 115511047 B CN115511047 B CN 115511047B
Authority
CN
China
Prior art keywords
target
input vector
result
target chip
output result
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
CN202211106102.2A
Other languages
English (en)
Other versions
CN115511047A (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.)
Shanghai Suiyuan Technology Co ltd
Original Assignee
Shanghai Suiyuan Technology Co ltd
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 Shanghai Suiyuan Technology Co ltd filed Critical Shanghai Suiyuan Technology Co ltd
Publication of CN115511047A publication Critical patent/CN115511047A/zh
Application granted granted Critical
Publication of CN115511047B publication Critical patent/CN115511047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了Softmax模型的量化方法、装置、设备及介质,包括:将Softmax模型对应的原始输入向量加载至目标芯片中,通过目标芯片确定与原始输入向量匹配的目标输入向量;通过目标芯片中的DMA控制器从地址查询链表中获取多个目标查询地址;通过DMA控制器根据各目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取目标输入向量匹配的指数运算输出结果以及求和运算输出结果;通过目标芯片根据指数运算输出结果以及求和运算输出结果,确定与Softmax模型对应的目标输出结果。本发明实施例的技术方案可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。

Description

Softmax模型的量化方法、装置、设备及介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及Softmax模型的量化方法、装置、设备及介质。
背景技术
随着人工智能技术的发展,人工神经网络模型的参数量和运算量急剧增加。其中,Softmax模型作为一种常见的运算模型,在BERT等大型神经网络模型中应用广泛。
现有的Softmax模型中含有大量的浮点数指数运算,以及累加运算等,导致参数运算量较大,运算过程耗时较久,给用户带来巨大的算力成本和时间成本;其次,现有的Softmax模型量化过程通常依靠软件处理,运算效率较低。
因此,有待提出一种Softmax模型运算方法的新方案,以提高运算效率。
发明内容
本发明提供了Softmax模型的量化方法、装置、设备及介质,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
根据本发明的一方面,提供了一种Softmax模型的量化方法,包括:
将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量;
通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址;
通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果;
通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
根据本发明的另一方面,提供了一种Softmax模型的量化装置,所述装置包括:
向量加载模块,用于将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量;
地址获取模块,用于通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址;
结果获取模块,用于通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果;
目标结果确定模块,用于通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的Softmax模型的量化方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的Softmax模型的量化方法。
本发明实施例提供的技术方案,通过将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过目标芯片确定与原始输入向量匹配的目标输入向量,通过目标芯片中的DMA控制器从地址查询链表中获取多个目标查询地址,通过DMA控制器根据各目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与目标输入向量匹配的指数运算输出结果以及求和运算输出结果,通过目标芯片根据指数运算输出结果以及求和运算输出结果,确定与Softmax模型对应的目标输出结果的技术手段,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种Softmax模型的量化方法的流程图;
图2是根据本发明实施例提供的另一种Softmax模型的量化方法的流程图;
图3是根据本发明实施例提供的另一种Softmax模型的量化方法的流程图;
图4是根据本发明实施例提供的一种Softmax模型的量化装置的结构示意图;
图5是实现本发明实施例的Softmax模型的量化方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例一提供的一种Softmax模型的量化方法的流程图,本实施例可适用于硬件芯片对Softmax模型中的数据进行量化的情况,该方法可以由Softmax模型的量化装置来执行,该Softmax模型的量化装置可以采用硬件和/或软件的形式实现,该Softmax模型的量化装置可配置于电子设备(例如终端或者服务器)中。如图1所示,该方法包括:
步骤110、将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量。
在本实施例中,所述原始输入向量可以为Softmax模型对应的实际的、待处理的输入向量。在获取到Softmax模型对应的原始输入向量之后,可以将所述原始输入向量加载至目标芯片中。可选的,目标芯片可以对所述原始输入向量进行线性或非线性处理,得到便于Softmax模型处理的目标输入向量。
步骤120、通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址。
在本实施例中,在将与Softmax模型对应的原始输入向量加载至目标芯片之前,还可以建立地址查询链表,所述地址查询链表用于存储多个预设输入向量与查询地址之间的映射关系。
在此步骤中,可选的,在将与Softmax模型对应的原始输入向量加载至目标芯片之后,可以通过中央处理器(Central Processing Unit,CPU),对直接存储器访问(DirectMemory Access,DMA)控制器进行初始化,然后由DMA控制器,从地址查询链表中获取与目标输入向量对应的多个目标查询地址。
在一个具体的实施例中,所述目标查询地址包括用于获取指数运算输出结果的地址,以及用于获取求和运算输出结果的地址。DMA控制器获取目标查询地址时,可选的,可以将所述目标输入向量与地址查询链表中的各向量进行对比,然后根据对比结果获取与目标输入向量一致的向量,并将该向量对应的查询地址作为目标查询地址。
步骤130、通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果。
在本实施例中,所述指数运算查找表用于存储Softmax模型对应的,多个预设输入向量与指数运算结果之间的映射关系;所述求和运算查找表用于存储Softmax模型对应的,多个预设输入向量与求和运算结果之间的映射关系。
在一个具体的实施例中,将与Softmax模型对应的原始输入向量加载至目标芯片之前,目标芯片还可以根据Softmax模型中预设的指数运算规则,构建指数运算查找表,并根据Softmax模型中预设的求和运算规则,构建求和运算查找表。
在此步骤中,可选的,可以通过DMA控制器基于分散聚集(Scatter-Gather)DMA技术,根据各所述目标查询地址,在指数运算查找表以及求和运算查找表中,分别获取与目标输入向量匹配的指数运算输出结果以及求和运算输出结果。
步骤140、通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
在此步骤中,可选的,DMA控制器获取到目标输入向量匹配的指数运算输出结果以及求和运算输出结果后,目标芯片可以对指数运算输出结果以及求和运算输出结果进行线性或非线性处理,得到Softmax模型对应的目标输出结果。
在本实施例中,在Softmax模型对原始输入向量进行在线处理之前,通过目标芯片离线构建查找表的方式,可以对Softmax模型指数运算、以及求和运算进行提前量化,由此降低Softmax模型的运算量,提升运算效率;其次,通过上述方式,可以使得原始输入向量在线处理过程全部通过硬件完成,在获取指数运算输出结果以及求和运算输出结果时,通过DMA控制器并行访问的方法,可以有效提高硬件芯片对Softmax模型的在线处理性能。
本发明实施例提供的技术方案,通过将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过目标芯片确定与原始输入向量匹配的目标输入向量,通过目标芯片中的DMA控制器从地址查询链表中获取多个目标查询地址,通过DMA控制器根据各目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与目标输入向量匹配的指数运算输出结果以及求和运算输出结果,通过目标芯片根据指数运算输出结果以及求和运算输出结果,确定与Softmax模型对应的目标输出结果的技术手段,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
图2为本实施例提供的另一种Softmax模型的量化方法的流程图,在本实施例中,本实施例的技术方案可以与上述实施例的方案中的一种或者多种方法进行组合,如图2所示,本实施例提供的方法还可以包括:
步骤210、将与Softmax模型对应的多个第一输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的指数运算规则,确定与各第一输入向量匹配的指数运算结果。
在本实施例中,所述第一输入向量可以为预设的整数值,目标芯片获取到多个第一输入向量后,可以根据Softmax模型中的指数运算规则,对多个第一输入向量进行处理,得到与各第一输入向量匹配的指数运算结果。
在本实施例的一个实施方式中,通过目标芯片,根据所述Softmax模型中的指数运算规则,确定与各第一输入向量匹配的指数运算结果,包括:通过目标芯片,根据所述Softmax模型中的指数函数,对预设的多项式函数进行拟合,并根据多项式拟合结果,以及各第一输入向量,确定与各第一输入向量匹配的指数运算结果。
在一个具体的实施例中,假设预设的多项式函数为f(x)=ax2+bx+c,其中a,b,c为函数参数,x为自变量,目标芯片可以在数值区间(-ln2,0]中取一系列的数值x,并通过下述指数函数进行指数运算:
yt=exp(x)
通过上述公式计算出yt后,可以根据x和yt,对f(x)进行拟合,得到a,b,c的数值。这样设置的好处在于,通过采用多项式拟合的方式近似指数运算,可以进一步降低指数运算过程中的运算量。
在一个具体的实施方式中,所述多项式拟合结果中包括多个函数参数;所述根据多项式拟合结果,以及各第一输入向量,确定与各第一输入向量匹配的指数运算结果,包括:
步骤211、通过目标芯片,根据多项式拟合结果中的多个函数参数,获取目标多项式函数;
步骤212、通过目标芯片,在预设的第一数值区间内依次获取各第一输入向量,将各第一输入向量与预设常数进行相乘,并将相乘结果依次代入至所述目标多项式函数中,得到多个函数运算结果;
在此步骤中,第一数值区间可以为[-216,0],目标芯片在第一数值区间中依次获取到每个整数x1(也即第一输入向量)后,可以将x1与预设常数S相乘得到p,并将相乘结果p的数据类型转换为FP32,然后将p代入至多项式函数f(x)中,得到函数运算结果f(p)。
步骤213、通过目标芯片,在预设的第二数值区间内获取参考数值,根据各所述函数运算结果以及参考数值,确定与各第一输入向量匹配的指数运算结果。
在本实施例中,第二数值区间可以为[0,n],其中,n为预设的足够大的整数值,在本实施例中可以将n设为30,具体数值可以根据实际情况进行调整,本实施例对此并不进行限制。
在此步骤中,目标芯片在第二数值区间获取到整数d后,可以将该整数作为参考数值,并根据下述公式计算指数运算结果y1
其中,S1可以设为1,为了避免输出结果溢出,y1的数据类型可以设为INT32。
步骤220、通过目标芯片,根据各第一输入向量与指数运算结果之间的映射关系,构建指数运算查找表。
在此步骤中,目标芯片可以根据第一输入向量x1、参考数值d和指数运算结果y1,构建指数运算查找表Table1。其中,Table1中的元素个数为(n+1)*(216+1)。
步骤230、将与Softmax模型对应的多个第二输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的求和运算规则,确定与各第二输入向量匹配的求和运算结果。
在本实施例的一个实施方式中,根据所述Softmax模型中的求和运算规则,确定与各第二输入向量匹配的求和运算结果,包括:
步骤231、通过目标芯片,在预设的第三数值区间内依次获取各第二输入向量,将各第二输入向量与预设常数进行相乘,得到多个相乘结果;
在本实施例中,所述第二输入向量可以为预设的整数值。具体的,假设Softmax模型的输入有M个节点,目标芯片可以在INT32范围内获取第二输入向量x2的M个分量,然后将第二输入向量的各个分量xi2与常数S1相乘,得到多个相乘结果xi2S1。其中,i=1,2,3,……,M。
步骤232、通过目标芯片,根据所述Softmax模型中的求和函数,对各所述相乘结果进行求和;
在此步骤中,目标芯片可以根据下述公式,对各相乘结果进行求和:
步骤233、通过目标芯片,根据求和结果以及预设常数,确定与各第二输入向量匹配的求和运算结果。
在此步骤中,目标芯片可以根据下述公式,确定与第二输入向量x2匹配的求和运算结果y2
其中,S2可以等于1/127,具体数值可以根据实际情况进行预设,本实施例对此并不进行限制。
步骤240、通过目标芯片,根据各第二输入向量与求和运算结果之间的映射关系,构建求和运算查找表。
在此步骤中,目标芯片可以根据各第二输入向量x2,与求和运算结果y2之间的映射关系,构建求和运算查找表Table2。其中,因为M个x2的求和取值范围是[-M*231,M*231],所以y2的取值共有M*232种,也即Table2中的元素个数为M*232
步骤250、将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量。
步骤260、通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址。
步骤270、通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果。
步骤280、通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
本发明实施例提供的技术方案,通过将与Softmax模型对应的多个第一输入向量加载至目标芯片中,通过目标芯片根据指数运算规则确定与各第一输入向量匹配的指数运算结果并构建指数运算查找表,将与Softmax模型对应的多个第二输入向量加载至目标芯片中,通过目标芯片根据求和运算规则,确定与各第二输入向量匹配的求和运算结果并构建求和运算查找表,将原始输入向量加载至目标芯片中,通过目标芯片确定目标输入向量,通过DMA控制器从地址查询链表中获取多个目标查询地址,通过DMA控制器根据各目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取指数运算输出结果以及求和运算输出结果,通过目标芯片根据指数运算输出结果以及求和运算输出结果,确定目标输出结果的技术手段,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
在上述实施例的基础上,所述目标输入向量、指数运算输出结果以及求和运算输出结果,均基于定点数运算进行确定。
在本实施例中,目标输入向量、指数运算输出结果以及求和运算输出结果均基于定点数(例如INT8、INT16、INT32以及INT64等)运算得到。
这样设置的好处在于,通过调整目标芯片的算力配置,将芯片中主要的算力集中于定点数运算,保留少量算力用于浮点数运算,可以提升目标芯片对Softmax模型的在线处理性能。
在本发明实施例的一个实施方式中,通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量,包括:通过所述目标芯片,确定与所述原始输入向量匹配的向量最大值,计算所述原始输入向量与向量最大值之间的目标差值;根据所述目标差值以及预设常数,确定与所述原始输入向量匹配的目标输入向量。
在本发明实施例的一个实施方式中,通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果,包括:通过所述目标芯片,将所述指数运算输出结果,与所述求和运算输出结果进行相乘,得到乘积输出结果;根据预设常数,对所述乘积输出结果进行线性转换,得到与所述Softmax模型对应的目标输出结果。
图3为本实施例提供的另一种Softmax模型的量化方法的流程图,在本实施例中,本实施例的技术方案可以与上述实施例的方案中的一种或者多种方法进行组合,如图3所示,本实施例提供的方法还可以包括:
步骤310、将与Softmax模型对应的原始输入向量加载至目标芯片中。
步骤320、通过所述目标芯片,确定与所述原始输入向量匹配的向量最大值,计算所述原始输入向量与向量最大值之间的目标差值。
在此步骤中,假设Softmax模型对应的原始输入向量为xq,与该原始输入向量匹配的向量最大值为xmax,其中xmax=max(xq),数据类型为INT8。
目标芯片在获取到向量最大值后,可以根据下述公式计算目标差值xint
xint=xq-xmax
其中,目标差值xint的数据类型为INT16。
步骤330、通过所述目标芯片,根据所述目标差值以及预设常数,确定与所述原始输入向量匹配的目标输入向量。
在此步骤中,目标芯片获取到目标差值xint后,可以根据目标差值以及预设常数,计算中间向量z:
其中,可以根据下述公式计算得到:
在本实施例中,S为预设的常数值,向量z的数据类型为INT8。目标芯片获取到中间向量z之后,可以根据下述公式计算目标输入向量qp
其中,目标输入向量qp的数据类型为INT32。
步骤340、通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址。
步骤350、通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果。
在一个具体的实施例中,DMA控制器除了可以根据目标查询地址,获取指数运算输出结果以及求和运算输出结果之外,还可以将目标输入向量qp,以及预设的参考数值d(其中,d=n-z)作为索引值,然后通过所述索引值,在指数运算查找表Table1中获取指数运算输出结果qexp。其中,指数运算输出结果qexp的数据类型为INT32。
类似的,DMA控制器还可以将上述指数运算输出结果qexp作为索引值,在求和运算查找表Table2中获取匹配的求和运算输出结果Q。其中,求和运算输出结果Q的数据类型为INT8。
步骤360、通过所述目标芯片,将所述指数运算输出结果,与所述求和运算输出结果进行相乘,得到乘积输出结果。
在此步骤中,目标芯片可以通过下述公式计算整型范围内Softmax模型对应的输出结果(也即乘积输出结果)yint
yint=qexpQ
其中,yint的数据类型为INT64。
步骤370、通过所述目标芯片,根据预设常数,对所述乘积输出结果进行线性转换,得到与所述Softmax模型对应的目标输出结果。
在此步骤中,目标芯片可以通过下述公式对乘积输出结果进行线性转换,得到浮点数范围内Softmax模型对应的输出结果(也即目标输出结果)yfloat
yfloat=yintSy
Sy=S1S22-n
其中,目标输出结果yfloat的数据类型为FP32。
本发明实施例提供的技术方案,通过将与Softmax模型对应的原始输入向量加载至目标芯片中,通过目标芯片确定原始输入向量匹配的向量最大值,计算原始输入向量与向量最大值之间的目标差值,通过目标芯片根据目标差值以及预设常数,确定与原始输入向量匹配的目标输入向量,通过目标芯片中的DMA控制器从地址查询链表中获取多个目标查询地址,通过所述DMA控制器,根据各目标查询地址分别从指数运算查找表以及求和运算查找表中,获取指数运算输出结果以及求和运算输出结果,通过目标芯片将指数运算输出结果与求和运算输出结果进行相乘,得到乘积输出结果,通过目标芯片根据预设常数,对乘积输出结果进行线性转换,得到目标输出结果的技术手段,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
图4为本发明实施例提供的一种Softmax模型的量化装置的结构示意图,所述Softmax模型的量化装置包括:向量加载模块410、地址获取模块420、结果获取模块430和目标结果确定模块440。
其中,向量加载模块410,用于将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片确定与所述原始输入向量匹配的目标输入向量;
地址获取模块420,用于通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址;
结果获取模块430,用于通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果;
目标结果确定模块440,用于通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
本发明实施例提供的技术方案,通过将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过目标芯片确定与原始输入向量匹配的目标输入向量,通过目标芯片中的DMA控制器从地址查询链表中获取多个目标查询地址,通过DMA控制器根据各目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与目标输入向量匹配的指数运算输出结果以及求和运算输出结果,通过目标芯片根据指数运算输出结果以及求和运算输出结果,确定与Softmax模型对应的目标输出结果的技术手段,可以有效降低目标芯片中Softmax模型的运算量,提升目标芯片对Softmax模型的在线处理性能。
在上述实施例的基础上,所述目标输入向量、指数运算输出结果以及求和运算输出结果,均基于定点数运算进行确定;
所述指数运算查找表用于存储Softmax模型对应的,多个预设输入向量与指数运算结果之间的映射关系;
所述求和运算查找表用于存储Softmax模型对应的,多个预设输入向量与求和运算结果之间的映射关系。
所述装置还包括:
指数运算模块,用于将与Softmax模型对应的多个第一输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的指数运算规则,确定与各第一输入向量匹配的指数运算结果;
指数运算查找表构建模块,用于通过目标芯片,根据各第一输入向量与指数运算结果之间的映射关系,构建指数运算查找表;
求和运算模块,用于将与Softmax模型对应的多个第二输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的求和运算规则,确定与各第二输入向量匹配的求和运算结果;
求和运算查找表构建模块,用于通过目标芯片,根据各第二输入向量与求和运算结果之间的映射关系,构建求和运算查找表。
指数运算模块,包括:
多项式拟合单元,用于通过目标芯片,根据所述Softmax模型中的指数函数,对预设的多项式函数进行拟合,并根据多项式拟合结果,以及各第一输入向量,确定与各第一输入向量匹配的指数运算结果;
多项式函数获取单元,用于通过目标芯片,根据多项式拟合结果中的多个函数参数,获取目标多项式函数;
第一向量相乘单元,用于通过目标芯片,在预设的第一数值区间内依次获取各第一输入向量,将各第一输入向量与预设常数进行相乘,并将相乘结果依次代入至所述目标多项式函数中,得到多个函数运算结果;
参考数值获取单元,用于通过目标芯片,在预设的第二数值区间内获取参考数值,根据各所述函数运算结果以及参考数值,确定与各第一输入向量匹配的指数运算结果。
求和运算模块包括:
第二向量相乘单元,用于通过目标芯片,在预设的第三数值区间内依次获取各第二输入向量,将各第二输入向量与预设常数进行相乘,得到多个相乘结果;
相乘结果求和单元,用于通过目标芯片,根据所述Softmax模型中的求和函数,对各所述相乘结果进行求和;
求和运算结果确定单元,用于通过目标芯片,根据求和结果以及预设常数,确定与各第二输入向量匹配的求和运算结果。
所述向量加载模块410包括:
最大值确定单元,用于通过所述目标芯片,确定与所述原始输入向量匹配的向量最大值,计算所述原始输入向量与向量最大值之间的目标差值;
向量处理单元,用于根据所述目标差值以及预设常数,确定与所述原始输入向量匹配的目标输入向量。
所述目标结果确定模块440包括:
输出结果相乘单元,用于通过所述目标芯片,将所述指数运算输出结果,与所述求和运算输出结果进行相乘,得到乘积输出结果;
输出结果转换单元,用于根据预设常数,对所述乘积输出结果进行线性转换,得到与所述Softmax模型对应的目标输出结果。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如Softmax模型的量化方法。
在一些实施例中,Softmax模型的量化方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的Softmax模型的量化方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行Softmax模型的量化方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种Softmax模型的量化方法,其特征在于,所述方法包括:
将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片,确定与所述原始输入向量匹配的向量最大值,计算所述原始输入向量与向量最大值之间的目标差值;根据所述目标差值以及预设常数,确定与所述原始输入向量匹配的目标输入向量;
通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址;
通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果;
通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
2.根据权利要求1所述的方法,其特征在于,所述目标输入向量、指数运算输出结果以及求和运算输出结果,均基于定点数运算进行确定。
3.根据权利要求1所述的方法,其特征在于,所述指数运算查找表用于存储Softmax模型对应的,多个预设输入向量与指数运算结果之间的映射关系;
所述求和运算查找表用于存储Softmax模型对应的,多个预设输入向量与求和运算结果之间的映射关系。
4.根据权利要求1所述的方法,其特征在于,在将与Softmax模型对应的原始输入向量加载至目标芯片中之前,还包括:
将与Softmax模型对应的多个第一输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的指数运算规则,确定与各第一输入向量匹配的指数运算结果;
通过目标芯片,根据各第一输入向量与指数运算结果之间的映射关系,构建指数运算查找表;
将与Softmax模型对应的多个第二输入向量加载至目标芯片中,通过目标芯片,根据所述Softmax模型中的求和运算规则,确定与各第二输入向量匹配的求和运算结果;
通过目标芯片,根据各第二输入向量与求和运算结果之间的映射关系,构建求和运算查找表。
5.根据权利要求4所述的方法,其特征在于,通过目标芯片,根据所述Softmax模型中的指数运算规则,确定与各第一输入向量匹配的指数运算结果,包括:
通过目标芯片,根据所述Softmax模型中的指数函数,对预设的多项式函数进行拟合,并根据多项式拟合结果,以及各第一输入向量,确定与各第一输入向量匹配的指数运算结果。
6.根据权利要求5所述的方法,其特征在于,所述多项式拟合结果中包括多个函数参数;
所述根据多项式拟合结果,以及各第一输入向量,确定与各第一输入向量匹配的指数运算结果,包括:
通过目标芯片,根据多项式拟合结果中的多个函数参数,获取目标多项式函数;
通过目标芯片,在预设的第一数值区间内依次获取各第一输入向量,将各第一输入向量与预设常数进行相乘,并将相乘结果依次代入至所述目标多项式函数中,得到多个函数运算结果;
通过目标芯片,在预设的第二数值区间内获取参考数值,根据各所述函数运算结果以及参考数值,确定与各第一输入向量匹配的指数运算结果。
7.根据权利要求4所述方法,其特征在于,通过目标芯片,根据所述Softmax模型中的求和运算规则,确定与各第二输入向量匹配的求和运算结果,包括:
通过目标芯片,在预设的第三数值区间内依次获取各第二输入向量,将各第二输入向量与预设常数进行相乘,得到多个相乘结果;
通过目标芯片,根据所述Softmax模型中的求和函数,对各所述相乘结果进行求和;
通过目标芯片,根据求和结果以及预设常数,确定与各第二输入向量匹配的求和运算结果。
8.一种Softmax模型的量化装置,其特征在于,所述装置包括:
向量加载模块,用于将与Softmax模型对应的原始输入向量加载至目标芯片中,并通过所述目标芯片,确定与所述原始输入向量匹配的向量最大值,计算所述原始输入向量与向量最大值之间的目标差值;根据所述目标差值以及预设常数,确定与所述原始输入向量匹配的目标输入向量;
地址获取模块,用于通过目标芯片中的直接存储器访问DMA控制器,从预设的地址查询链表中获取与所述目标输入向量对应的多个目标查询地址;
结果获取模块,用于通过所述DMA控制器,根据各所述目标查询地址,分别从指数运算查找表以及求和运算查找表中,获取与所述目标输入向量匹配的指数运算输出结果以及求和运算输出结果;
目标结果确定模块,用于通过所述目标芯片,根据所述指数运算输出结果以及求和运算输出结果,确定与所述Softmax模型对应的目标输出结果。
9.一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行所述程序时实现如权利要求1-7中任一所述的Softmax模型的量化方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的Softmax模型的量化方法。
CN202211106102.2A 2022-06-09 2022-09-09 Softmax模型的量化方法、装置、设备及介质 Active CN115511047B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022106523125 2022-06-09
CN202210652312 2022-06-09

Publications (2)

Publication Number Publication Date
CN115511047A CN115511047A (zh) 2022-12-23
CN115511047B true CN115511047B (zh) 2024-03-08

Family

ID=84504286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211106102.2A Active CN115511047B (zh) 2022-06-09 2022-09-09 Softmax模型的量化方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115511047B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308520A (zh) * 2018-09-26 2019-02-05 阿里巴巴集团控股有限公司 实现softmax函数计算的FPGA电路及方法
CN111178516A (zh) * 2019-12-11 2020-05-19 浙江大学 一种基于分段查找表的softmax函数计算方法及硬件***
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法
EP3882823A1 (en) * 2020-03-17 2021-09-22 Samsung Electronics Co., Ltd. Method and apparatus with softmax approximation
CN113721884A (zh) * 2021-09-01 2021-11-30 北京百度网讯科技有限公司 运算方法、装置、芯片、电子装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3809285B1 (en) * 2019-10-16 2023-05-10 Samsung Electronics Co., Ltd. Method and apparatus with data processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308520A (zh) * 2018-09-26 2019-02-05 阿里巴巴集团控股有限公司 实现softmax函数计算的FPGA电路及方法
CN111178516A (zh) * 2019-12-11 2020-05-19 浙江大学 一种基于分段查找表的softmax函数计算方法及硬件***
EP3882823A1 (en) * 2020-03-17 2021-09-22 Samsung Electronics Co., Ltd. Method and apparatus with softmax approximation
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法
CN113721884A (zh) * 2021-09-01 2021-11-30 北京百度网讯科技有限公司 运算方法、装置、芯片、电子装置及存储介质

Also Published As

Publication number Publication date
CN115511047A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
CN114418086B (zh) 压缩神经网络模型的方法、装置
CN114463551A (zh) 图像处理方法、装置、存储介质及电子设备
CN117351299A (zh) 图像生成及模型训练方法、装置、设备和存储介质
CN115511047B (zh) Softmax模型的量化方法、装置、设备及介质
CN116148666A (zh) 电池soc信号处理方法、装置、车辆、计算机可读存储介质及计算机程序产品
CN115292662B (zh) 一种卷积加速运算方法、装置、电子设备及存储介质
CN116702861B (zh) 深度学习模型的压缩方法、训练方法、处理方法和装置
CN115829053B (zh) 模型运行策略确定方法、装置、电子设备以及存储介质
CN114492816B (zh) 量子态处理方法、计算设备、计算装置及存储介质
CN117827710B (zh) 基于ai芯片的dma带宽确定方法、装置、设备及介质
CN117539602A (zh) 落后者任务推测的方法及装置、电子设备和存储介质
CN118069290A (zh) 一种模型参数值确定方法、装置、电子设备及存储介质
CN117632431A (zh) 云计算任务的调度方法、装置、设备及存储介质
CN117634437A (zh) 一种设备当前运行状态的描述方法、装置及电子设备
CN117744717A (zh) 模型量化方法、装置、电子设备和存储介质
CN116523051A (zh) 一种模型混精推理方法、装置、设备及存储介质
CN117992714A (zh) 基于局部采样的众核架构半精度稠密矩阵乘方法及装置
CN115358378A (zh) 一种数据缓存方法、***、装置、设备及存储介质
CN117349130A (zh) 续航时长的确定方法、装置、电子设备及存储介质
CN117194018A (zh) 一种多核多芯片环境下***控温算法的处理方法及装置
CN116203472A (zh) 一种温升值确定方法、装置、设备和存储介质
CN118152717A (zh) 基于多功能辛格插值结构的信号变换方法
CN118051264A (zh) 一种矩阵处理方法、装置、电子设备和存储介质
CN115329940A (zh) 一种卷积算法的推荐方法、装置、设备及存储介质
CN116484719A (zh) 一种内部温升值确定方法、装置、设备和存储介质

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
CB02 Change of applicant information

Country or region after: China

Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant after: Shanghai Suiyuan Technology Co.,Ltd.

Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant