预估执行神经网络模型所需时间的方法及相关产品技术

技术编号:33131710 阅读:29 留言:0更新日期:2022-04-17 00:49
本披露提供一种预估执行神经网络模型所需时间的方法及相关产品,其中,所述方法包括:获得所述神经网络模型、所述人工智能处理器的硬件参数;根据所述神经网络模型和所述人工智能处理器的硬件参数对所述神经网络模型进行处理,获得对应的二进制指令;根据所述神经网络模型对应的硬件二进制指令获得执行所述神经网络模型所需时间。经网络模型所需时间。经网络模型所需时间。

【技术实现步骤摘要】
预估执行神经网络模型所需时间的方法及相关产品


[0001]本披露涉及神经网络领域,尤其涉及一种预估人工智能处理器执行神经网络模型所需时间的方法及相关产品。

技术介绍

[0002]近年来,深度学习加速器被不断提出,并如同通用处理器一样,正在由单核向多核扩展。这种扩展后的多核结构可以在训练阶段支持数据并行的方式来提高数据吞吐量,加快训练速度。然而,在推理阶段,相比吞吐量深度神经网络对端到端的时延有着更高的要求,这往往决定了加速器在某个场景下的可用性。传统的数据并行方案不能满足推理场景下对加速器小数据、低延迟的要求。
[0003]在多核处理系统中,根据系统的可用核数可以将网络的输入数据拆分成不同的规模,在不同的核上进行计算;不同的数据拆分策略可能有不同的性能表现。因此,为了解决在多核处理器上进行多核拆分运算过程中的拆分策略选择问题,拆分策略的选择需要预估执行该神经网络模型所需的时间。因此,急需解决该时间预估问题。

技术实现思路

[0004]为了解决该技术问题,本披露实施例提供了一种预估人工智能处理器执行神经网络模型所需时间的方法及相关产品。
[0005]第一方面,提供一种预估人工智能处理器执行神经网络模型所需时间的方法,所述预估方法包括如下步骤:
[0006]获得所述神经网络模型、所述人工智能处理器的硬件参数;
[0007]根据所述神经网络模型和所述人工智能处理器的硬件参数对所述神经网络模型进行处理,获得对应的二进制指令;
[0008]根据所述神经网络模型对应的硬件二进制指令获得执行所述神经网络模型所需时间。
[0009]第二方面,提供一种预估人工智能处理器执行神经网络模型所需时间的装置,所述装置包括:
[0010]参数确定单元,用于获得所述神经网络模型、所述人工智能处理器的硬件参数;
[0011]处理单元,用于根据所述神经网络模型和所述人工智能处理器的硬件参数对所述神经网络模型进行处理,获得对应的二进制指令;
[0012]预估单元,用于根据所述神经网络模型对应的硬件二进制指令获得执行所述神经网络模型所需时间。
[0013]第三方面,提供一种计算芯片,所述计算芯片包括:如上述所述的装置。
[0014]第四方面,提供一种计算机可读存储介质,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如上述所述的方法。
[0015]本申请提供的技术方案进行时间预估,预估拆分以后的神经网络模型的运行时
间,从而为拆分策略选取阶段提供合理的性能依据,能够大大提高拆分策略选择的效率和系统的运行性能。
附图说明
[0016]图1是人工智能处理器架构模型示意图;
[0017]图2是本申请提供的一种预估人工智能处理器执行神经网络模型所需时间的方法流程图
[0018]图3是指令队列示意图;
[0019]图4是本申请提供的一种预估人工智能处理器执行神经网络模型所需时间的装置示意图。
具体实施方式
[0020]为了使本
的人员更好地理解本披露方案,下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0021]如图1所示,人工智能处理器架构模型示意图。该加速器模型的工作方式不需要与host端协同执行神经网络运算,而是在host端编译整个神经网络模型,生成全部的神经网络加速器指令,运行时在host端准备好输入、权值、常数数据,由神经网络加速器执行全网络,并将最终输出返还至host端。所以,该模型在功能上是一个通用的神经网络加速器,并且在神经网络框架中,无需对计算图进行host端与device端的工作负载划分与分配调度。
[0022]在图1中,包含了scratchpad存储单元,神经网络运算单元(NFU)和控制单元(CU)。控制单元负责读取指令序列,译码,发往各个部件执行,由图中的带尾箭头所示。CU对神经网络运算单元和存储单元是分别控制的,即可以使得两种部件同时在执行指令,互相overlap延迟,提升加速器的性能。存储单元按照功能划分为权值缓存单元(SB)和输入输出神经元缓存单元(NB)。神经网络运算单元包含了向量运算单元(VFU)和矩阵运算单元(MFU)。其中,矩阵运算单元分别读取SB和NB中的数据,进行卷积运算、全连接运算以及矩阵乘运算等需要乘、累加的操作,输出结果存放至NB中。向量运算单元读取NB中的数据,进行向量的算术运算、逻辑运算、比较运算、激活运算、数据转置、数据类型转换等向量化的运算,输出结果存放至NB中。寄存器(Reg)与控制单元、运算单元和存储单元连接,支持数据从运算结果导出、从存储单元读取以及指令中的立即数赋值,用于IO指令中地址的索引和运算指令中的规模配置以及跳转条件判断等功能。
[0023]基于加速器模型各部件的特性,可以据此提出一个ISA的模型,指令集是单指令多数据流(SIMD)的,包含上述运算单元负责执行的计算(CP)类指令,和用于数据搬移的输入输出(IO)类指令,以及一些其他的配置(CONFIG)类、控制跳转类(CONTROL)指令。配置类指令包含对激活操作的自定义配置,以及对寄存器的配置操作等。控制跳转类指令负责各部件的同步指令、条件或无条件跳转指令等。其中IO、CP类的指令在分别发射至对应的功能部件后,可以并行执行,通过控制类指令中的同步指令进行不同功能部件、不同类型指令之间的同步。
[0024]在加速器处理神经网络模型时,首先需要通过IO类的数据加载(Load)指令,将必要的数据从片外(off

chip)内存Load到片上(on

chip)存储中,再通过相应的CP指令,执行神经网络运算,最终通过存储(Store)指令,将结果返还至片外内存中。
[0025]如图2所示,为本申请提供的一种预估人工智能处理器执行神经网络模型所需时间的方法流程图。所述预估方法包括如下步骤:
[0026]步骤201):获得所述神经网络模型、所述人工智能处理器的硬件参数。
[0027]在本实施例中,人工智能处理器的硬件参数包括但不限于当前设备的DDR带宽、LLC带宽、主频信息。
[0028]步骤202):根据所述神经网络模型和所述人工智能处理器的硬件参数对所述神经网络模型进行处理,获得对应的二进制指令。
[0029]在本实施例中,根据所述神经网络模型的网络信息和所述人工智能处理器的硬件参数对所述神经网络模型进行处理的步骤包括:
[0030]根据所述神经网络模型获得对应的计算图;
[0031]在计算图中按照拓扑排序的顺序,遍历计算图的节点,依次进行算子的执行树的生成;
[0032]根据所述人工智能处理器的硬件参数,对所述执行树进行编译优化;
...

