处理单元、相关装置和方法制造方法及图纸

技术编号:31010261 阅读:13 留言:0更新日期:2021-11-30 00:07
本公开提出一种处理单元、相关装置和方法。该处理单元包括:取指令单元;指令译码单元;指令执行单元,用于:基于深度学习模型的静态图,确定待量化算子;如果所述待量化算子是非复合算子,在所述非复合算子的前面插入量化节点;如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面插入量化探针;根据插入了量化节点、或所述复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化。本公开实施例减少了量化时的深度学习模型的静态图复杂度,从而有利于后续优化、编译,且避免了在静态图中直接将复合算子分解成的原子操作不受框架支持的问题。不受框架支持的问题。不受框架支持的问题。

【技术实现步骤摘要】
处理单元、相关装置和方法


[0001]本公开涉及芯片领域,更具体而言,涉及一种处理单元、相关装置和方法。

技术介绍

[0002]在深度学习(deep learning)领域,推理(Inference)是指将一个预先训练好的深度学习模型推送到实际应用场景中使用。关于推理性能,除了硬件层面的优化,在算法层面,模型量化(Quantized Model)是提升推理性能的重要手段之一。模型量化是指,将深度学习模型中的节点的权重数据和输入数据,从高精度的量化级转换为低精度的量化级,例如从32位单精度浮点数(FP32)转化为8位整型数据(INT8)。这样做虽然精度降低了,但有助于降低对数据吞吐量和存储空间的要求。
[0003]现有技术中,一般通过在深度学习模型的静态图中确定待量化算子,并在前面加入量化节点来实现量化。静态图是指根据深度学习模型的结构在编写代码前预先生成的、表示深度学习模型中的各操作节点和各操作节点之间的关系的图。每个操作节点在静态图中表示成算子。量化节点即用于执行量化的程序。有些算子比较简单,仅包括一两种运算;而有些算子比较复杂,例如长短期记忆模型(LSTM)、门控循环单元(GRU),其包括多个矩阵乘及张量间的点加、点乘、循环等操作。对于这种比较复杂的算子,仅在算子级别前加入量化节点来量化,无法精准定位到真正需要量化的操作,量化准确性差。因此,现有技术中,对于这种比较复杂的复合算子,可以先将其在静态图上分解成小粒度的算子,例如将上述GRU算子中包含的多个矩阵乘及张量间的点加、点乘、循环等都作为小算子体现在静态图中,再以上述插入量化节点的方式在算子级别进行量化。但是,这会引入很多与控制、循环相关的节点,整个静态图变得复杂,不利于后续优化、编译等过程,而且一些分解出的原子操作并不存在于框架支持的算子列表中,还需要重写它们的实现,增加算子重写开销。

技术实现思路

