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

晶上系统编译器测试方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40942072 阅读:6 留言:0更新日期:2024-04-18 14:59
本发明专利技术涉及晶上系统编译器测试方法、装置、电子设备及存储介质,包括:获取第一测试数据,并根据密码测试算法调用密码算法库对第一测试数据进行处理,以生成预期输出结果。基于MLIR自动生成的第一接口或编译器自定义的第二接口的数据格式,获取源代码。通过编译器前端对源代码进行分析,以生成第一中间表示,从第一中间表中提取满足对应编译器硬件运行特征的算子。对提取出的算子进行优化,得到目标算子,并将源代码中的源算子替换为目标算子,得到优化代码。通过编译器后端对优化代码进行编译,生成对应编译器硬件运行特征的目标指令,并发送至对应编译器硬件进行协同运行。调用FileCheck根据预期输出结果对协同运行结果进行校验,生成编译器测试报告。

【技术实现步骤摘要】

本专利技术涉及晶上系统编译器,特别是涉及一种晶上系统编译器测试方法、装置、电子设备及存储介质


技术介绍

1、晶上系统是一种基于晶圆级集成,并通过软硬件一体化的设计方式构建的新型芯片系统。此外,晶上系统采用完整的晶圆基板来做系统内部各模块的互连底座,用一个密布各种芯粒的晶圆来实现一个完整的系统,各模块之间的连接支持软件定义以及各模块本身的功能,同时也可以支持软件定义。晶上系统从系统角度突破了工艺对提高芯片集成度的限制,降低了芯粒之间通信的能耗,有着极强的灵活性与可扩展性。

2、然而,晶上系统的高灵活性、软件定义化的实现,在底层需要依赖于可重构的计算单元,而在系统层面,则要依靠强大的编译器来进行应用任务的划分、编译和调度,才能充分发挥整个系统的性能。其中,编译器是晶上系统从理论走向实际应用、从硬件走向软硬件一体化的关键一环。针对晶上系统的编译器设计,主要需要关注以下几个环节:

3、(1)硬件感知

4、晶上系统具有计算单元可重构、互联方式可重构的特性,编译器能够获取当前时刻的计算单元的布局、互连方式等信息,是最大化利用系统性能并减少系统开销的前提条件。

5、(2)任务调度

6、根据已知的系统硬件信息、硬件资源状态、应用任务特性,编译器对任务进行合理的分解、调配,将任务拆至不同的计算单元执行。

7、(3)异构编译

8、晶上系统拥有形形色色基于不同计算架构的计算单元,编译器根据调度安排,将划分好的源算子进行编译成目标硬件的机器指令。

9、因此,晶上系统的编译器需要支持多种架构的异构编译和跨平台编译。基于以上三点,晶上系统的编译器设计开发无疑具有极高的复杂度,评估晶上系统编译器的结果正确性、验证晶上系统编译器能够充分发挥系统性能,也成了编译器设计中的核心环节。

10、晶上系统相比于片上系统,较为显著的一个特点是晶上系统拥有更高层次、更细粒度上的异构计算资源。异构计算,即同一个系统中拥有不同指令集、不同体系架构的硬件计算资源,系统通过合理调配,成功使不同特点的资源能够充分发挥其效能。晶上系统的异构计算资源主要包括cpu、gpu、fpga、asic和dsp等,具有异构资源更丰富、资源扩展重构性更强、异构粒度更细等特点。

11、目前,传统编译器的结构可以划分为三个部分:前端接口表示,中间表示层和后端目标指令生成。其中,编译器前端接口表示负责接收以高级语言形式表示的应用程序,并对其进行语法分析、词法分析、语义分析,之后转换为统一格式的中间表示ir(intermediaterepresentation)。中间表示层对ir进行与源代码无关的统一优化工作,主要是将源代码中的各类源算子转换成用于中间表示的目标算子。之后,后端目标指令生成将中间表示翻译成底层硬件所对应的机器指令以用于执行。传统编译器大多是针对同构性硬件进行编译优化,针对多种异构器件难以实现统一编译优化。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够针对多种异构器件实现统一编译优化的晶上系统编译器测试方法、装置、电子设备及存储介质。

2、本专利技术提供了一种晶上系统编译器测试方法,所述方法包括:

3、获取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,所述第一测试数据为编译器测试框架通过随机数自动生成或自定义输入得到的;

4、基于mlir自动生成的第一接口或编译器自定义的第二接口的数据格式,获取源代码,所述源代码为满足所述mlir自动生成的第一接口或编译器自定义的第二接口的数据格式的代码;

