【技术实现步骤摘要】
用于静态分析NPU指令性能的方法、电子设备、介质和程序
[0001]本专利技术涉及仿真
,具体涉及用于静态分析NPU指令性能的方法、电子设备、介质和程序。
技术介绍
[0002]分析NPU指令的性能,能够帮助芯片设计人员、编译器开发人员和神经网络模型设计人员发现神经网络模型推理过程中的性能瓶颈,从而对NPU、编译器或神经网络模型结构等进行有针对性地优化。NPU指令的性能主要以指令或指令序列的执行的时间为参考指标。在芯片中,指令执行时间也可以由指令执行所用时钟周期数来代替。目前NPU指令或指令序列的性能评估方式主要有两种:一种方式是在物理硬件上真实执地行指令或指令序列,然后通过测量时间或统计时钟周期数获得执行时间;另一种方式是基于设计人员对电路功能的描述,通过用软件实现的仿真软件进行仿真执行,然后通过统计指令或指令序列所用时钟周期数来获得时间。
[0003]然而,针对前述的第一种NPU指令性能分析方式,即在物理硬件上真实执行指令或指令序列,虽然该方法能够非常精准地获得指令或指令序列的真实执行时间,且单次执行指令得出结果的速度较快,但是此方法不能在芯片制造前(或通过FPGA等搭建硬件仿真环境之前)就得到指令性能指标,对于芯片设计来说存在成本高昂、整体周期太长的问题。
[0004]此外,针对前述的第二种NPU指令性能分析方式,即基于设计人员对电路功能的描述,通过用软件实现的仿真软件进行仿真执行,然后通过统计指令或指令序列所用时钟周期数来获得时间,虽然该方法无需真实地制造出芯片,也无需进行硬件仿真,可在 ...
【技术保护点】
【技术特征摘要】
1.一种用于静态分析NPU指令性能的方法,其特征在于,所述方法包括:S1:从待执行的指令序列中依次取出指令,并按指令相应所属的硬件指令执行单元将指令投递到NPU的一个或多个仿真指令执行单元的指令队列中;S2:选取所述一个或多个指令执行单元中的至少一个指令执行单元中的指令队列中的待执行指令,并解析待执行指令的参数;S3:基于待执行指令的参数,判断待执行指令的执行是否依赖所述一个或多个指令执行单元中的其他指令执行单元中的指令队列中的指令的执行结果,其中若待执行指令的执行不依赖所述一个或多个指令执行单元中的其他指令执行单元中的指令队列中的指令的执行结果,则跳转到步骤S4;S4:设置待执行指令开始执行时的时钟周期数并开始执行待执行指令,其中若待执行指令为所述指令序列中第一条被执行的指令,则待执行指令开始执行时的时钟周期数等于初始时钟周期数,若待执行指令不是所述指令序列中第一条被执行的指令,则待执行指令开始执行时的时钟周期数等于待执行指令所在的所述至少一个指令执行单元中上一条指令执行结束时的时钟周期数;S5:按预定公式计算待执行指令执行所用的时钟周期数;S6:将待执行指令执行结束时的时钟周期数设置为等于待执行指令开始执行时的时钟周期数加上待执行指令执行所用的时钟周期数;S7:结束待执行指令的仿真;S8:判断所述至少一个指令执行单元中的指令队列是否为空,其中若所述至少一个指令执行单元中的指令队列不为空,则跳转到步骤S2,若所述至少一个指令执行单元中的指令队列为空,则跳转到步骤S9;S9:所述至少一个指令执行单元的仿真任务结束。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在步骤S3中,若待执行指令的执行依赖所述一个或多个指令执行单元中的其他指令执行单元中的指令队列中的指令的执行结果,则跳转到步骤S10;S10:判断所述至少一个指令执行单元中的待执行指令所依赖的指令是否都已执行结束,其中若所述至少一个指令执行单元中的待执行指令所依赖的指令还没有执行结束,则跳转到步骤S11,若所述至少一个指令执行单元中的待执行指令所依赖的指令都已执行结束,则跳转到步骤S12;S11:所述至少一个指令执行单元暂停执行待执行指令并进入等待状态;S12:将待执行指令开始执行时的时钟周期数设置为等于待执行指令所依赖的所有指令中最后一个执行结束时的时钟周期数,开始执行待执行指令,并跳转到上述步骤S5。3.根据权利要求2所述的方法,其特征在于,所述方法在步骤S7之后还包括:S13:判断待执行指令的执行结果是否被所述一个或多个指令执行单元中的其他指令执行单元的指令队列中的指令的执行所依赖,其中若待执行指令的执行结果不被所述一个或多个指令执行单元中的其他指令执行单元的指令队列中的指令的执行所依赖,则跳转到上述步骤S8,若待执行指令的执行结果被所述一个或多个指令执行单元中的其他指令执行单元的指...
【专利技术属性】
技术研发人员:陆天翼,梁爽,
申请(专利权)人:北京超星未来科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。