CN115965062A - 一种bert中层归一化非线性函数的fpga加速方法 - Google Patents

一种bert中层归一化非线性函数的fpga加速方法 Download PDF

Info

Publication number
CN115965062A
CN115965062A CN202211135447.0A CN202211135447A CN115965062A CN 115965062 A CN115965062 A CN 115965062A CN 202211135447 A CN202211135447 A CN 202211135447A CN 115965062 A CN115965062 A CN 115965062A
Authority
CN
China
Prior art keywords
formula
fpga
algorithm
quantization
bert
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
CN202211135447.0A
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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN202211135447.0A priority Critical patent/CN115965062A/zh
Publication of CN115965062A publication Critical patent/CN115965062A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Complex Calculations (AREA)

Abstract

本发明公开了一种BERT中层归一化非线性函数的FPGA加速方法,包括以下步骤:通过量化公式得到非对称量化公式和对称量化公式;运用所述非对称量化公式和所述对称量化公式,基于量化方法对层归一化操作模块进行处理,得到将浮点数运算转化为整数运算以及移位操作的算法;将所述算法部署到FPGA上。该发明用量化方法对层归一化模块进行处理,并部署到FPGA上,在保证精度损失可接受的前提下,对层归一化模块进行压缩和加速,最终提高整个BERT模型的运行速度。

Description