5、通过编译器前端对所述源代码进行分析,以生成第一中间表示,并从所述第一中间表示中提取出包括但不仅限于第一算子和第二算子,所述第一算子和第二算子分别为满足不同编译器硬件运行特征的算子;

6、基于所述不同编译器硬件运行特征,分别对所述第一算子和第二算子进行优化,得到第一目标算子和第二目标算子,并将所述源代码中的第一算子和第二算子分别替换为所述第一目标算子和第二目标算子,得到优化代码;

7、通过编译器后端对所述优化代码进行编译,以生成相应的第一目标指令和第二目标指令,并将所述第一目标指令和第二目标指令分别发送至对应运行特征的编译器硬件进行协同运行,得到协同运行结果;

8、调用filecheck基于所述预期输出结果对所述协同运行结果进行校验,得到校验结果,并基于所述校验结果生成编译器测试报告,所述校验结果用于表征所述协同运行结果与预期输出结果是否一致。

9、在其中一个实施例中,所述获取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前包括:

10、基于llvm-lit测试套件搭建编译器测试框架,并对所述第一测试数据的测试路径进行整理,所述编译器测试框架用于支持编译器测试的自动化运行部署;

11、基于所述编译器测试框架构建编译器测试环境,所述编译器测试环境为通过编写lit.cfg以及lit.local.cfg得到的。

12、在其中一个实施例中,所述取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前还包括:

13、根据所述第一测试数据的测试内容,获取编译器测试执行范围,所述编译器测试执行范围至少包括所述第一测试数据执行测试的根目录、所述根目录下不需要执行测试的子目录以及执行测试的文件后缀。

14、在其中一个实施例中,所述密码测试算法至少包括sha1以及sm4密码测试算法,所述密码算法库至少包括openssl以及gmssl密码算法库;

15、所述获取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,包括:

16、根据随机数自动生成数据或自定义输入数据生成批量测试数据,以获取所述第一测试数据;

17、通过sha1或sm4密码测试算法调用openssl或gmssl密码算法库生成所述预期输出结果。

18、在其中一个实施例中,所述第一接口为ciface接口,所述第二接口为#pragma接口;

19、所述基于mlir自动生成的第一接口或编译器自定义的第二接口的数据格式,获取源代码,之后还包括:

20、根据mlir自动生成的ciface接口或编译器自定义的#pragma接口的数据格式对所述源代码进行编译,并判断编译器前端生成的所述第一中间表示是否与所述源代码具有等价语义;以及

21、进一步判断密码测试算法的源算子通过中间表示处理后是否优化生成满足对应编译器硬件运行特征的目标算子,得到第一判断结果;

22、其中,所述源算子至少包括消息填充和哈希映射,所述编译器测试报告还包括所述第一判断结果。

23、在其中一个实施例中,所述调用fileche本文档来自技高网...

【技术保护点】

1.一种晶上系统编译器测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述获取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前包括:

3.根据权利要求2所述的晶上系统编译器测试方法,其特征在于,所述取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前还包括:

4.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述密码测试算法至少包括SHA1以及SM4密码测试算法,所述密码算法库至少包括OpenSSL以及GmSSL密码算法库;

5.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述第一接口为ciface接口,所述第二接口为#pragma接口;

6.根据权利要求5所述的晶上系统编译器测试方法,其特征在于,所述调用FileCheck基于所述预期输出结果对所述协同运行结果进行校验,得到校验结果,并基于所述校验结果生成编译器测试报告,之前还包括:

7.根据权利要求1至6任一项所述的晶上系统编译器测试方法,其特征在于,所述方法还包括:

8.一种晶上系统编译器测试装置,其特征在于,所述装置包括:

9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。

10.一种计算机存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种晶上系统编译器测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述获取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前包括:

3.根据权利要求2所述的晶上系统编译器测试方法,其特征在于,所述取第一测试数据,并根据密码测试算法调用密码算法库对所述第一测试数据进行处理,以生成预期输出结果,之前还包括:

4.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述密码测试算法至少包括sha1以及sm4密码测试算法,所述密码算法库至少包括openssl以及gmssl密码算法库;

5.根据权利要求1所述的晶上系统编译器测试方法,其特征在于,所述第一接口为ciface接口,...

【专利技术属性】
技术研发人员:陈相宇吴春春王士成李征陆晁麒雅李佳桐刘佳兴杨亦力
申请(专利权)人:中国电子科技集团公司第十五研究所
类型:发明
国别省市:

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

1