一种算子融合方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-07-31 22:59:44
本发明涉及计算机,尤其涉及一种算子融合方法、装置、电子设备及存储介质。
背景技术:
1、在深度学习模型中,张量计算的定义呈现出两个显著的发展趋势,即计算规模的持续扩大与计算复杂度的不断增加,这两者共同对深度学习模型的高效部署构成了显著挑战。算子融合技术,亦称为内核融合或层融合,通过在更接近计算单元的存储介质中缓存中间计算结果以实现其重复使用,可以有效缓解由计算规模增大所带来的内存输入/输出开销的增加问题。
2、目前,现有的算子融合技术主要可以分为人工调优融合与自动调优融合两大类。其中,针对人工调优融合方法,通过专门针对特定张量计算的需求,领域内专家能够精心设计出适应复杂依赖关系的特定数据流和并行策略,如flash attention等。然而,这种人工调优融合方法存在两大局限性:其一,缺乏足够的通用性,难以广泛适用于不同的场景;其二,设计和调优复杂的融合数据流需要投入大量的人力和时间资源,在多样化的硬件架构上实现高效性能时尤为突出。相比之下,自动调优融合方法以其更强的通用性和较低的成本优势脱颖而出。然而,面对需要融合多个多对多算子的情景时,大部分现有的深度学习编译器和框架若不依靠人工调优,则难以胜任。这是因为这些方法多依赖于如数据流图这类高级抽象,以促进算子的融合,这种高级抽象虽有其便利,但对操作符内部的依赖关系抽象和分析不足,难以为定义有复杂依赖关系的多个操作符提供一个内聚的视角。而其他采用如多面体模型这类较低级抽象的方法,则因其细粒度的抽象定义出了巨大的搜索空间,在识别最佳算子融合解决方案方面较为低效。
技术实现思路
1、本发明提供了一种算子融合方法、装置、电子设备及存储介质,可以实现对复杂算子的有效自动融合,可以提升算子融合效率。
2、根据本发明的一方面,提供了一种算子融合方法,包括:
3、获取待融合复杂算子对应的计算空间映射图,所述计算空间映射图包括多个节点,以及连接两个节点的边,所述节点表示张量计算过程中的数据空间和迭代空间,所述边表示数据空间和迭代空间之间的映射关系;
4、基于片上内存容量,根据预设空间切片规则和预设时间切片规则,对所述计算空间映射图进行切分,获取多个子计算空间映射图,以及每个所述子计算空间映射图对应的多个时间块;
5、根据每个所述子计算空间映射图和对应的多个所述时间块,对所述待融合复杂算子进行自动调优融合,获取融合后复杂算子。
6、根据本发明的另一方面,提供了一种算子融合装置,包括:
7、计算空间映射图获取模块,用于获取待融合复杂算子对应的计算空间映射图,所述计算空间映射图包括多个节点,以及连接两个节点的边,所述节点表示张量计算过程中的数据空间和迭代空间,所述边表示数据空间和迭代空间之间的映射关系;
8、计算空间映射图切分模块,用于基于片上内存容量,根据预设空间切片规则和预设时间切片规则,对所述计算空间映射图进行切分,获取多个子计算空间映射图,以及每个所述子计算空间映射图对应的多个时间块;
9、算子融合模块,用于根据每个所述子计算空间映射图和对应的多个所述时间块,对所述待融合复杂算子进行自动调优融合,获取融合后复杂算子。
10、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
11、至少一个处理器;以及
12、与所述至少一个处理器通信连接的存储器;其中,
13、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的算子融合方法。
14、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的算子融合方法。
15、本发明实施例的技术方案,通过获取待融合复杂算子对应的计算空间映射图,计算空间映射图包括多个节点,以及连接两个节点的边,节点表示张量计算过程中的数据空间和迭代空间,边表示数据空间和迭代空间之间的映射关系;然后,基于片上内存容量,根据预设空间切片规则和预设时间切片规则,对计算空间映射图进行切分,获取多个子计算空间映射图,以及每个子计算空间映射图对应的多个时间块;最后,根据每个子计算空间映射图和对应的多个时间块,对待融合复杂算子进行自动调优融合,获取融合后复杂算子;通过将复杂算子抽象为计算空间映射图,并结合预设空间切片规则和预设时间切片规则,对计算空间映射图进行空间切片和时间切片,可以实现对多个复杂算子的融合调度的生成;其次,通过基于片上内存容量进行计算空间映射图的切分,可以在特定硬件资源限制条件下,为复杂算子自动生成高性能融合调度,可以实现对复杂算子的有效自动融合,从而可以减少深度学习模型推理的片外内存开销和耗时。
16、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
技术特征:1.一种算子融合方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于片上内存容量,根据预设空间切片规则和预设时间切片规则,对所述计算空间映射图进行切分,获取多个子计算空间映射图,以及每个所述子计算空间映射图对应的多个时间块,包括:
3.根据权利要求2所述的方法,其特征在于,根据所述预设空间切片规则,确定空间切片维度,包括:
4.根据权利要求2所述的方法,其特征在于,基于所述片上内存容量,根据所述空间切片维度,对所述计算空间映射图进行空间切片,获取多个所述子计算空间映射图,包括:
5.根据权利要求2所述的方法,其特征在于,根据所述预设时间切片规则,确定时间切片维度,包括:
6.根据权利要求1所述的方法,其特征在于,根据每个所述子计算空间映射图和对应的多个所述时间块,对所述待融合复杂算子进行自动调优融合,获取融合后复杂算子,包括:
7.根据权利要求6所述的方法,其特征在于,计算得到各所述目标时间块对应的局部规约计算结果,包括:
8.一种算子融合装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的算子融合方法。
技术总结本发明涉及计算机技术领域,公开了一种算子融合方法、装置、电子设备及存储介质。该方法包括:获取待融合复杂算子对应的计算空间映射图;基于片上内存容量,根据预设空间切片规则和预设时间切片规则,对计算空间映射图进行切分,获取多个子计算空间映射图,以及每个子计算空间映射图对应的多个时间块;根据每个子计算空间映射图和对应的多个时间块,对待融合复杂算子进行自动调优融合,获取融合后复杂算子。本实施例的技术方案,通过将复杂算子抽象为计算空间映射图,并基于片上内存容量,结合预设空间切片规则和预设时间切片规则,对计算空间映射图进行空间切片和时间切片,可以在特定硬件资源限制条件下,实现对复杂算子的有效融合。技术研发人员:姚建国,朱良,张亚林受保护的技术使用者:上海燧原科技股份有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/195630.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。