一种BERT中层归一化非线性函数的FPGA加速方法
技术领域
本发明属于计算机算法技术领域,尤其涉及BERT中层归一化非线性函数的FPGA加速方法。
背景技术
BERT(Bidirectional Encoder Representations from Transformers,双向编码器表示)是一个预训练模型,其结合了Transformer的优势,能生成深层的双向语言表征模型,之后只需添加一个额外的层进行微调,就能在多个自然语言处理(Natural LanguageProcessing,NLP)任务中取得极佳的结果。
BERT的高性能是以高计算复杂度和大参数量为代价的,这使得将BERT部署到计算资源和存储资源有限的边缘设备上并满足实时性的要求变得非常困难。而作为BERT重要组成之一的层归一化(Layer Normalization,LN)模块,由于其非线性的特性,再加上它在BERT中多次出现,因此层归一化模块的延时在整个BERT的延时中占比较高。因此很有必要对BERT中的层归一化模块进行加速。
在模型的压缩和加速方案中,量化是一种常见的方法。量化是指将浮点数通过函数关系转化为int型整数,然后由整数代替浮点数在模型中进行计算。将算法部署到现场可编程门阵列FPGA(Field Programmable Gate Array)上时,可实现对FPGA的加速。目前普遍采取的量化方法是将32位浮点数转化为int8型整数(即8位有符号整数),则相对于原32位浮点数而言,位宽减小为四分之一,因此可以极大压缩模型大小,从而对模型进行加速。
在现有技术中,虽然用量化方法对LN进行了加速,但是其缩放因子通常设置为常数,因此其量化策略缺乏精准性、以及运算效率不高。
发明内容
针对现有技术存在的问题,本发明提供了一种BERT中层归一化非线性函数的FPGA加速方法,具备精准性高、运算效率高的优点,解决了现有量化策略缺乏精准性、以及运算效率不高的问题。
本发明是这样实现的,一种BERT中层归一化非线性函数的一种FPGA加速方法,包括以下步骤:
通过量化公式得到非对称量化公式和对称量化公式;
运用所述非对称量化公式和所述对称量化公式,用量化方法对层归一化操作模块进行处理,得到将浮点数运算转化为整数运算以及移位操作的算法;
将所述算法部署到现场可编程门阵列FPGA上,在保证精度损失可接受的前提下,对层归一化模块进行压缩和加速,最终提高整个BERT模型的运行速度。
作为本发明优选的,通过量化公式得到非对称量化公式和对称量化公式的方法包括:
设置量化公式为:r=S(q-Z);
其中,r是一个浮点数,q是浮点数对应的整数,S是表示浮点数与整数之间的比例关系,Z表示实数中的0经过量化之后对应的整数;
将r=S(q-Z)作为非对称量化公式,得到非对称量化公式r=S(q-Z);
浮点数对应的整数公式为:
Figure BDA0003851337620000021
其中,round(·)是四舍五入操作;
设置S和Z的公式:
Figure BDA0003851337620000022
采用对称量化操作,即rmax=-rmin,qmax=2B-1-1,qmin=-2B,其中B为量化后整数的位数,代入到式
Figure BDA0003851337620000023
中可得Z=0,将Z=0代入到非对称量化公式r=S(q-Z)中,得到对称量化公式
r=Sq。
作为本发明优选的,对于量化后得到的整数值,还采取截取操作clip(x,min,max),使浮点数对应的整数限定在区间(min,max)内,若x大于max,则令x为max;若x小于min,则令x为min;得到
Figure BDA0003851337620000024
作为本发明优选的,运用所述非对称量化公式和所述对称量化公式,用量化方法对层归一化操作模块进行处理,将浮点数运算转化为整数运算以及移位操作的方法包括:
得到层归一化公式为:
Figure BDA0003851337620000025
其中,xi为输入向量X中的一个值,下标i表示序号;μ为输入向量X的平均值;σ2是输入向量X的方差;∈是一个很小的预设值,用于防止σ2太小,导致分式的分母为0,在本文中设置为0.01;
Figure BDA0003851337620000026
为归一化结果向量
Figure BDA0003851337620000027
中的一个值,下标i表示序号;γi为增益向量γ中的一个值,下标i表示序号;βi和偏移向量β中的一个值,下标i表示序号;yi是结果向量Y中的一个值,下标i表示序号。
对参数γ和参数β进行对称量化,对输入X和输出Y进行非对称量化;
将非对称量化公式r=S(q-Z)和对称量化公式r=Sq代入
Figure BDA0003851337620000028
βi,可得:
Figure BDA0003851337620000031
其中,
Figure BDA0003851337620000032
由式
Figure BDA0003851337620000033
可得,输入矩阵的零点对于运算没有影响,经过变换之后,
Figure BDA0003851337620000034
可变换为:
Figure BDA0003851337620000035
其中,qγ
Figure BDA00038513376200000318
qμ、qσ 2、qβ、ZY均为整数,
Figure BDA0003851337620000036
用牛顿迭代法计算之后也得到一个整数,因此,
Figure BDA0003851337620000037
中只有
Figure BDA0003851337620000038
Figure BDA0003851337620000039
两项为浮点数;
将浮点数运算转化成整数运算以及移位操作;
对两个浮点缩放因子的比值
Figure BDA00038513376200000310
Figure BDA00038513376200000311
作如下近似处理,以在误差可接受的前提下,提高运算效率:
Figure BDA00038513376200000312
其中,M0和M1均为整数,
Figure BDA00038513376200000319
Figure BDA00038513376200000320
能通过右移n0和n1位实现;
Figure BDA00038513376200000313
Figure BDA00038513376200000314
代入
Figure BDA00038513376200000315
中,得到:
Figure BDA00038513376200000316
作为本发明优选的,在误差可接受的前提下,为提高运算效率,令n0=n1=n,则
Figure BDA00038513376200000317
能改写成:
Figure BDA0003851337620000041
作为本发明优选的,将算法部署到FPGA上的方法包括:
将所述算法部署到FPGA上;
使算法在FPGA上运行;
验证算法在FPGA上的运行状态。
作为本发明优选的,将算法部署到FPGA上的方法包括以下步骤:
对算法进行编程,得到所述算法对应的编程信息;
检查并修改所述算法对应的编程信息;
检查FPGA的工作状态,若FPGA能正常工作,将所述算法对应的编程信息部署到FPGA上;
验证所述编程信息在FPGA中能否正常运行;若不能正常运行,则返回到检查并修改所述编程信息步骤循环,直至所述编程信息在FPGA中能正常运行为止;
检测BERT的运行速度。
作为本发明优选的,对算法进行编程,得到所述算法对应的编程信息的方法包括以下步骤:
根据所述算法编程为算法对应的伪代码;
根据所述算法对应的伪代码以及对编程语言的需求,将所述算法对应的伪代码编译为算法对应的正式编码,将所述算法对应的正式编码作为所述算法对应的编程信息。
作为本发明优选的,多次逐步降低硬件资源;检测BERT的运行速度;找到硬件资源和BERT运行速度的平衡区间。
与现有技术相比,本发明的有益效果如下:
本发明用量化方法对层归一化模块进行处理,并部署到FPGA上,在保证精度损失可接受的前提下,对层归一化模块进行压缩和加速,最终提高整个BERT模型的运行速度。
附图说明
图1是本发明实施例提供的一种BERT中层归一化非线性函数的FPGA加速方法的流程示意图。
图2是本发明实施例提供的通过量化公式得到非对称量化公式和对称量化公式的方法的流程示意图。
图3是本发明实施例提供的运用非对称量化公式和对称量化公式,用量化方法对层归一化操作模块进行处理,将浮点数运算转化为整数运算以及移位操作的方法的流程示意图。
图4是本发明实施例提供的将算法部署到FPGA上的方法的流程示意图。
图5是本发明实施例提供的将算法部署到FPGA上的方法的流程示意图。
图6是本发明实施例提供的对算法进行编程,得到算法对应的编程信息的方法的流程示意图。
图7是本发明实施例提供的算法的伪代码的示意图。
图8是本发明实施例提供的找到硬件资源和BERT运行速度的平衡区间的流程示意图。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下。
现有技术中,文献(Li J,Alvarez R.On the quantization of recurrentneural networks[J].arXiv preprint arXiv:2101.05453,2021.)对LN进行了量化。但文中直接令输入X的缩放因子为常数2-10,并且直接令偏置系数β的缩放因子Sβ=2-10·Sγ,其中Sγ为权重系数γ的缩放因子;同时该文也没对平方根这一非线性操作进行处理。以上两个不足之处使得该文的方法在准确度和运算效率上欠佳。
文献(Kim S,Gholami A,Yao Z,et al.I-bert:Integer-only bertquantization[C].International conference on machine learning.PMLR,2021:5506-5518.)提出用牛顿迭代法对平方根操作进行近似,并返回一个整数,这样LN函数的所有计算都是整数之间的运算了。但该文只讨论了LN中平方根操作的近似计算,对于LN其它部分的量化策略,并没有给出详细的量化策略。
下面结合附图对本发明的结构作详细的描述。
请参阅图1,本发明实施例提供的BERT中层归一化非线性函数的一种FPGA加速方法,包括以下步骤:
步骤S1、通过量化公式得到非对称量化公式和对称量化公式;
步骤S2、运用非对称量化公式和所述对称量化公式,用量化方法对层归一化操作模块进行处理,得到将浮点数运算转化为整数运算以及移位操作的算法;
步骤S3、将算法部署到FPGA上。
在该实施例中,通过运用非对称量化公式和对称量化公式,用量化方法对层归一化操作模块进行处理,得到将浮点数运算转化为整数运算以及移位操作的算法。
对于FPGA,在硬件层面,相对于CPU,FPGA延时更低,更擅长处理计算密集型任务;相对于GPU,FPGA运行能效比更好,功耗更低;相对于ASIC,FPGA前期投入成本更低。同时,FPGA不属于冯诺依曼结构,且具有可编程的特性,可以设计特定的加速架构。因此,在硬件计算平台上,FPGA并行性、低功耗、低延时和可编程的特性使得FPGA成为深度学习模型加速的极佳选择。
进一步的,请参阅图2,在步骤S1中,通过量化公式得到非对称量化公式和对称量化公式的方法包括:
步骤S11、设置量化公式为:r=S(q-Z);
其中,r是一个浮点数,q是浮点数对应的整数,S是表示浮点数与整数之间的比例关系,Z表示实数中的0经过量化之后对应的整数;
步骤S12、将r=S(q-Z)作为非对称量化公式,得到非对称量化公式r=S(q-Z);
步骤S13、浮点数对应的整数公式为:
Figure BDA0003851337620000061
其中,round(·)是四舍五入操作;
步骤S14、设置S和Z的公式:
Figure BDA0003851337620000062
步骤S15、采用对称量化操作,即rmax=-rmin,qmax=2B-1-1,qmin=-2B,其中B为量化后整数的位数,代入到式
Figure BDA0003851337620000063
中可得Z=0,将Z=0代入到非对称量化公式r=S(q-Z)中,得到对称量化公式r=Sq。
在上述过程中,通过浮点数对应的整数公式
Figure BDA0003851337620000064
可以得到整数,但是范围区间较大,因此,对于量化后得到的整数值,还采取截取操作clip(x,min,max),使浮点数对应的整数限定在区间(min,max)内,若x大于max,则令x为max;若x小于min,则令x为min;得到
Figure BDA0003851337620000065
进一步的,请参阅图3,在步骤S2中,运用非对称量化公式和对称量化公式,用量化方法对层归一化操作模块进行处理,将浮点数运算转化为整数运算以及移位操作的方法包括:
步骤S21、得到层归一化公式为:
Figure BDA0003851337620000066
其中,∈为一个很小的数,为了防止除法的分母为0,在本实施例中,∈设置为0.01;γ和β分别为增益和偏移参数,是一个向量;下标i表示词向量中的其中一个数据;μ是词向量的平均值,σ2是词向量的方差;
步骤S22、对参数γ和参数β进行对称量化,对输入X和输出Y进行非对称量化;
步骤S221、将非对称量化公式r=S(q-Z)和对称量化公式r=Sq代入
Figure BDA0003851337620000071
Figure BDA0003851337620000072
可得:
Figure BDA0003851337620000073
其中,
Figure BDA0003851337620000074
步骤S23、由
Figure BDA0003851337620000075
Figure BDA0003851337620000076
可得,输入矩阵的零点对于运算没有影响,经过变换之后,
Figure BDA0003851337620000077
变换为:
Figure BDA0003851337620000078
ZY
其中,qγ
Figure BDA00038513376200000722
qμ、qσ 2、qβ、ZY均为整数,
Figure BDA0003851337620000079
用牛顿迭代法计算之后也得到一个整数,因此,
Figure BDA00038513376200000710
中只有
Figure BDA00038513376200000711
Figure BDA00038513376200000712
两项为浮点数;
步骤S24、将浮点数运算转化成整数运算以及移位操作;
步骤S241、对
Figure BDA00038513376200000713
Figure BDA00038513376200000714
作如下处理:
Figure BDA00038513376200000715
其中,M0和M1均为整数,
Figure BDA00038513376200000716
Figure BDA00038513376200000717
能通过右移n0和n1位实现。
步骤S242、将
Figure BDA00038513376200000718
Figure BDA00038513376200000719
代入
Figure BDA00038513376200000720
中,得到:
Figure BDA00038513376200000721
进一步地,令n0=n1=n,则
Figure BDA0003851337620000081
能改写成:
Figure BDA0003851337620000082
请参阅图4,在步骤S3中,将算法部署到FPGA上的方法包括:
步骤S31、将算法部署到FPGA上;
步骤S32、使算法在FPGA上运行;
步骤S33、验证算法在FPGA上的运行状态。
通过该方式,可检测算法是否正确,是否能正常运行。
进一步的,请参阅图5,在步骤S31中,将算法部署到FPGA上的方法包括以下步骤:
步骤S311、对算法进行编程,得到算法对应的编程信息;
步骤S312、检查并修改算法对应的编程信息;
步骤S313、检查FPGA的工作状态,若FPGA能正常工作,将算法对应的编程信息部署到FPGA上;
步骤S314、验证编程信息在FPGA中能否正常运行;若不能正常运行,则返回到检查并修改编程信息步骤循环,直至编程信息在FPGA中能正常运行为止;
步骤S315、检测BERT的运行速度。
进一步的,请参阅图6和图7,步骤S311、对算法进行编程,得到所述算法对应的编程信息的方法包括以下步骤:
步骤S3111、根据算法编程为算法对应的伪代码;
步骤S3112、根据算法对应的伪代码以及对编程语言的需求,将算法对应的伪代码编译为算法对应的正式编码,将算法对应的正式编码作为算法对应的编程信息。
伪代码是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。人们在用不同的编程语言实现同一个算法时意识到,它们的实现很不同。尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。这样伪代码就应运而生了。伪代码提供了更多的设计信息,每一个模块的描述都必须与设计结构图一起出现。
使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java等)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。伪代码介于自然语言与编程语言之间,以编程语言的书写形式指明算法职能。使用伪代码,不用拘泥于具体实现。相比程序语言(例如Java,C++,C,Dephi等等),它更类似自然语言。它是半角式化、不标准的语言,可以将整个算法运行过程的结构用接近自然语言的形式(可以使用任何一种你熟悉的文字,关键是把程序的意思表达出来)描述出来。
在该实施例中,算法的伪代码如图7所示,通过伪代码可灵活转换为各种程序语言,例如Java,C++,C,Dephi。通过该设置,便于不同编程语言的程序员理解,普及性更高,伪代码转化为不同的编程语言也更灵活。
请参阅图8,进一步的,在算法部署到BERT上之后,进行以下操作:
步骤S316、多次逐步降低硬件资源;
步骤S317、检测BERT的运行速度;
步骤S318、找到硬件资源和BERT运行速度的平衡区间。
在FPGA上部署之后,相比于32位浮点运算的结果,本发明在精度损失可接受的前提下,所有的硬件资源均大幅下降。通过找到硬件资源和BERT运行速度的平衡区间,可便于根据需求,降低硬件资源的投入,从而在保证BERT运行速度的基础上节省硬件资源。
进一步的,在量化中,还包括:通过对
Figure BDA0003851337620000091
Figure BDA0003851337620000092
进行近似处理
Figure BDA0003851337620000093
Figure BDA0003851337620000094
在误差可接受的前提下,提高运算效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (9)

