System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() GPU编译器的测试方法、装置及存储介质制造方法及图纸_技高网

GPU编译器的测试方法、装置及存储介质制造方法及图纸

技术编号:40821442 阅读:5 留言:0更新日期:2024-04-01 14:40
本公开涉及计算机软件测试技术领域,尤其涉及一种GPU编译器的测试方法、装置及存储介质。所述方法包括:获取所述GPU的内核函数池和概率状态转移表,所述内核函数池包括多个语法,所述概率状态转移表用于指示所述多个语法各自推导出其他语法的概率;根据所述内核函数池和所述概率状态转移表,生成所述GPU编译器的测试程序;根据所述测试程序对所述GPU编译器进行测试。本公开实施例通过根据内核函数池和概率状态转移表,自动生成GPU编译器的测试程序,提高了GPU编译器的测试程序的构建效率和质量,不但能节约了时间成本和人力成本,还可以利用其随机性构造更多多样性的程序,从而去发现深层次编译器问题。

【技术实现步骤摘要】

本公开涉及计算机软件测试,尤其涉及一种图形处理器(graphicsprocessing unit,gpu)编译器的测试方法、装置及存储介质。


技术介绍

1、gpu编译器是指能够利用gpu的高并发计算能力编译代码的编译器。gpu编译器可以在短时间内编译出计算表达式的目标代码,可以加速程序运行速度。gpu编译器编译结果的准确性是保证程序正常运行的前提。如果编译器有问题,可能导致生成可执行程序的行为与源程序语义不一致,使得程序出现意想不到的错误,这种错误对应用程序开发人员来讲,不容易被检测和发现,容易导致重大的网上事故,因此gpu编译器可靠性十分关键,对gpu编译器的系统化测试和质量保证也变得至关重要。

2、相关技术中,通常采用测试用例来测试gpu编译器,具体来说,测试人员需要手动编写用于测试gpu编译器的测试用例,gpu编译器对测试用例进行编译并生成执行结果,借助测试工具验证执行结果与预期结果是否一致。

3、但是在上述方法中,对gpu编译器进行测试时,测试人员需要额外编写测试用例,程序构建效率低,用例质量不高。


技术实现思路

1、有鉴于此,本公开提出了一种gpu编译器的测试方法、装置及存储介质。所述技术方案包括:

2、根据本公开的一方面,提供了一种gpu编译器的测试方法,所述方法包括:

3、获取所述gpu的内核函数池和概率状态转移表,所述内核函数池包括多个语法,所述概率状态转移表用于指示所述多个语法各自推导出其他语法的概率;

4、根据所述内核函数池和所述概率状态转移表,生成所述gpu编译器的测试程序;

5、根据所述测试程序对所述gpu编译器进行测试。

6、在一种可能的实现方式中,所述根据所述内核函数池和所述概率状态转移表,生成所述gpu编译器的测试程序,包括:

7、根据所述概率状态转移表和所述内核函数池,生成所述gpu设备端的内核函数;

8、根据所述gpu设备端的内核函数和中央处理器(central processing unit,cpu)主机端的主函数,生成所述gpu编译器的测试程序。

9、在另一种可能的实现方式中,所述根据所述概率状态转移表和所述内核函数池,生成所述gpu设备端的内核函数,包括:

10、将所述内核函数池中的所述多个语法,按照所述概率状态转移表进行随机组合,生成所述gpu设备端的内核函数。

11、在另一种可能的实现方式中,所述根据所述gpu设备端的内核函数和cpu主机端的主函数,生成所述gpu编译器的测试程序,包括:

12、对所述内核函数进行变异;

13、将所述主函数与变异后的所述内核函数进行组合,并将所述主函数与未变异的所述内核函数进行组合,得到所述gpu编译器的测试程序。

14、在另一种可能的实现方式中,所述对所述内核函数进行变异,包括:

15、对所述内核函数进行语义等效变异,所述语义等效变异用于指示将所述内核函数中的死代码进行删除和/或在所述内核函数中添加死代码。

16、在另一种可能的实现方式中,所述对所述内核函数进行变异,包括:

17、确定所述内核函数对应的抽象语法树(abstract syntax code,ast);

18、根据所述概率状态转移表,对所述抽象语法树的子树进行随机变异。

19、在另一种可能的实现方式中,所述获取所述gpu的内核函数池和概率状态转移表之前,还包括:

20、根据测试用例集生成所述概率状态转移表,所述测试用例集包括历史测试中出错的多个测试用例。

21、在另一种可能的实现方式中,所述概率状态转移表用于指示第一语法、第二语法与状态转移概率值之间的对应关系,所述状态转移概率值为所述第一语法推导出所述第二语法的概率值,所述第二语法不同于所述第一语法。

22、在另一种可能的实现方式中,所述获取所述gpu的内核函数池和概率状态转移表之前,还包括:

23、根据预设规则生成所述gpu的所述内核函数池,所述预设规则包括上下文无关方法和/或计算统一设备架构(compute unified device architecture,cuda)语言文法规则。

