张量处理方法、张量处理装置、电子设备和存储介质与流程
本公开的实施例涉及人工智能领域,具体涉及一种张量处理方法、张量处理装置、电子设备和存储介质。
背景技术:
1、随着人工智能(artificial intelligence,ai)技术的不断发展,人工智能处理器已成为支撑深度学习模型训练与推理的重要硬件设备。算子是构建深度学习模型的基本单元,其执行效率决定了模型的整体性能。当前的底层硬件架构呈现出显著的多样化与异构化特征,如何使得算子在满足目标硬件的约束条件的同时保证计算效率,已成为当前需要解决的技术难题之一。
技术实现思路
1、本公开至少一实施例提供一种张量处理方法,该方法包括:响应于基于预设分块策略所确定的第一张量的分块数量满足第一条件,基于所述第一张量执行维度重构和布局转换操作,得到以非行主序连续排布且满足目标硬件约束的第二张量;调用目标硬件算子接口对第二张量执行计算。
2、在本公开至少一实施例提供的张量处理方法中,所述第一条件包括:所述分块数量大于第一硬件支持阈值。
3、在本公开至少一实施例提供的张量处理方法中,所述基于所述第一张量执行维度重构和布局转换操作,包括:基于所述第一张量执行第一类型维度重构操作和布局转换操作,得到中间张量;对所述中间张量执行第二类型维度重构操作,得到所述第二张量。
4、本公开至少一实施例提供的张量处理方法还包括:基于所述第一张量的第一维度尺寸确定目标重构维度尺寸;基于所述第一张量的第一维度尺寸和所述目标重构维度尺寸确定是否执行填充操作。
5、在本公开至少一实施例提供的张量处理方法中,所述基于所述第一张量的第一维度尺寸确定目标重构维度尺寸,包括:基于预设重构维度尺寸集合中多个重构维度尺寸分别对应的待填充数据量,从所述预设重构维度尺寸集合中确定第一重构维度尺寸;根据所述第一张量的第一维度尺寸和所述第一重构维度尺寸,确定第二重构维度尺寸;根据所述第一重构维度尺寸和所述第二重构维度尺寸,确定所述目标重构维度尺寸。
6、在本公开至少一实施例提供的张量处理方法中,所述基于所述第一张量执行第一类型维度重构操作和布局转换操作,得到中间张量,包括:对第一张量执行第一类型维度重构操作;对维度重构后的第一张量执行布局转换操作,得到所述中间张量。
7、在本公开至少一实施例提供的张量处理方法中,所述对第一张量执行第一类型维度重构操作,包括:基于第一重构维度尺寸和第二重构维度尺寸,将所述第一张量的第一维度拆分为第一重构维度和第二重构维度。
8、在本公开至少一实施例提供的张量处理方法中,所述对维度重构后的第一张量执行布局转换操作,包括:基于目标物理布局将所述维度重构后的第一张量写入存储区域中,其中,所述目标物理布局为非行主序连续排布。
9、在本公开至少一实施例提供的张量处理方法中,所述基于目标物理布局将所述维度重构后的第一张量写入存储区域中,包括:分配所述目标物理布局对应的存储区域;通过内存拷贝操作将所述维度重构后的第一张量拷贝至所述存储区域中,以在所述拷贝过程中将所述维度重构后的第一张量转换为目标物理布局。
10、在本公开至少一实施例提供的张量处理方法中,所述基于所述第一张量执行第一类型维度重构操作和布局转换操作,得到中间张量,包括:响应于确定执行填充操作,对所述第一张量执行所述填充操作得到第三张量;对所述第三张量执行第一类型维度重构操作;对维度重构后的第三张量执行所述布局转换操作,得到所述中间张量。
11、在本公开至少一实施例提供的张量处理方法中,所述对所述第一张量执行所述填充操作,包括:基于目标重构维度尺寸分配连续存储区域,将所述第一张量拷贝至所述连续存储区域;在所述连续存储区域中所述第一张量的尾部填充预设填充值。
12、在本公开至少一实施例提供的张量处理方法中,所述对所述中间张量执行第二类型维度重构操作,得到所述第二张量,包括:对所述中间张量的第一重构维度和第二重构维度进行合并,并基于所述第一张量的第一维度尺寸执行截断处理,得到所述第二张量,其中,所述第二张量的第一维度尺寸与所述第一张量的第一维度尺寸相等。
13、在本公开至少一实施例提供的张量处理方法中,所述预设分块策略包括:响应于所述第一张量的第一维度尺寸满足第二条件,基于预设分块尺寸集合中多个分块尺寸分别对应的待填充数据量,从所述预设分块尺寸集合中确定目标分块尺寸;根据所述第一张量的第一维度尺寸和所述目标分块尺寸确定所述第一张量的分块数量,其中,所述第二条件包括:所述第一维度尺寸大于第二硬件支持阈值。
14、本公开至少一实施例提供的张量处理方法还包括:响应于基于所述预设分块策略所确定的第一张量的分块数量不满足所述第一条件,由底层计算框架对所述第一张量执行第二布局转换操作并调用目标硬件算子接口。
15、在本公开至少一实施例提供的张量处理方法中,所述目标硬件算子接口包括目标硬件矩阵乘接口,所述调用目标硬件算子接口对第二张量执行计算包括:调用所述目标硬件矩阵乘接口对所述第二张量执行矩阵乘计算。
16、本公开至少一实施例提供一种张量处理装置,该张量处理装置包括:转换模块,被配置为响应于基于预设分块策略所确定的第一张量的分块数量满足第一条件,基于所述第一张量执行维度重构和布局转换操作,得到以非行主序连续排布且满足目标硬件约束的第二张量;调用模块,被配置为调用目标硬件算子接口对第二张量执行计算。
17、本公开至少一实施例提供一种电子设备,包括至少一个处理器和至少一个存储器,其中,所述至少一个存储器中存储有程序代码,所述程序代码在由所述至少一个处理器执行时,使得所述至少一个处理器执行根据本公开至少一实施例所述的张量处理方法。
18、本公开至少一实施例提供一种非瞬时计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在被至少一个处理器执行时,使得所述至少一个处理器执行根据本公开至少一实施例所述的张量处理方法。
19、在本公开至少一实施例提供的张量处理方法、张量处理装置、电子设备、存储介质中,在调用目标硬件算子接口之前主动判断基于预设分块策略所确定的第一张量的分块数量是否超出硬件重排限制,在超限的情况下提前自适应执行维度重构和布局转换操作。由此,一方面提前规避了底层硬件因维度参数超限或内存布局不兼容而导致的运行失败风险;另一方面,由于张量在内存中的物理布局已与底层硬件的计算单元组织方式相匹配,底层算子可直接按照硬件原生的数据访问模式进行高效读写,从而充分利用硬件加速能力,在保持对外原有维度计算语义不变的前提下,实现了可运行性、兼容性与计算性能的全面兼顾。
1.一种张量处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一条件包括:所述分块数量大于第一硬件支持阈值。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一张量执行维度重构和布局转换操作,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一张量的第一维度尺寸确定目标重构维度尺寸,包括:
6.根据权利要求3所述的方法,其特征在于,所述基于所述第一张量执行第一类型维度重构操作和布局转换操作,得到中间张量,包括:
7.根据权利要求6所述的方法,其特征在于,所述对第一张量执行第一类型维度重构操作,包括:
8.根据权利要求6所述的方法,其特征在于,所述对维度重构后的第一张量执行布局转换操作,包括:
9.根据权利要求8所述的方法,其特征在于,所述基于目标物理布局将所述维度重构后的第一张量写入存储区域中,包括:
10.根据权利要求3所述的方法,其特征在于,所述基于所述第一张量执行第一类型维度重构操作和布局转换操作,得到中间张量,包括:
11.根据权利要求10所述的方法,其特征在于,所述对所述第一张量执行所述填充操作,包括:
12.根据权利要求3所述的方法,其特征在于,所述对所述中间张量执行第二类型维度重构操作,得到所述第二张量,包括:
13.根据权利要求1所述的方法,其特征在于,所述预设分块策略包括:
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
15.根据权利要求1所述的方法,其特征在于,所述目标硬件算子接口包括目标硬件矩阵乘接口,
16.一种张量处理装置,其特征在于,所述张量处理装置包括:
17.一种电子设备,其特征在于,所述电子设备包括:
18.一种非瞬时性计算机可读存储介质,其特征在于,所述非瞬时性计算机可读存储介质存储有计算机可读指令,其中,所述计算机可读指令被至少一个处理器执行时执行权利要求1-15任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com