[0004]有鉴于此,本公开旨在减少量化时的深度学习模型的静态图复杂度,从而有利于后续优化、编译,且避免在静态图中直接将复合算子分解成的原子操作不受框架支持的问题。
[0005]根据本公开的一方面,提供了一种处理单元,包括:
[0006]取指令单元,用于从所述处理单元外部的存储器取回计算机指令;
[0007]指令译码单元,用于对取回的计算机指令进行译码;
[0008]指令执行单元,用于执行译码后的所述计算机指令,以实现:
[0009]基于深度学习模型的静态图,确定待量化算子;
[0010]如果所述待量化算子是非复合算子,在所述非复合算子的前面插入量化节点;
[0011]如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面插入量化探针;
[0012]根据插入了量化节点、或复合算子中插入了量化探针的静态图,进行所述深度学
习模型的量化。
[0013]可选地,所述基于深度学习模型的静态图,确定待量化算子,包括:将特定格式的深度学习模型的静态图转换成通用中间表达的静态图;在所述通用中间表达的静态图上确定待量化算子;所述根据插入了量化节点、或复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化,包括:将所述插入了量化节点、或复合算子中插入了量化探针的静态图转换回所述特定格式进行量化,成为量化后模型。
[0014]可选地,在确定待量化算子之后,指令执行单元还用于执行译码后的所述计算机指令,以实现:
[0015]如果所述待量化算子是非复合算子,在所述非复合算子的前面插入最大值最小值收集节点;
[0016]如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面插入最大值最小值收集探针;
[0017]将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式进行校准,分别得到所述待量化非复合算子、所述待量化原子操作的输入的最大值、最小值;
[0018]其中,所述量化节点是根据所述待量化非复合算子的输入的最大值、最小值确定的,所述量化探针是根据所述待量化原子操作的输入的最大值、最小值确定的。
[0019]可选地,所述在所述通用中间表达的静态图上确定待量化算子,包括:在所述通用中间表达的静态图的算子中,根据量化前精度、量化后精度和第一规则,确定待量化算子。
[0020]可选地,所述在所述复合算子内部确定待量化原子操作,包括:在所述复合算子内部,根据量化前精度、量化后精度和第二规则,确定待量化原子操作。
[0021]可选地,所述量化节点通过如下方式确定:根据所述待量化非复合算子的输入的最大值、最小值,确定待量化非复合算子量化因素;根据所述待量化非复合算子量化因素,生成量化节点。
[0022]可选地,所述量化探针通过如下方式确定:根据所述待量化原子操作的输入的最大值、最小值,确定待量化原子操作量化因素;根据所述待量化原子操作量化因素,生成量化探针。
[0023]可选地,所述将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式进行校准,分别得到所述待量化非复合算子、所述待量化原子操作的输入的最大值、最小值,包括:
[0024]将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式的深度学习模型;
[0025]接收校准数据集,以便利用推理脚本将所述校准数据集应用于转换回的特定格式的深度学习模型,其中,所述最大最小值收集节点得到所述待量化非复合算子的输入的最大值、最小值,所述最大值最小值收集探针得到所述待量化原子操作的输入的最大值、最小值。
[0026]可选地,在根据插入了量化节点、或复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化之后,所述指令执行单元还用于执行译码后的所述计算机指令,以实现:将量化后模型按照加速单元支持的指令集,转换成加速单元模型,发送给所述加速单
元。
[0027]根据本公开的一方面,提供了一种计算装置,包括:如上所述的处理单元;存储器,用于存储所述计算机指令;加速单元,用于运行部署的深度学习模型。
[0028]根据本公开的一方面,提供了一种片上系统,包括用于运行深度学习模型的加速单元,所述深度学习模型由如上所述的处理单元量化后部署在所述加速单元上。
[0029]根据本公开的一方面,提供了一种数据中心,包括如上所述的计算装置。
[0030]根据本公开的一方面,提供了一种深度学习模型量化方法,包括:
[0031]基于深度学习模型的静态图,确定待量化算子;
[0032]如果所述待量化算子是非复合算子,在所述非复合算子的前面插入量化节点;
[0033]如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理单元,包括:取指令单元,用于从所述处理单元外部的存储器取回计算机指令;指令译码单元,用于对取回的计算机指令进行译码;指令执行单元,用于执行译码后的所述计算机指令,以实现:基于深度学习模型的静态图,确定待量化算子;如果所述待量化算子是非复合算子,在所述非复合算子的前面插入量化节点;如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面插入量化探针;根据插入了量化节点、或所述复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化。2.根据权利要求1所述的处理单元,其中,所述基于深度学习模型的静态图,确定待量化算子,包括:将特定格式的深度学习模型的静态图转换成通用中间表达的静态图;在所述通用中间表达的静态图上确定待量化算子;所述根据插入了量化节点、或复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化,包括:将所述插入了量化节点、或复合算子中插入了量化探针的静态图转换回所述特定格式进行量化,成为量化后模型。3.根据权利要求2所述的处理单元,其中,在确定待量化算子之后,指令执行单元还用于执行译码后的所述计算机指令,以实现:如果所述待量化算子是非复合算子,在所述非复合算子的前面插入最大值最小值收集节点;如果所述待量化算子是复合算子,在所述复合算子内部确定待量化原子操作,并在确定的待量化原子操作的前面插入最大值最小值收集探针;将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式进行校准,分别得到所述待量化非复合算子、所述待量化原子操作的输入的最大值、最小值;其中,所述量化节点是根据所述待量化非复合算子的输入的最大值、最小值确定的,所述量化探针是根据所述待量化原子操作的输入的最大值、最小值确定的。4.根据权利要求2所述的处理单元,其中,所述在所述通用中间表达的静态图上确定待量化算子,包括:在所述通用中间表达的静态图的算子中,根据量化前精度、量化后精度和第一规则,确定待量化算子。5.根据权利要求1所述的处理单元,其中,所述在所述复合算子内部确定待量化原子操作,包括:在所述复合算子内部,根据量化前精度、量化后精度和第二规则,确定待量化原子操作。6.根据权利要求3所述的处理单元,其中,所述量化节点通过如下方式确定:根据所述待量化非复合算子的输入的最大值、最小值,确定待量化非复合算子量化因素;
根据所述待量化非复合算子量化因素,生成量化节点。7.根据权利要求3所述的处理单元,其中,所述量化探针通过如下方式确定:根据所述待量化原子操作的输入的最大值、最小值,确定待量化原子操作量化因素;根据所述待量化原子操作量化因素,生成量化探针。8.根据权利要求3所述的处理单元,其中,所述将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式进行校准,分别得到所述待量化非复合算子、所述待量化原子操作的输入的最大值、最小值,包括:将插入了所述最大最小值收集节点、所述复合算子中插入了所述最大值最小值收集探针的通用中间表达的静态图,转换回所述特定格式的深度学习模型;接收校准数据集,以便利用推理脚本将所述校准数据集应用于转换回的特定格式的深度学习模型,其中,所述最大最小值收集节点得到所述待量化非复合算子的输入的最大值、最小值,所述最大值最小值收集探针得到所述待量化原子操作的输入的最大值、最小值。9.根据权利要求1所述的处理单元,其中,在根据插入了量化节点、或复合算子中插入了量化探针的静态图,进行所述深度学习模型的量化之后,所述指令执行单元还用于执行译码后的所述计算机指令,以实现:将量化后模型按照加速单元支...

【专利技术属性】
技术研发人员:李书森沈正海何军赵晓辉
申请(专利权)人:平头哥上海半导体技术有限公司
类型:发明
国别省市:

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

1