指令调度质量的检测方法及装置与流程

摘要: 本公开涉及集成电路,具体涉及一种指令调度质量的检测方法、指令调度质量的检测装置、电子设备、计算机可读存储介质及计算机程序产品。背景技术:1、gpu(graphi...
指令调度质量的检测方法及装置与流程

本公开涉及集成电路,具体涉及一种指令调度质量的检测方法、指令调度质量的检测装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、gpu(graphics processing unit,图形处理器)shader(着色程序)编译器的后端承担着将中间表示(intermediate representation,ir)转换为目标架构isa(instructionset architecture,指令集架构)的任务,其中指令调度(instruction scheduling)是直接影响shader执行效率的关键点。与乱序执行的现代cpu(central processing unit,中央处理器)不同,gpu shader处理器通常依赖编译器做静态指令调度,即编译器必须在代码生成阶段合理排布指令顺序,以充分利用流水线并行性、隐藏内存访问延迟。

技术实现思路

1、本公开实施例提出了一种指令调度质量的检测方法、指令调度质量的检测装置、电子设备、计算机可读存储介质及计算机程序产品。

2、第一方面,本公开实施例提出了一种指令调度质量的检测方法,包括:从当前轮次检测过程的指令汇编文本中确定出存在依赖关系的指令对,其中,指令汇编文本是对测试用例进行编译得到的,一个指令对包括被依赖指令和依赖指令,依赖关系用于表征响应于执行到依赖指令,根据被依赖指令发起的访存任务的完成状态,阻塞或放行位于依赖指令下游的指令;根据位于被依赖指令和依赖指令之间的目标指令的指令数目,生成预设指标的统计值;根据统计值与预设统计值的比对结果,确定测试用例的质量检测结果。

3、第二方面,本公开实施例提出了一种指令调度质量的检测装置,包括:指令对确定模块、统计值生成模块和检测结果确定模块。其中,指令对确定模块被配置为从当前轮次检测过程的指令汇编文本中确定出存在依赖关系的指令对,指令汇编文本是对测试用例进行编译得到的,一个指令对包括被依赖指令和依赖指令,依赖关系用于表征响应于执行到依赖指令,根据被依赖指令发起的访存任务的完成状态,阻塞或放行位于依赖指令下游的指令;统计值生成模块被配置为根据位于被依赖指令和依赖指令之间的目标指令的指令数目,生成预设指标的统计值;检测结果确定模块被配置为根据统计值与预设统计值的比对结果,确定测试用例的质量检测结果。

4、第三方面,本公开实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的指令调度质量的检测方法。

5、第四方面,本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令被处理器执行时能够实现如第一方面中任一实现方式描述的指令调度质量的检测方法。

6、第五方面,本公开实施例提供了一种包括计算机程序的计算机程序产品,该计算机程序在被处理器执行时能够实现第一方面中任一实现方式描述的指令调度质量的检测方法。

7、根据本公开实施例提供的技术方案,先从当前轮次检测过程的指令汇编文本中确定出存在依赖关系的指令对,其中,指令汇编文本是对测试用例进行编译得到的,一个指令对包括被依赖指令和依赖指令,依赖关系用于表征响应于执行到依赖指令,根据被依赖指令发起的访存任务的完成状态,阻塞或放行位于依赖指令下游的指令;然后,根据位于被依赖指令和依赖指令之间的目标指令的指令数目,生成预设指标的统计值;最后,可以根据统计值与预设统计值的比对结果,确定测试用例的质量检测结果。

8、根据测试用例编译生成的指令汇编文本,自动识别由延迟访存指令与同步等待指令构成的依赖指令对,无需人工逐条梳理汇编指令,大幅降低了人工解析成本,提升了依赖关系提取的自动化程度与识别一致性;然后,通过统计被依赖指令与依赖指令之间的目标指令数量生成标准化预设指标,无需在真实gpu上运行shader,即可计算得到指令对的间距,从而消除了对稀缺gpu硬件资源的依赖,也避免了人工主观评判带来的偏差;最后,将实时指标统计值与预设统计基准进行比对,根据比对结果能够快速区分测试用例的检测价值,自动筛选出可暴露调度缺陷的用例、剔除区分度不足的低效用例,从而优化测试用例集的整体质量,提升了对测试用例的指令调度指令的检测效率,进而提升了后续编译器的性能迭代与缺陷定位的效率。

9、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

1.一种指令调度质量的检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述从当前轮次检测过程的指令汇编文本中确定出存在依赖关系的指令对,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述从所述待匹配栈中获取所述第二指令依赖的第三指令,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述确定位于所述被依赖指令和所述依赖指令之间的所有算术逻辑单元alu指令,包括:

7.根据权利要求5所述的方法,其特征在于,所述确定位于所述被依赖指令和所述依赖指令之间的所有算术逻辑单元alu指令,包括:

8.根据权利要求1所述的方法,其特征在于,所述指令对为多个;所述统计值包括:平均指令值、最小指令值以及指令低于阈值的占比值;以及

9.根据权利要求8所述的方法,其特征在于,所述预设统计值为历史轮次检测过程生成的历史统计值,所述历史统计值包括:历史平均指令值、历史最小指令值以及历史占比值;以及

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,所述根据所述统计值与预设统计值的比对结果,确定所述测试用例的质量检测结果,包括:

12.根据权利要求10所述的方法,其特征在于,所述目标验证结果包括:距离约束验证结果、区间约束验证结果和/或计数约束验证结果;以及

13.根据权利要求12所述的方法,其特征在于,在所述目标验证结果包括所述距离约束验证结果的情况下,所述对所述指令汇编文本进行约束验证,得到目标验证结果,包括:

14.根据权利要求12所述的方法,其特征在于,在所述目标验证结果包括所述区间约束验证结果的情况下,所述对所述指令汇编文本进行约束验证,得到目标验证结果,包括:

15.根据权利要求14所述的方法,其特征在于,在所述目标验证结果包括所述计数约束验证结果的情况下,所述对所述指令汇编文本进行约束验证,得到目标验证结果,包括:

16.根据权利要求9所述的方法,其特征在于,所述方法还包括:

17.根据权利要求16所述的方法,其特征在于,所述统计值还包括:指令值标准差以及填充率;以及

18.根据权利要求17所述的方法,其特征在于,所述历史统计值还包括:历史指令值标准差以及历史填充率;以及

19.根据权利要求10所述的方法,其特征在于,所述方法包括:

20.根据权利要求1-19中任一项所述的方法,其特征在于,所述被依赖指令包括延迟指令,所述依赖指令包括等待指令或等待位掩码非零的alu指令。

21.一种指令调度质量的检测装置,其特征在于,所述装置包括:

22.一种电子设备,其特征在于,包括:

23.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使处理器执行权利要求1-20中任一项所述的指令调度质量的检测方法。

24.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1-20中任一项所述的指令调度质量的检测方法。