CN114895920A - Transformer网络的算子融合方法及装置 - Google Patents
Transformer网络的算子融合方法及装置 Download PDFInfo
- Publication number
- CN114895920A CN114895920A CN202210611214.7A CN202210611214A CN114895920A CN 114895920 A CN114895920 A CN 114895920A CN 202210611214 A CN202210611214 A CN 202210611214A CN 114895920 A CN114895920 A CN 114895920A
- Authority
- CN
- China
- Prior art keywords
- operator
- file
- graph
- operators
- fusible
- 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
Links
- 238000007500 overflow downdraw method Methods 0.000 title claims abstract description 26
- 238000005457 optimization Methods 0.000 claims abstract description 102
- 230000004927 fusion Effects 0.000 claims abstract description 68
- 238000004364 calculation method Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
本发明公开了一种Transformer网络的算子融合方法、装置、设备及计算机可读存储介质,应用于图优化技术领域,该方法包括:获取Transformer网络的推理模型文件;将推理模型文件转换为TVM框架的计算图文件;利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;将图优化文件部署到目标芯片,以利用目标芯片使用图优化文件对应的推理模型进行推理计算;本发明通过对Transformer网络的计算图进行重写,将原计算图中的多个细粒度算子融合为一个算子,提高了算子的融合程度,减少了细粒度算子中间运算结果的搬运次数,降低内存拷贝的时间消耗,从而有效提升模型推理性能。
Description
技术领域
本发明涉及图优化技术领域,特别涉及一种Transformer网络的算子融合方法、装置、设备及计算机可读存储介质。
背景技术
TVM(Tensor Virtual Machine)是一款端到端的深度学习编译框架,其作用在于将各种深度学习框架(如TensorFlow框架和PyTorch框架等)训练出来的模型编译成能够在不同硬件平台上高效执行的代码。在TVM后端模块中添加新型人工智能芯片,是一种快速部署模型的方案。在深度学习推理中,图优化是一种常见的性能优化方式,比如算子融合、数据布局变换等。算子融合将计算图中的多个算子合并成一个节点,从而减少了计算图中的节点个数,以及节点产生的中间数据在内存上的读写,因此能够有效提升深度学习推理性能。TVM前端将训练好的模型文件转换成计算图的形式,图优化是其重要组成模块之一。
TVM的图优化中的算子融合功能将计算图中的算子分成四类,其中,复杂算子(如矩阵乘算子)可以与紧随其后的elemwise算子(逐元素计算的算子,如加法算子)等进行合并,而不能与另一个矩阵乘算子进行融合。符合TVM融合规则的算子会被写入一个新的函数表达式中,该函数的输入和输出分别对应其中所有融合算子的输入和输出,函数的张量运算表达式来自于融合算子张量运算的组合;TVM会将该函数的张量运算当作一个整体来进行调度并生成能够在目标设备上运行的低级代码,也就相当于多个算子融合后变成了一个算子。
目前,TVM的图优化中的算子融合功能不支持多个复杂算法的融合,对于Transformer网络(一种基于注意力的神经网络),其计算公式可以如下:
Q=fc(input,weight_q)+bias_q
K=fc(input,weight_k)+bias_k
V=fc(input,weight_v)+bias_v
QK=softmax(batch_dot(Q,K))
QKV=batch_dot(QK,V)
output=fc(QKV,weight_output)
可见,Transformer网络的自注意力层可以包含4个矩阵乘法算子(即fc())、3个bias_add算子(加法算子)、2个batch _atmul算子(批量矩阵乘法算子,即batch_dot)、1个softmax算子(归一化指数算子);而传统的TVM的图优化不能将以上自注意力层中的所有算子进行融合,仅支持dense算子与bias_add算子融合,融合程度不高,使得Transformer网络的模型推理速度不高。
因此,如何能够提高Transformer网络的推理模型中算子的融合程度,提升Transformer网络的模型推理速度,是现今急需解决的问题。
发明内容
本发明的目的是提供一种Transformer网络的算子融合方法、装置、设备及计算机可读存储介质,以提高Transformer网络的推理模型中算子的融合程度,提升模型推理速度。
为解决上述技术问题,本发明提供一种Transformer网络的算子融合方法,包括:
获取Transformer网络的推理模型文件;
将所述推理模型文件转换为TVM框架的计算图文件;
利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,所述目标算子的输入和输出与全部所述可融合算子的输入和输出相同,所述可融合算子的数量大于2;
将所述图优化文件部署到目标芯片,以利用所述目标芯片使用所述图优化文件对应的推理模型进行推理计算。
可选的,所述利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,包括:
查找所述计算图文件中的所述可融合算子;
根据所述可融合算子的输入和输出,生成所述目标算子;
利用所述目标算子替换所述可融合算子,得到所述图优化文件。
可选的,所述查找所述计算图文件中的所述可融合算子,包括:
递归查询所述计算图文件中的所述可融合算子;
将所述可融合算子记录到预设容器中。
可选的,所述根据所述可融合算子的输入和输出,生成所述目标算子,包括:
获取各所述可融合算子的输入和属性;
创建预设融合算子,并将所述可融合算子的输入和属性赋给所述预设融合算子,得到所述目标算子。
可选的,所述利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,包括:
利用所述图优化模块,将所述计算图文件中的预设计算图中的全部所述可融合算子替换为所述目标算子,生成所述图优化文件;其中,所述预设计算图为所述TVM框架中以循环结构描述的计算图。
可选的,所述可融合算子包括所述Transformer网络的自注意力层算子。
可选的,该方法还包括:
在所述目标芯片的算子仓库中添加所述自注意力层算子对应的预设融合算子。
本发明还提供了一种Transformer网络的算子融合装置,包括:
获取单元,用于获取Transformer网络的推理模型文件;
转换单元,用于将所述推理模型文件转换为TVM框架的计算图文件;
图优化单元,用于利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,所述目标算子的输入和输出与全部所述可融合算子的输入和输出相同,所述可融合算子的数量大于2;
部署单元,用于将所述图优化文件部署到目标芯片,以利用所述目标芯片使用所述图优化文件对应的推理模型进行推理计算。
本发明还提供了一种Transformer网络的算子融合设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的Transformer网络的算子融合方法的步骤。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的Transformer网络的算子融合方法的步骤。
本发明所提供的一种Transformer网络的算子融合方法,包括:获取Transformer网络的推理模型文件;将推理模型文件转换为TVM框架的计算图文件;利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,目标算子的输入和输出与全部可融合算子的输入和输出相同,可融合算子的数量大于2;将图优化文件部署到目标芯片,以利用目标芯片使用图优化文件对应的推理模型进行推理计算;
可见,本发明通过利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,可以将Transformer网络的计算图进行重写,将原计算图中的多个细粒度算子融合为一个算子,提高了算子的融合程度,减少了细粒度算子中间运算结果在处理器与内存间的来回搬运次数,降低内存拷贝的时间消耗,从而有效提升模型推理性能。此外,本发明还提供了一种Transformer网络的算子融合方法、装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种Transformer网络的算子融合方法的流程图;
图2为本发明实施例所提供的另一种Transformer网络的算子融合方法的流程图;
图3为本发明实施例所提供的一种Transformer网络的算子融合装置的结构框图;
图4为本发明实施例所提供的一种Transformer网络的算子融合设备的结构示意图;
图5为本发明实施例所提供的一种Transformer网络的算子融合设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种Transformer网络的算子融合方法的流程图。该方法可以包括:
步骤101:获取Transformer网络的推理模型文件。
其中,本步骤中的推理模型文件可以为Transformer网络的推理模型的文件,例如推理模型文件可以为Pytorch(一种深度学习框架)框架下训练得到的Transformer网络的Bert(Bidirectional Encoder Representations from Transformers,一种语言表示模型)模型;推理模型文件也可以为其他深度学习框架(如TensorFlow框架)下训练得到的Transformer网络的其他推理模型。
步骤102:将推理模型文件转换为TVM框架的计算图文件。
其中,本步骤处理器可以将获取的推理模型文件转换为TVM框架的计算图文件,以将推理模型文件中的推理模型转换为TVM的计算图,从而能够对该计算图进行图优化,融合计算图中的可融合算子。
具体的,对于本步骤处理器将推理模型文件转换为TVM框架的计算图文件的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如可以采用与现有技术中的TVM的计算图格式转换方法相同或相似的方式实现,本实施例对此不做任何限制。
步骤103:利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,目标算子的输入和输出与全部可融合算子的输入和输出相同,可融合算子的数量大于2。
可以理解的是,本步骤中处理器可以利用TVM框架的图优化模块,对转换生成的计算图文件中计算图中需要进行融合的算子(即可融合算子)替换为一个目标算子,即该目标算子可以为计算图中全部可融合算子融合得到的一个算子,该目标算子的输入和输出与全部可融合算子的输入和输出相同,从而通过将全部可融合算子替换为该目标算子,对计算图进行图优化,使得在输入输出不受影响的情况下,减少了可融合算子的中间运算结果的来回搬运次数,降低内存拷贝的时间消耗。
具体的,对本步骤中处理器利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以查找计算图文件中的可融合算子;根据可融合算子的输入和输出,生成目标算子;利用目标算子替换可融合算子,得到图优化文件。
对应的,本步骤中处理器可以利用图优化模块,将计算图文件中的预设计算图中的全部可融合算子替换为目标算子,生成图优化文件;其中,预设计算图为TVM框架中以循环结构(如Expr结构)描述的计算图。例如出全力可以读取计算图文件中以Expr结构描述的计算图(即预设计算图),查找预设计算图中的可融合算子;根据可融合算子的输入和输出,生成目标算子;利用目标算子替换可融合算子,得到图优化后的预设计算图,从而得到图优化文件。
需要说明的是,本实施例中的可融合算子可以为计算图文件的计算图中能够进行融合的算子(即节点)。对于本步骤中的可融合算子的具体数量和类型,可以由设计人员根据实用场景和用户需求自行设置,如可融合算子可以为包括Transformer网络的自注意力层算子,如上述Transformer网络的自注意力层中的4个dense算子、3个bias_add算子、2个batch_matmul算子和1个softmax算子;本实施例中可融合算子的数量可以大于2,即本实施例中的图优化过程可以利用一个目标算子可以替换多个的可融合算子,以提升算子的融合程度。
对应的,本实施例中处理器可以利用目标芯片的算子仓库中的预设融合算子,生成目标算子;例如处理器可以将可融合算子的输入和属性赋给预设融合算子,得到目标算子,从而利用目标算子替换可融合算子,生成新的计算图。
相应的,本实施例所提供的方法还可以包括在目标芯片的算子仓库中添加预设融合算子。可融合算子包括Transformer网络的自注意力层算子时,处理器可以在在目标芯片的算子仓库中添加自注意力层算子对应的预设融合算子。例如,预设芯片为MLU(一种寒武纪的人工智能芯片)芯片时,处理器可以对CNNL(一种寒武纪的机器学习库)的算子接口进行封装,接入TVM的TOPI(Tensor Operator Inventory,张量算子库)模块,构成MLU芯片后端在TVM框架中对应的算子仓库,基于TVM的Transformer网络的推理模型(如Bert模型)就能够进行MLU芯片上的深度学习模型推理;对于Bert模型的部署来说,MLU芯片的算子仓库中可以包括dense、softmax等复杂算子和加减乘除等elemwise类算子,还可以包括在MLU芯片的算子仓库中添加的预设融合算子,如自注意力层算子对应的自注意力层融合算子;预设融合算子可以基于CNNL_EXTRA(一种寒武纪的神经网络计算扩展库)库来实现。
步骤104:将图优化文件部署到目标芯片,以利用目标芯片使用图优化文件对应的推理模型进行推理计算。
可以理解的是,本步骤中处理器通过将图优化文件部署到目标芯片,使目标芯片可以使用算子融合后的图优化文件对应的推理模型进行推理计算,提高模型推理性能。
对应的,对于本步骤中处理器将图优化文件部署到目标芯片的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以根据图优化文件,编译生成部署文件;将部署文件部署到目标芯片,以利用目标芯片使用部署文件对应的推理模型进行推理计算,得到推理结果。也就是说,在图优化文件无法直接在目标芯片上部署运行的情况下,处理器可以先将图优化文件编译为能够在MLU芯片上部署运行的文件(即部署文件),再将部署文件部署到目标芯片,以使图优化文件对应的推理模型能够在目标芯片上进行推理计算。
具体的,对于本实施例中的目标芯片的具体芯片类型,可以由设计人员根据实用场景和用户需求自行设置,如目标芯片可以具体为MLU芯片,如寒武纪的MLU270芯片或MLU370芯片,即本实施例中可以选择MLU芯片作为TVM的后端;目标芯片也可以具体为其他人工智能(AI)芯片或其他类型的芯片(如图形处理器GPU),本实施例对此不做任何限制。
本实施例中,本发明实施例通过利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,可以将Transformer网络的计算图进行重写,将原计算图中的多个细粒度算子融合为一个算子,提高了算子的融合程度,减少了细粒度算子中间运算结果在处理器与内存间的来回搬运次数,降低内存拷贝的时间消耗,从而有效提升模型推理性能。
基于上述方法实施例,请参考图2,图2为本发明实施例所提供的另一种Transformer网络的算子融合方法的流程图。该方法可以包括:
步骤201:获取Transformer网络的推理模型文件。
其中,本实施例中Transformer网络的推理模型文件可以为Bert模型。例如处理器可以通过Python(一种脚本语言)脚本调用图优化工具对Pytorch框架下训练生成的Bert模型进行推理加速。
具体的,本步骤中处理器可以读取训练好的Transformer网络的Bert模型文件。
步骤202:将推理模型文件转换为TVM框架的计算图文件。
可以理解的是,本步骤中处理器可以将推理模型文件(如Bert模型)转换为TVM的计算图格式,得到计算图文件。
步骤203:利用TVM框架的图优化模块,将计算图文件中的预设计算图中的全部可融合算子替换为目标算子,生成图优化文件;其中,预设计算图为TVM框架中以循环结构描述的计算图,可融合算子包括自注意力层算子。
需要说明的是,本实施例中可以实现针对Transformer网络的图优化工具,并在TVM框架的图优化模块注册,该图优化工具作用于TVM生成的计算图,将计算图中要进行融合的算子(即可融合算子)替换为目标算子,生成图优化文件。
具体的,本步骤中处理器可以查找计算图文件中预设计算图中的可融合算子;根据可融合算子的输入和输出,生成目标算子;利用目标算子替换可融合算子,得到图优化文件。例如处理器可以采用如下的实现预设计算图的图优化:
其中,上述FindGroup函数(表达式定位函数)用于查找计算图中的可融合算子,首先以递归的方式遍历计算图中的所有算子,把可融合算子记录在容器中,递归查找的代码实现可以如下:
也就是说,上述查找计算图文件中预设计算图中的可融合算子的过程可以包括:递归查询计算图文件中的可融合算子;将可融合算子记录到预设容器(如容器supported_nodes)中。
对应的,对于符合融合条件的算子(即可融合算子),可以结合预设融合算子的输入输出生成新算子(即目标算子),生成新算子的代码实现可以如下:
也就是说,上述根据可融合算子的输入和输出,生成目标算子的过程,可以包括:获取各可融合算子的输入和属性;创建预设融合算子,并将可融合算子的输入和属性赋给预设融合算子,得到目标算子。
步骤204:根据图优化文件,编译生成部署文件。
具体的,本步骤中处理器可以利用图优化得到的图优化文件,编译生成目标芯片上能够部署的文件(即部署文件)。
步骤205:将部署文件部署到目标芯片,以利用目标芯片使用部署文件对应的推理模型进行推理计算,得到推理结果。
其中,本步骤中可以将部署文件部署到目标芯片,以使部署文件对应的推理模型可以在目标芯片上进行模型推理,得到推理结果。
具体的,本实施例中处理器可以通过Python脚本调用图优化工具对Pytorch框架下训练生成的Bert模型进行推理加速,具体代码可以如下:
//读取训练好的Bert模型文件:
traced_model=torch.jit.load("bert.pt")
//将模型转换成TVM计算图格式:
mod,params=tvm.relay.frontend.from_pytorch(traced_model)
//对生成的计算图调用步骤203中注册的图优化工具:
mod=transform.mluFuseTransformerOp()(mod)
//编译生成可以在MLU芯片上部署的文件:
graph,lib,params=tvm.relay.build(mod,target="mlu")
//部署在编号为0的MLU芯片上进行模型推理:
module=tvm.graph_runtime.create(graph,lib,ctx=tvm.mlu(0))
module.run(**input_dict)
//获取推理结果:
output=module.get_output(0)
本实施例中,本发明实施例通过利用TVM框架的图优化模块,将计算图文件中的预设计算图中的全部可融合算子替换为目标算子,生成图优化文件,可以对Transformer网络中自注意力层中的全部算子进行融合,提高了自注意力层中算子的融合程度,提升了Transformer网络的推理性能。
相应于上面的方法实施例,本发明实施例还提供了一种Transformer网络的算子融合装置,下文描述的一种Transformer网络的算子融合装置与上文描述的一种Transformer网络的算子融合方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的一种Transformer网络的算子融合装置的结构框图。该装置可以包括:
获取单元10,用于获取Transformer网络的推理模型文件;
转换单元20,用于将推理模型文件转换为TVM框架的计算图文件;
图优化单元30,用于利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,目标算子的输入和输出与全部可融合算子的输入和输出相同,可融合算子的数量大于2;
部署单元40,用于将图优化文件部署到目标芯片,以利用目标芯片使用图优化文件对应的推理模型进行推理计算。
可选的,图优化单元30可以包括:
查找子单元,用于查找计算图文件中的可融合算子;
生成子单元,用于根据可融合算子的输入和输出,生成目标算子;
替换子单元,用于利用目标算子替换可融合算子,得到图优化文件。
可选的,查找子单元可以具体用于递归查询计算图文件中的可融合算子;将可融合算子记录到预设容器中。
可选的,生成子单元可以具体用于获取各可融合算子的输入和属性;创建预设融合算子,并将可融合算子的输入和属性赋给预设融合算子,得到目标算子。
可选的,图优化单元30可以具体用于利用图优化模块,将计算图文件中的预设计算图中的全部可融合算子替换为目标算子,生成图优化文件;其中,预设计算图为TVM框架中以循环结构描述的计算图。
可选的,可融合算子包括Transformer网络的自注意力层算子。
可选的,该装置还可以包括:
算子配置单元,用于在目标芯片的算子仓库中添加自注意力层算子对应的预设融合算子。
本实施例中,本发明实施例通过图优化单元30利用TVM框架的图优化模块,将计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,可以将Transformer网络的计算图进行重写,将原计算图中的多个细粒度算子融合为一个算子,提高了算子的融合程度,减少了细粒度算子中间运算结果在处理器与内存间的来回搬运次数,降低内存拷贝的时间消耗,从而有效提升模型推理性能。
相应于上面的方法实施例,本发明实施例还提供了一种Transformer网络的算子融合设备,下文描述的一种Transformer网络的算子融合设备与上文描述的一种Transformer网络的算子融合方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种Transformer网络的算子融合设备的结构示意图。该算子融合设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的Transformer网络的算子融合方法的步骤。
具体的,请参考图5,图5为本发明实施例所提供的一种Transformer网络的算子融合设备的具体结构示意图,该算子融合设备310可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在算子融合设备310上执行存储介质330中的一系列指令操作。
算子融合设备310还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
其中,算子融合设备310可以具体为服务器或计算机终端。
上文所描述的Transformer网络的算子融合方法中的步骤可以由Transformer网络的算子融合设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种Transformer网络的算子融合方法可相互对应参照。
一种计算机可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所提供的Transformer网络的算子融合方法的步骤。
该计算机可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种Transformer网络的算子融合方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种Transformer网络的算子融合方法,其特征在于,包括:
获取Transformer网络的推理模型文件;
将所述推理模型文件转换为TVM框架的计算图文件;
利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,所述目标算子的输入和输出与全部所述可融合算子的输入和输出相同,所述可融合算子的数量大于2;
将所述图优化文件部署到目标芯片,以利用所述目标芯片使用所述图优化文件对应的推理模型进行推理计算。
2.根据权利要求1所述的Transformer网络的算子融合方法,其特征在于,所述利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,包括:
查找所述计算图文件中的所述可融合算子;
根据所述可融合算子的输入和输出,生成所述目标算子;
利用所述目标算子替换所述可融合算子,得到所述图优化文件。
3.根据权利要求2所述的Transformer网络的算子融合方法,其特征在于,所述查找所述计算图文件中的所述可融合算子,包括:
递归查询所述计算图文件中的所述可融合算子;
将所述可融合算子记录到预设容器中。
4.根据权利要求2所述的Transformer网络的算子融合方法,其特征在于,所述根据所述可融合算子的输入和输出,生成所述目标算子,包括:
获取各所述可融合算子的输入和属性;
创建预设融合算子,并将所述可融合算子的输入和属性赋给所述预设融合算子,得到所述目标算子。
5.根据权利要求1所述的Transformer网络的算子融合方法,其特征在于,所述利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件,包括:
利用所述图优化模块,将所述计算图文件中的预设计算图中的全部所述可融合算子替换为所述目标算子,生成所述图优化文件;其中,所述预设计算图为所述TVM框架中以循环结构描述的计算图。
6.根据权利要求1所述的Transformer网络的算子融合方法,其特征在于,所述可融合算子包括所述Transformer网络的自注意力层算子。
7.根据权利要求6所述的Transformer网络的算子融合方法,其特征在于,还包括:
在所述目标芯片的算子仓库中添加所述自注意力层算子对应的预设融合算子。
8.一种Transformer网络的算子融合装置,其特征在于,包括:
获取单元,用于获取Transformer网络的推理模型文件;
转换单元,用于将所述推理模型文件转换为TVM框架的计算图文件;
图优化单元,用于利用所述TVM框架的图优化模块,将所述计算图文件中的全部可融合算子替换为目标算子,生成图优化文件;其中,所述目标算子的输入和输出与全部所述可融合算子的输入和输出相同,所述可融合算子的数量大于2;
部署单元,用于将所述图优化文件部署到目标芯片,以利用所述目标芯片使用所述图优化文件对应的推理模型进行推理计算。
9.一种Transformer网络的算子融合设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的Transformer网络的算子融合方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的Transformer网络的算子融合方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611214.7A CN114895920A (zh) | 2022-05-31 | 2022-05-31 | Transformer网络的算子融合方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611214.7A CN114895920A (zh) | 2022-05-31 | 2022-05-31 | Transformer网络的算子融合方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895920A true CN114895920A (zh) | 2022-08-12 |
Family
ID=82726105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210611214.7A Pending CN114895920A (zh) | 2022-05-31 | 2022-05-31 | Transformer网络的算子融合方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895920A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258178A (zh) * | 2023-03-24 | 2023-06-13 | 美的集团(上海)有限公司 | 模型转换方法、装置、电子设备和可读存储介质 |
CN116820524A (zh) * | 2023-08-22 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 模型更新方法、装置、计算机设备及存储介质 |
-
2022
- 2022-05-31 CN CN202210611214.7A patent/CN114895920A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258178A (zh) * | 2023-03-24 | 2023-06-13 | 美的集团(上海)有限公司 | 模型转换方法、装置、电子设备和可读存储介质 |
CN116258178B (zh) * | 2023-03-24 | 2023-09-22 | 美的集团(上海)有限公司 | 模型转换方法、装置、电子设备和可读存储介质 |
CN116820524A (zh) * | 2023-08-22 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 模型更新方法、装置、计算机设备及存储介质 |
CN116820524B (zh) * | 2023-08-22 | 2023-11-28 | 腾讯科技(深圳)有限公司 | 模型更新方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114895920A (zh) | Transformer网络的算子融合方法及装置 | |
CN111209005B (zh) | 程序文件的编译方法、装置和计算机可读存储介质 | |
JPH08286926A (ja) | 一般フロントエンド、及び動的にロード可能なバックエンドを有するコンパイラ | |
CN111610978A (zh) | 一种小程序转换方法、装置、设备及存储介质 | |
CN111104120A (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
CN114168154B (zh) | 模型数据处理方法、装置、电子设备及存储介质 | |
CN110507986B (zh) | 动画信息的处理方法和装置 | |
CN105824974A (zh) | 数据分析处理的方法和系统 | |
CN112527262A (zh) | 深度学习框架编译器宽度非一致自动向量优化方法 | |
US20230394330A1 (en) | A method and system for designing ai modeling processes based on graph algorithms | |
Sauer et al. | The research queueing package: past, present, and future | |
CN115421786A (zh) | 一种设计组件迁移方法及相关设备 | |
CN111309332A (zh) | 文件内容按需加载方法、装置及电子设备、存储介质 | |
Mirandola et al. | UML based performance modeling of distributed systems | |
CN112015382A (zh) | 一种处理器构架解析方法、装置、设备及储存介质 | |
CN113626035B (zh) | 基于tvm面向risc-v设备的神经网络编译方法 | |
CN115357251A (zh) | 一种移动端iOS开发数据转模型的方法 | |
CN115033212A (zh) | 航电系统图元模型一体化构建方法、装置、计算机设备 | |
CN114385864A (zh) | 一种图搜索方法、装置、设备及存储介质 | |
CN115686733A (zh) | 一种服务的部署方法、装置、电子设备及存储介质 | |
Gazzarri et al. | A tool to support FastFlow program design | |
CN110874350A (zh) | 结构化日志数据的加工方法和装置 | |
CN110837896B (zh) | 机器学习模型的存储和调用方法、装置 | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 | |
CN115543323B (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 |