【技术实现步骤摘要】
一种算子融合方法及装置
[0001]本申请涉及人工智能领域,尤其涉及一种算子融合方法及装置。
技术介绍
[0002]在人工智能(artificial intelligence,AI)、机器学习(machine learning,ML)等领域中,可以通过设计或训练不同的AI模型(如深度学习模型、神经网络模型、机器学习模型等)来实现不同的功能。AI模型中一般包括多个算子,算子可以代表AI模型中对数据进行的计算操作。不同算子之间具有连接关系,表示算子之间的数据传输关系,每个算子可以对输入该算子的数据进行相应的计算操作,并输出对应的计算结果。
[0003]AI模型经过编译后可以被部署到硬件装置例如AI芯片上实现落地应用。其中,AI芯片也称为AI加速器或计算卡,是专门用于处理人工智能应用中的大量计算任务的模块,可以用于执行AI模型的计算任务。
[0004]AI芯片的内存空间一般较小,因此在运行AI模型的过程中,各算子的输入数据和输出数据均是存储在空间较大的片外内存的。在执行AI模型中的算子对应的计算操作时,AI芯片需先将该算子对应的输入数据从片外内存搬移到缓存中,再对缓存中的数据执行计算操作。这就造成了片外内存和缓存之间频繁的数据搬移,因此,AI芯片执行AI模型过程中的访存开销较大。针对该问题,当前可以在编译AI模型的过程中,通过对AI模型中的算子进行算子融合处理,将部分算子融合为一个新的算子,从而减少数据在片外内存和缓存之间的数据搬移,进而减少访存开销。
[0005]当前可以通过张量虚拟机(Tenso ...
【技术保护点】
【技术特征摘要】
1.一种算子融合方法,其特征在于,包括:确定人工智能AI模型中的多个目标算子;其中,所述AI模型包含多个算子,任一算子用于表示所述AI模型中的至少一个计算操作,所述多个目标算子包含在所述多个算子中;在所述多个目标算子中,每个目标算子与至少一个其它的目标算子相连;在多个算子融合模板中选择目标算子融合模板;其中,任一算子融合模板用于采用所述算子融合模板对应的算子融合方式对多个算子进行算子融合处理;根据所述目标算子融合模板,对所述多个目标算子进行算子融合处理。2.根据权利要求1所述的方法,其特征在于,所述多个算子融合模板包含第一算子融合模板和第二算子融合模板;其中,所述第一算子融合模板用于将多个算子融合为一个融合算子;所述第二算子融合模板用于将多个算子融合为多个融合算子;根据所述多个目标算子,在多个算子融合模板中选择目标算子融合模板,包括:当所述多个目标算子中存在第一目标算子和多个第二目标算子时,若存储所述第一目标算子的输出数据所需的存储空间小于设定的空间阈值,则在所述多个算子融合模板中随机选择一个算子融合模板为所述目标算子融合模板,否则,在所述多个算子融合模板中选择所述第二算子融合模板为所述目标算子融合模板;当所述多个目标算子中不存在第一目标算子和多个第二目标算子时,在所述多个算子融合模板中选择第一算子融合模板为所述目标算子融合模板;其中,所述多个第二目标算子分别与所述第一目标算子相连,所述多个第二目标算子的输入数据为所述第一目标算子的输出数据。3.根据权利要求2所述的方法,其特征在于,在所述多个第二目标算子中,至少一个第二目标算子的输入数据与输出数据的维度不同。4.根据权利要求2或3的方法,其特征在于,根据所述目标算子融合模板,对所述多个目标算子进行算子融合处理,包括:当所述目标算子融合模板为所述第二算子融合模板时,使用所述第二算子融合模板将所述多个目标算子中的第一组目标算子融合为第一融合算子,以及将所述多个目标算子中的第二组目标算子融合为第二融合算子;其中,所述第一组目标算子包含所述多个目标算子中执行顺序早于所述第一目标算子的其它目标算子以及所述第一目标算子;所述第二组目标算子包含执行顺序晚于所述第一目标算子的其它目标算子。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:运行所述AI模型,包括:在执行所述第一融合算子结束后,生成所述第一融合算子的输出数据的多份复制数据;其中,所述多份复制数据的数量与所述多个第二目标算子的数量相同;根据所述多份复制数据执行所述第二融合算子。6.根据权利要求5所述的方法,其特征在于,所述第二融合算子用于表示所述第二组目标算子所表示的计算操作;根据所述多份复制数据执行所述第二融合算子,包括:在执行目标计算操作时,对所述多份复制数据中的一份复制数据执行所述目标计算操
作;其中,所述目标计算操作为所述第二组目标算子中任一个第二目标算子所表示的计算操作。7.根据权利要求6所述的方法,其特征在于,在根据所述多份复制数据执行所述第二融合算子之前,所述方法还包括:将所述多份复制数据分别存储到目标内存;在执行目标计算操作时,对所述多份复制数据中的一份复制数据执行所述目标计算操作,包括:执行多次数据处理过程;其中,每次数据处理过程包括以下步骤:从所述目标内存读取目标子数据,并将所述目标子数据写入目标缓存;从目标缓存读取所述目标子数据,并对所述目标子数据执行所述目标计算操作;其中,所述目标子数据为所述一份复制数据中的部分数据,存储所述目标子数据所需的存储空间小于目标阈值,所述目标阈值小于所述目标缓存中的可用存储空间;所述目标缓存中的可用存储空间小于存储所述目标数据所需的存储空间,所述目标内存中的可用存储空间大于存储所述目标数据所需的存储空间;其中,每次数据处理过程中从所述目标内存读取的目标子数据均不同。8.根据权利要求1~7任一所述的方法,其特征在于,在多个算子融合模板中选择目标算子融合模板之前,所述方法还包括:针对所述多个目标算子,生成所述多个算子融合模板。9.一种计算装置,其特征在于,包括:算子选择单元,用于确定AI模型中的多个目标算子;其中,所述AI模型包含多个算子,任一算子用于表示所述AI模型中的至少一个计算操作,所述多个目标算子包含在所述多个算子中;在所述多个目标算子中,每个目标算子与至少一个其它的目标算子相连;模板选择单元,用于在多个算子融...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。