【技术保护点】

【技术特征摘要】
1.一种预估人工智能处理器执行神经网络模型所需时间的方法,其特征在于,所述预估方法包括如下步骤:获得所述神经网络模型、所述人工智能处理器的硬件参数;根据所述神经网络模型和所述人工智能处理器的硬件参数对所述神经网络模型进行处理,获得对应的二进制指令;根据所述神经网络模型对应的硬件二进制指令获得执行所述神经网络模型所需时间。2.根据权利要求1所述的方法,其特征在于,根据所述神经网络模型的网络信息和所述人工智能处理器的硬件参数对所述神经网络模型进行处理的步骤包括:根据所述神经网络模型获得对应的计算图;在计算图中按照拓扑排序的顺序,遍历计算图的节点,依次进行算子的执行树的生成;根据所述人工智能处理器的硬件参数,对所述执行树进行编译优化;解析编译优化后的执行树,获得编译优化后的算子的指令块;对所述指令块进行重排,获得对应的硬件二进制指令。3.根据权利要求1所述方法,其特征在于,所述根据所述神经网络模型对应的硬件二进制指令获得执行所述神经网络模型所需时间的步骤包括:将所述硬件二进制指令进行分类,获得I/O指令集合和计算指令集合;将所述I/O指令集合中的I/O指令发送至I/O指令队列中,将计算指令集合中的计算指令发送至计算指令队列中,在指令队列存在指令堵塞时,获得等待时间;获取每个I/O指令的执行时间以及每个计算指令的执行时间,所有I/O指令的执行时间之和为I/O执行时间,所有计算指令执行时间之和为计算执行时间,从所述I/O执行时间和所述计算执行时间中取最大值,获得执行时间;根据所述等待时间和所述执行时间获得执行所述神经网络模型所需时间。4.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:

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

1