人工智能芯片实现形变类算子的方法、系统、设备和介质技术方案

技术编号:38899028 阅读:19 留言:0更新日期:2023-09-22 14:19
提供一种在人工智能芯片上实现形变类算子的方法、系统、电子设备和非暂时存储介质。该方法包括:将第一张量从非线性布局转换为线性朴素布局以存储在内存中;将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。如此,可以将核函数的数量减少到2个来在人工智能芯片上实现形变类算子。个来在人工智能芯片上实现形变类算子。个来在人工智能芯片上实现形变类算子。

【技术实现步骤摘要】
人工智能芯片实现形变类算子的方法、系统、设备和介质


[0001]本申请涉及人工智能领域,且更具体地涉及在人工智能芯片上实现形变类算子的方法、系统、电子设备和非暂时存储介质。

技术介绍

[0002]人工智能模型通常是被训练用来进行推理预测的神经网络模型,例如图像推理模型、语音推理模型等。输入一张带有动物的图像,经过人工智能模型的推理,直接输出一个标签,表示这张图中的物体是什么,例如是狗或者猫。神经网络模型可以是卷积神经网络模型等。
[0003]人工智能模型的运算可以由计算图(computation graph)中的算子(operator)来实现。人工智能模型的运算通过预设的计算图转换规则,即可转换为该人工智能模型所对应的计算图。计算图是一种用于表示人工智能模型的计算任务和数据流过程的多图结构。算子指的是对人工智能模型中各层的张量所做的各种运算,例如人工智能模型的卷积层对人工智能模型的输入数据所做的卷积运算即为卷积算子。张量(tensor)可以理解为多维数组,其可以具有任意多的维度,不同的张量可以具有不同的数据类型和形状。算子可以理解为一个计算函数,其输入和输出都是张量。人工智能模型的计算图可以包括对张量进行众多种类运算的算子,例如卷积算子、全连接算子、池化算子、BatchNorm算子、Sobel算子、Reshape算子、Transpose算子等等。
[0004]现有的各种人工智能推理引擎框架,如ONNX Runtime、移动人工智能(Mobile Neural Network,MNN)、TensorRT等。例如MNN是一个轻量级的深度人工智能推理引擎,在端侧加载深度人工智能模型进行推理预测,适用于服务器/个人电脑/手机/嵌入式各类设备。
[0005]上述各种推理引擎框架均支持算子融合,算子融合是提升推理引擎性能的一个关键性因素,其可以将两个或更多个算子融合成一个算子或消融,通过融合算子减少网络层数,达到减少访存开销、减少功耗、减少计算量、减少启动内核时间等效果。
[0006]图形处理单元(Graphics Processing Units,GPU)芯片是一种基于大吞吐量设计的主要用于处理图形的特殊处理器。通用图形处理单元(General

purpose computing on graphics processing units,GPGPU)是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务。算子融合或消融可以节约GPGPU芯片在人工智能模型推理场景中的算力。而且,算子融合或消融可以节约GPGPU芯片在训练人工智能模型的场景中的算力。
[0007]需要一种在(通用)图像处理单元中通过算子消融来提高算力的方案。

技术实现思路