1.一种BERT中层归一化非线性函数的FPGA加速方法,其特征在于,包括以下步骤:
通过量化公式得到非对称量化公式和对称量化公式;
运用所述非对称量化公式和所述对称量化公式,用量化方法对层归一化操作模块进行处理,得到将浮点数运算转化为整数运算以及移位操作的算法;
将所述算法部署到FPGA上,在保证精度损失可接受的前提下,对层归一化模块进行压缩和加速,最终提高整个BERT模型的运行速度。
2.如权利要求1所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于,通过量化公式得到非对称量化公式和对称量化公式的方法包括:
设置量化公式为:
r=S(q-Z);            (1)
其中,r是一个浮点数,q是浮点数对应的整数,S是表示浮点数与整数之间的比例关系,Z表示实数中的0经过量化之后对应的整数;
将式(1)作为非对称量化公式;
浮点数对应的整数公式为:
其中,round(·)是四舍五入操作;
设置S和Z的公式:
采用对称量化操作,即
rmax=-rmin,qmax=2B-1-1,qmin=-2B,其中B为量化后整数的位数,代入到式(3)、式(4)中得Z=0,将Z=0代入到非对称量化公式中,得到对称量化公式:
r=Sq(5)。
3.如权利要求2所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于,对于量化后得到的整数值,还采取截取操作clip(x,min,max),使浮点数对应的整数限定在区间(min,max)内,若x大于max,则令x为max;若x小于min,则令x为min;得到
4.如权利要求2所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于,运用所述非对称量化公式和所述对称量化公式,用量化方法对层归一化操作模块进行处理,将浮点数运算转化为整数运算以及移位操作的方法包括:
层归一化公式为:
其中,xi为输入向量X中的一个值,下标i表示序号;μ为输入向量X的平均值;σ2是输入向量X的方差;∈是一个很小的预设值,用于防止σ2太小,导致分式的分母为0,在本文中设置为0.01;为归一化结果向量中的一个值,下标i表示序号;γi为增益向量γ中的一个值,下标i表示序号;βi和偏移向量β中的一个值,下标i表示序号;yi是结果向量Y中的一个值,下标i表示序号。
对参数向量γ和参数向量β进行对称量化,对输入向量X和输出向量Y进行非对称量化;
将非对称量化公式和对称量化公式代入层归一化公式,得到:
其中,
输入矩阵的零点对于运算没有影响,式(8)经过变换之后,得到:
其中,qγqμ、qσ 2、qβ、ZY均为整数,用牛顿迭代法计算之后得到一个整数,因此,式(9)中只有两项为浮点数,它们分别表示两个浮点缩放因子的比值;
将浮点数运算转化成整数运算以及移位操作;
两项进行如式(10)的近似处理,以在误差可接受的前提下,提高运算效率:
其中,M0、M1、n0、n1均为整数,通过右移n0和n1位实现;
将式(10)代入式(9)中,得到式(11):
5.如权利要求4所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于:对式(11)进行进一步近似处理:
令n0=n1=n,在误差可接受的前提下,简化计算式,减少计算量,式(11)改写成:
6.如权利要求1所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于:将算法部署到FPGA上的方法包括:
将所述算法部署到FPGA上;
使算法在FPGA上运行;
验证算法在FPGA上的运行状态。
7.如权利要求6所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于:将算法部署到FPGA上的方法包括以下步骤:
对算法进行编程,得到所述算法对应的编程信息;
检查并修改所述算法对应的编程信息;
检查FPGA的工作状态,若FPGA能正常工作,将所述算法对应的编程信息部署到FPGA上;
验证所述编程信息在FPGA中能否正常运行;若不能正常运行,则返回到检查并修改所述编程信息步骤循环,直至所述编程信息在FPGA中能正常运行为止;
检测BERT的运行速度。
8.如权利要求7所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于:对算法进行编程,得到所述算法对应的编程信息的方法包括以下步骤:
根据所述算法编程为算法对应的伪代码;
根据所述算法对应的伪代码以及对编程语言的需求,将所述算法对应的伪代码编译为算法对应的正式编码,将所述算法对应的正式编码作为所述算法对应的编程信息。
9.如权利要求7所述的BERT中层归一化非线性函数的FPGA加速方法,其特征在于:在算法部署到FPGA上之后,还进行以下操作:
多次逐步降低硬件资源;
检测BERT的运行速度;
找到硬件资源和BERT运行速度的平衡区间。
CN202211135447.0A 2022-09-19 2022-09-19 一种bert中层归一化非线性函数的fpga加速方法 Pending CN115965062A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211135447.0A CN115965062A (zh) 2022-09-19 2022-09-19 一种bert中层归一化非线性函数的fpga加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211135447.0A CN115965062A (zh) 2022-09-19 2022-09-19 一种bert中层归一化非线性函数的fpga加速方法