24、在另一种可能的实现方式中,所述内核函数池还包括多个标识符,所述标识符用于指示线程组织方式、内存管理模型、函数限定标识符、数据类型、内存栅栏与线程同步、原子操作中的至少一种。

25、在另一种可能的实现方式中,所述根据所述测试程序对所述gpu编译器进行测试,包括:

26、根据所述测试程序,采用差分测试的方式对所述gpu编译器进行测试。

27、根据本公开的另一方面,提供了一种gpu编译器的测试装置,所述装置包括:

28、获取模块,用于获取所述gpu的内核函数池和概率状态转移表,所述内核函数池包括多个语法,所述概率状态转移表用于指示多个语法各自推导出其他语法的概率;

29、生成模块,用于根据所述内核函数池和所述概率状态转移表,生成所述gpu编译器的测试程序;

30、测试模块,用于根据所述测试程序对所述gpu编译器进行测试。

31、在一种可能的实现方式中,所述生成模块,还用于:

32、根据所述概率状态转移表和所述内核函数池,生成所述gpu设备端的内核函数;

33、根据所述gpu设备端的内核函数和cpu主机端的主函数,生成所述gpu编译器的测试程序。

34、在另一种可能的实现方式中,所述生成模块,还用于:

35、将所述内核函数池中的所述多个语法,按照所述概率状态转移表进行随机组合,生成所述gpu设备端的内核函数。

36、在另一种可能的实现方式中,所述生成模块,还用于:

37、对所述内核函数进行变异;

38、将所述主函数与变异后的所述内核函数进行组合,并将所述主函数与未变异的所述内核函数进行组合,得到所述gpu编译器的测试程序。

39、在另一种可能的实现方式中,所述生成模块,还用于:

40、对所述内核函数进行语义等效变异,所述语义等效变异用于指示将所述内核函数中的死代码进行删除和/或在所述内核函数中添加死代码。

41、在另一种可能的实现方式中,所述生成模块,还用于:

42、确定所述内核函数对应的抽象语法树;

43、根据所述概率状态转移表,对所述抽象语法树的子树进行随机变异。

44、在另一种可能的实现方式中,所述装置还包括:概率状态转移表生成模块,用于:

45、根据测试用例集生成所述概率状态转移表,所述测试用例集包括历史测试中出错的多个测试用例。

46、在另一种可能的实现方式中,所述概率状态转移表用于指示第一语法、第二语法与状态转移概率值之间的对应关系,所述状态转移概率值为所述第一语法推本文档来自技高网...

【技术保护点】

1.一种图形处理器GPU编译器的测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述内核函数池和所述概率状态转移表,生成所述GPU编译器的测试程序,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述概率状态转移表和所述内核函数池,生成所述GPU设备端的内核函数,包括:

4.根据权利要求2所述的方法,其特征在于,所述根据所述GPU设备端的内核函数和中央处理器CPU主机端的主函数,生成所述GPU编译器的测试程序,包括:

5.根据权利要求4所述的方法,其特征在于,所述对所述内核函数进行变异,包括:

6.根据权利要求4所述的方法,其特征在于,所述对所述内核函数进行变异,包括:

7.根据权利要求1至6任一所述的方法,其特征在于,所述获取所述GPU的内核函数池和概率状态转移表之前,还包括:

8.根据权利要求1至6任一所述的方法,其特征在于,所述概率状态转移表用于指示第一语法、第二语法与状态转移概率值之间的对应关系,所述状态转移概率值为所述第一语法推导出所述第二语法的概率值,所述第二语法不同于所述第一语法。

9.根据权利要求1至6任一所述的方法,其特征在于,所述获取所述GPU的内核函数池和概率状态转移表之前,还包括:

10.根据权利要求1至6任一所述的方法,其特征在于,所述根据所述测试程序对所述GPU编译器进行测试,包括:

11.一种GPU编译器的测试装置,其特征在于,所述装置包括:

12.一种计算设备,其特征在于,所述计算设备包括:处理器;用于存储处理器可执行指令的存储器;

13.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至10中任意一项所述的方法。

...

【技术特征摘要】

1.一种图形处理器gpu编译器的测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述内核函数池和所述概率状态转移表,生成所述gpu编译器的测试程序,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述概率状态转移表和所述内核函数池,生成所述gpu设备端的内核函数,包括:

4.根据权利要求2所述的方法,其特征在于,所述根据所述gpu设备端的内核函数和中央处理器cpu主机端的主函数,生成所述gpu编译器的测试程序,包括:

5.根据权利要求4所述的方法,其特征在于,所述对所述内核函数进行变异,包括:

6.根据权利要求4所述的方法,其特征在于,所述对所述内核函数进行变异,包括:

7.根据权利要求1至6任一所述的方法,其特征在于,所述获取所述gpu的内核函数池和概率状态转移表之前,还包括:

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1