[0008]根据本申请的一个方面,提供一种在人工智能芯片上实现形变类算子的方法,包括:将第一张量从非线性布局转换为线性朴素布局以存储在内存中;将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。
[0009]根据本申请的另一个方面,提供一种在人工智能芯片上实现形变类算子的系统,包括:第一转换装置,被配置为将第一张量从非线性布局转换为线性朴素布局以存储在内存中;第二转换装置,被配置为将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。
[0010]根据本申请的另一个方面,提供一种电子设备,包括:存储器,用于存储指令;处理器,用于读取所述存储器中的指令,并执行根据本申请的实施例的方法。
[0011]根据本申请的另一个方面,提供一种非暂时存储介质,其上存储有指令,其中,所述指令在被处理器读取时,使得所述处理器执行根据本申请的实施例的方法。
[0012]如此,可以将核函数的数量减少到2个来在人工智能芯片上实现形变类算子。
附图说明
[0013]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1示出了现有技术在4个不同布局类型之间做Reshape算子操作的示意图。
[0015]图2A和2B示出了根据现有技术将张量A(tensor A)和张量B(tensor B)经过形变类算子形变为张量E(tensor E)的示意图。
[0016]如图3示出了根据本申请的实施例的一种在人工智能芯片上实现形变类算子的方法的流程图。
[0017]图4A和4B示出了根据本申请的实施例的将张量A和张量B经过形变类算子形变为张量E的示意图。
[0018]图5示出了根据本申请的实施例的从4种可能的布局之一经过concat算子、用线性朴素布局实现Reshape算子、permute算子转换为4种可能的布局之一的示意图。
[0019]图6示出了根据本申请的实施例的一种在人工智能芯片上实现形变类算子的系统的方框图。
[0020]图7示出了适于用来实现本申请的实施例的示例性电子设备的框图。
[0021]图8示出了根据本申请的实施例的非暂时性计算机可读存储介质的示意图。
具体实施方式
[0022]现在将详细参照本申请的具体实施例,在附图中例示了本申请的例子。尽管将结合具体实施例描述本申请,但将理解,不是想要将本申请限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本申请的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
[0023]动态图模式(Eager mode)是人工智能模型训练中最常用的一种模式,该模式下由于无法获取计算图的信息,导致图上大量的形变类算子(或称view类算子)(包括Reshape、permute、concat、slice等算子)无法消融,是影响通用GPGPU芯片在模型训练场景中算力的主要因素之一。当然除了动态图模式,其他模式下也可能存在形变类算子(view类算子)无
法消融的情况。
[0024]具体地,形变类算子(view类算子)会改变数据原有的排布方式(数据布局),包括改变元素个数、改变元素排布顺序。此类view类算子可以包括:
[0025]1)Reshape算子:改变张量的现状,而不改变元素原有的排布顺序。如从2
×3×
4改变形状成1
×2×
12。
[0026]2)Permute算子:交换张量的两个或多个轴。如从2
×3×
4交换成2
×4×
3,后两个维度交换了顺序,此时元素的排布顺序发生了改变。
[0027]3)Squeeze算子:对张量的维度进行压缩,去除维度大小为1的维度。如从2
×1×3×
4张量压缩成2
×本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在人工智能芯片上实现形变类算子的方法,包括:将第一张量从非线性布局转换为线性朴素布局以存储在内存中;将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。2.根据权利要求1所述的方法,其中,在将第一张量从非线性布局转换为线性朴素布局以存储在内存中的过程中,选择性地实现改变元素排布顺序的第一形变类算子。3.根据权利要求1所述的方法,其中,在将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中的过程中,选择性地实现改变元素排布顺序的第二形变类算子。4.根据权利要求1所述的方法,其中,在所述第一张量以线性朴素布局被存储在内存中时,选择性地通过逻辑地修改形状来实现一个或多个不改变元素排布顺序的一种或多种形变类算子。5.根据权利要求1所述的方法,其中,所述第一张量的非线性布局与所述第二张量的非线性布局相同或不同。6.根据权利要求1所述的方法,其中,所述非线性布局包括激活矩阵、权重矩阵,矩阵、向量中的至少一种。7.根据权利要求1所述的方法,其中,所述线性朴素布局表示沿着内存的行的方向排列,排满一行后再继续排下一行,或者沿着内存的列的方向排列,排满一列后再继续排下一列。8.根据权利要求2或3所述的方法,其中所述改变元素排布顺序的形变类算子包括Permute算子、Concat算子、Slice算子、Split算子中的至少一种。9.根据权利要求4所述的方法,其中,所述不改变元素排布顺序的形变类算子包括Reshape算子、Squeeze算子、Unsqueeze算子中的至少一种。10.根据权利要求1所述的方法,其中,通过一核函数来实现将第一张量从非线性布局转换为线性朴素布局以存储在内存中,通过另一核函数来实现将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。11.一种在人工智能芯片上实现形变类算子的系统,包括:第一转换装置,被配置为将第一张量从非线性布局转换为线性朴素布局以存储在内存中;第二转换装置,被配置为将所述第一张量从线性朴素布局转换为非线性布局的第二张量以存储在内存中。12.根据权利要求11所述的系统,...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1