Publications (1)

Publication Number Publication Date
CN115965062A true CN115965062A (zh) 2023-04-14

Family

ID=87362295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211135447.0A Pending CN115965062A (zh) 2022-09-19 2022-09-19 一种bert中层归一化非线性函数的fpga加速方法

Country Status (1)

Country Link
CN (1) CN115965062A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116611439A (zh) * 2023-07-19 2023-08-18 北京惠每云科技有限公司 医疗信息抽取方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116611439A (zh) * 2023-07-19 2023-08-18 北京惠每云科技有限公司 医疗信息抽取方法、装置、电子设备及存储介质
CN116611439B (zh) * 2023-07-19 2023-09-19 北京惠每云科技有限公司 医疗信息抽取方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Nagel et al. A white paper on neural network quantization
Gholami et al. A survey of quantization methods for efficient neural network inference
CN109784486B (zh) 一种光学神经网络处理器及其训练方法
CN112955907B (zh) 用于量化训练的长短期记忆神经网络的方法和***
US11775611B2 (en) Piecewise quantization for neural networks
CN109784485B (zh) 一种光学神经网络处理器及其计算方法
CN105844330A (zh) 神经网络处理器的数据处理方法及神经网络处理器
CN105260776A (zh) 神经网络处理器和卷积神经网络处理器
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
Goujaud et al. PEPit: computer-assisted worst-case analyses of first-order optimization methods in Python
CN110929862B (zh) 定点化的神经网络模型量化装置和方法
US20210294874A1 (en) Quantization method based on hardware of in-memory computing and system thereof
CN113869508A (zh) 一种光神经网络训练方法、***、存储介质及设备
CN115238893B (zh) 面向自然语言处理的神经网络模型量化方法和装置
WO2022148071A1 (zh) 一种图像特征提取方法、装置、设备及存储介质
CN113392973A (zh) 一种基于fpga的ai芯片神经网络加速方法
CN115965062A (zh) 一种bert中层归一化非线性函数的fpga加速方法
CN110135563B (zh) 一种卷积神经网络二值化方法及运算电路
CN117574970A (zh) 用于大规模语言模型的推理加速方法、***、终端及介质
WO2023019899A1 (zh) 神经网络实时剪枝方法、***及神经网络加速器
CN114764620B (zh) 一种量子卷积操作器
CN114756517A (zh) 一种基于可微量化训练的视觉Transformer压缩方法及***
CN112258410B (zh) 一种可微分的低秩学习网络图像修复方法
CN115062777B (zh) 卷积神经网络的量化方法、量化装置、设备及存储介质
Luszczek et al. Increasing accuracy of iterative refinement in limited floating-point arithmetic on half-precision accelerators

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