【技术实现步骤摘要】
算子处理方法及算子处理装置、电子设备和可读存储介质
[0001]本公开的实施例涉及一种算子处理方法、算子处理装置、电子设备和计算机可读存储介质。
技术介绍
[0002]在人工智能芯片上运行神经网络需要大量算子的支撑,神经网络可用于语音识别、图像识别、自然语言识别等领域,这些算子可以是预定义的底层算子,也可以是用户自定义的算子。算子之间的数据交互往往通过访存的方式实现,导致代码的执行效率较为低下。通常的做法是将若干个算子根据一定的模式组合在一起形成融合算子,融合算子内部可以通过寄存器交换数据,从而提高运行效率。
技术实现思路
[0003]本公开至少一个实施例提供一种算子处理方法,包括:获取用于描述计算过程的计算图,其中,所述计算图包含M个算子节点以及所述M个算子节点之间的连接关系,所述M个算子节点中的每个对应至少一个算子;对所述计算图进行拆分,得到N个子图,其中,所述N个子图中的每个包含所述M个算子节点中的至少一个算子节点,所述N个子图包括第一子图,所述第一子图对应K个第一融合算子,所述K个第一融合算子为将所述第一子图包括的多个算子节点对应的多个算子进行融合而得到的算子;确定所述N个子图分别对应的算子代码,其中,所述N个子图分别对应的算子代码包括所述第一子图对应的所述K个第一融合算子的算子代码;基于所述N个子图分别对应的算子代码,得到用于执行所述计算过程的代码,其中,M、N和K均为不小于1的整数。
[0004]例如,在本公开一实施例提供的算子处理方法中,所述第一子图包括的多个算子节点为P个算子节 ...
【技术保护点】
【技术特征摘要】
1.一种算子处理方法,包括:获取用于描述计算过程的计算图,其中,所述计算图包含M个算子节点以及所述M个算子节点之间的连接关系,所述M个算子节点中的每个对应至少一个算子;对所述计算图进行拆分,得到N个子图,其中,所述N个子图中的每个包含所述M个算子节点中的至少一个算子节点,所述N个子图包括第一子图,所述第一子图对应K个第一融合算子,所述K个第一融合算子为将所述第一子图包括的多个算子节点对应的多个算子进行融合而得到的算子;确定所述N个子图分别对应的算子代码,其中,所述N个子图分别对应的算子代码包括所述第一子图对应的所述K个第一融合算子的算子代码;基于所述N个子图分别对应的算子代码,得到用于执行所述计算过程的代码,其中,M、N和K均为不小于1的整数。2.根据权利要求1所述的方法,其中,所述第一子图包括的多个算子节点为P个算子节点,其中,P为大于1的整数;确定所述N个子图分别对应的算子代码,包括:针对所述第一子图,确定所述P个算子节点分别对应的算子的代码;基于所述P个算子节点分别对应的算子的代码,得到所述第一子图对应的所述K个第一融合算子的算子代码。3.根据权利要求2所述的方法,其中,针对所述第一子图,确定所述P个算子节点分别对应的算子的代码,包括:针对所述P个算子节点中的每个算子节点,执行如下操作:在所述算子节点对应的算子为预定义算子的情况下,针对所述预定义算子,获取与所述预定义算子对应的配置参数和代码模块,并基于所述配置参数和代码模块,得到所述预定义算子的代码;在所述算子节点对应的算子为自定义算子的情况下,针对所述自定义算子,对所述自定义算子进行编译,以得到所述自定义算子的代码。4.根据权利要求2所述的方法,其中,基于所述P个算子节点分别对应的算子的代码,得到所述第一子图对应的所述K个第一融合算子的代码,包括:将所述P个算子节点分别对应的算子的代码进行组合,得到所述K个第一融合算子的算子代码。5.根据权利要求1所述的方法,其中,对所述计算图进行拆分,得到N个子图,包括:若Q个算子节点对应的算子的目标属性相同,则将所述Q个算子节点划分为一个子图,其中,所述目标属性包括类型属性、计算属性和数据传输属性中的至少一种,其中,Q为大于1的整数。6.根据权利要求5所述的方法,其中,对所述计算图进行拆分,得到N个子图,包括:若所述Q个算子节点对应的算子均为相同类型的算子,则将所述Q个算子节点划分为一个子图。7.根据权利要求5所述的方法,其中,对所述计算图进行拆分,得到N个子图,包括:若所述Q个算子节点对应的算子配置为通过寄存器传输数据,则将所述Q个算子节点划分为一个子图。
8.根据权利要求5所述的方法,其中,对所述计算图进行拆分,得到N个子图,包括:若所述Q个算子节点对应的算子配置为在同一个计算单元上运行,则将所述Q个算子节点划分为一个子图。9.根据权利要求1所述的方法,其中,对所述计算图进行拆分,得到N个子图,包括:若Q个算子节点对应的算子的类型和执行顺序与预定融合算子包含的算子的类型和执行顺序一致,则将所述Q个算子节点划分为一个子图。10.根据权利要求5至9任一项所述的方法,其中,所述Q个算子节点在根据所述计算图确定的执行顺序上为彼此连续的或彼此并列的。11.根据权利要求1至9任一项所述的方法,其中,所述K个第一融合算子中的至少一个包括多个算子,所述多个算子依次连接并且顺次执行;对于所述多个算子中的相邻两个算子,在执行顺序上的前一个算子的计算结果数据作为后一个算子的输入数据。12.根据权利要求1至9任一项所述的方法,其中,所述N个子图还包括第二子图,所述第二子图对应R个第二融合算子,所述R个第二融合算子为将所述第二子图包括的多个算子节点对应的多个算子进行融合而得到的算子,其中,...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:上海壁仞智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。