CN116243883A - 一种测试激励生成方法、测试方法及相关设备 - Google Patents
一种测试激励生成方法、测试方法及相关设备 Download PDFInfo
- Publication number
- CN116243883A CN116243883A CN202310213659.4A CN202310213659A CN116243883A CN 116243883 A CN116243883 A CN 116243883A CN 202310213659 A CN202310213659 A CN 202310213659A CN 116243883 A CN116243883 A CN 116243883A
- Authority
- CN
- China
- Prior art keywords
- test
- floating point
- operand
- target
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请实施例提供一种测试激励生成方法、测试方法及相关设备,所述测试激励生成方法包括:获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;基于所述整型约束界限,产生对应所述目标操作数的随机数;至少基于所述目标操作数的随机数,形成测试激励。本申请实施例能够形成具有验证意义的测试激励,实现精准验证浮点运算单元的运算功能。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种测试激励生成方法、测试方法及相关设备。
背景技术
随着人工智能的快速发展,人们对计算机运算能力的要求越来越高。其中,计算机的运算能力取决于浮点运算单元的浮点运算能力。而随着应用场景的不断丰富,不同的浮点数据类型和操作指令被加入到浮点运算单元,为了验证设计的浮点运算单元对不同浮点数据类型和操作指令的运算均能达到预期,需要使用能够准确验证的测试激励,对浮点运算单元的浮点运算功能进行测试。
但是,目前对浮点运算单元的功能验证,大多是采用随机生成的整型变量,而不能随机化浮点数,从而不能产生对浮点运算单元具有测试意义的测试激励。
发明内容
有鉴于此,本申请实施例提供一种测试激励生成方法、测试方法及相关设备,以产生具有测试意义的测试激励,实现精准验证浮点运算单元的浮点运算功能。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种测试激励生成方法,包括:
获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;
调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;
基于所述整型约束界限,产生对应所述目标操作数的随机数;
至少基于所述目标操作数的随机数,形成测试激励。
可选的,在所述测试方案包括待定操作数时,所述基于所述整型约束界限,产生对应所述目标操作数的随机数之后,还包括:
确定测试方案中待定操作数与所述目标操作数的运算关系;
调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值;
所述至少基于所述目标操作数的随机数,形成测试激励,具体为,基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
可选的,所述浮点数的精度至少包括半精度格式,单精度格式或双精度格式。
第二方面,本申请实施例提供一种测试方法,包括:
获取测试激励,所述测试激励根据如第一方面所述的测试激励生成方法生成;
根据所述测试激励,对浮点运算单元的运算操作进行测试。
可选的,所述根据所述测试激励,对浮点运算单元的运算操作进行测试包括:
将所述测试激励输入到所述浮点运算单元,使所述浮点运算单元对所述测试激励执行所述浮点运算操作,确定所述测试激励对应的实际运算结果;
将所述实际运算结果与模型运算结果相比较,以验证所述浮点运算单元执行的浮点运算操作是否达到预期。
可选的,还包括:
若所述实际运算结果等于所述模型运算结果,确定所述实际运算结果是否满足预设条件,所述预设条件至少包括所述实际运算结果对应的运算次数。
第三方面,本申请实施例还提供一种测试激励生成装置,包括:
获取模块,用于获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;
调用模块,用于调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;
执行模块,用于基于所述整型约束界限,产生对应所述目标操作数的随机数;至少基于所述目标操作数的随机数,形成测试激励。
可选的,在所述获取模块获取的测试方案包括待定操作数时,所述执行模块用于基于所述整型约束界限,产生对应所述目标操作数的随机数之后,还包括:
确定模块,用于确定测试方案中待定操作数与所述目标操作数的运算关系;
所述调用模块,还用于调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值;
所述执行模块,至少基于所述目标操作数的随机数,形成测试激励的步骤,具体为,基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
第四方面,本申请实施例还提供一种测试装置,包括:
获取模块,用于获取测试激励,所述测试激励如上述第三方面所述的测试激励生成装置执行如上述第一方面所述的测试激励生成方法生成;
测试模块,用于根据所述测试激励,对浮点运算单元的运算操作进行测试。
第五方面,本申请实施例还提供一种计算机设备,包括如上述第三方面所述的测试激励生成装置,和/或如上述第四方面所述的测试装置。
第六方面,本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面所述的测试激励生成方法,或者,如上述第二方面所述的测试方法。
本申请实施例所提供的测试激励生成方法、测试方法及相关设备,所述测试激励生成方法中,通过获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围,进而调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示,从而能够基于所述整型约束界限,产生对应所述目标操作数的随机数,至少基于所述目标操作数的随机数,形成测试激励。
可以看出,本申请实施例的测试激励生成方法,通过调用参数转换函数,能够将浮点数类型的目标操作数对应的浮点数范围,转换为整型约束界限,从而在整型约束界限中产生对应目标操作数的随机数,在对浮点运算单元进行浮点运算功能测试时,形成具有验证意义的测试激励,实现精准验证浮点运算单元的运算功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的测试激励生成方法的可选流程图;
图2是本申请实施例提供的测试激励生成方法的又一可选流程图;
图3是本申请实施例提供的测试方法的可选流程示意图;
图4是本申请实施例提供的步骤S32的可选流程示意图;
图5是本申请实施例提供的测试激励生成装置的可选框图;
图6是本申请实施例提供的测试装置的可选框图;
图7是本申请实施例提供的计算机设备的可选框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
通用图形处理器(General-Purpose Graphics Processing Unit,GPGPU),是一种利用处理图形任务的图形处理器来计算原本由中央处理器处理的通用计算任务的处理器,具有强大的并行处理能力和可编程流水线,通常被用来进行复杂的数据计算,如浮点数据计算。
这种功能强大的处理器内部由大规模的并行运算单元组成,上层程序经过编译器会最终解析为运算单元可执行的以二进制或者硬件可以识别格式表示的各种操作指令(Operation Code,opcode)。运算单元执行各种操作指令,即可对操作数执行各种基本运算操作。常见的运算操作包括加法、减法、乘法、除法、求倒数、求余数、求平方根和积和加运算(FMA)等。
其中,对设计的运算单元的验证一直是一个难点,特别是对浮点运算单元的验证。浮点运算单元用于对浮点数进行运算操作。常见的浮点数的精度有半精度(16bit)、单精度(32bit)、双精度(64bit)和扩展双精度(128bit)。以两个单精度的浮点数的操作指令为例,其可能的测试数据组合有232*232=18446744073709551616种,如果一组操作数需要1us的运算时间,那么遍历完所有的操作数空间需要584942年,对于三操作数或者双精度类型,需要的浮点运算单元的测试空间会更大。但是,目前通常采用随机产生操作数的方式对浮点运算单元的浮点运算功能进行验证,而随机产生操作数的方式只能随机生成整型变量,无法做到以有意义的浮点数作为测试参数,对浮点运算单元的测试空间进行约束控制,从而无法对浮点运算单元的浮点运算功能进行精准验证,对浮点运算单元进行验证时,测试的时间会非常长。
基于此,本申请实施例提供了一种测试激励生成方法、测试方法及相关设备,以实现对运算单元的运算功能进行针对性的验证。
作为本申请实施例公开内容的一种可选实现,本申请实施例提供的测试激励生成方法,能够生成浮点运算单元的测试激励,以实现对浮点运算单元运算的精准验证。图1示例性的示出了测试激励生成方法的可选流程图,如图1所示,可以包括如下步骤:
步骤S10,获取测试方案。
可以理解的是,测试方案对应于对浮点运算单元的浮点运算功能进行验证的测试要求,则所述测试方案可以至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数指的是在浮点运算单元的浮点运算功能进行验证的测试过程中需要的目标数据,例如对浮点运算单元的加法运算功能进行验证,浮点运算单元需要执行一个加法指令(add),则需要对应于加数和被加数的两个目标操作数,在一个具体示例中,所述目标操作数可以表示为src_a、src_b、src_c。在对浮点运算单元的浮点运算功能验证时,所述目标操作数的数据类型可以为浮点数类型。所述目标参数范围指的是在浮点运算单元的浮点运算功能进行验证的测试过程中的目标操作数选择范围,所述目标参数范围可以为浮点数范围,即具有测试意义的浮点数范围。
在一些实施例中,浮点数的精度可以至少包括半精度格式,单精度格式或双精度格式。其中,半精度格式可以表示为F16(Float16),单精度格式可以表示为F32(Float32),双精度格式可以表示为F64(Float64)。在一个可选示例中,浮点数的精度还可以为其他各种精度的浮点数据格式,例如基于深度学习开发的BF16(BFloat16或Brain Float16)格式、TF32(Tensor Float 32)格式。
步骤S12,调用参数转换函数,将目标参数范围转换为整型约束界限。
其中,所述整型约束界限可以为所述目标参数范围的整型表示。
需要说明的是,对浮点运算单元的功能验证是基于UVM(Universal VerificationMethodology,通用验证方法学)的验证平台,UVM是基于SV语言(SystemVerilog)开发的通用验证框架,通过SV的约束实现UVM的随机功能。但是SV只能约束整型格式的数据,因此,受SV语言特性的限制,基于UVM的验证平台不能进行复杂的浮点数学运算。基于此,可以利用DPI(Direct Programming Interface,直接编程接口)接口,使得SV可以在UVM一侧实时调用其他编程语言例如调用C++函数,实现SV和其他编程语言之间的相互调用,其中,C++函数是基于C语言进行开发的,遵照IEEE设计的浮点数规则,可以针对各种浮点数据类型和浮点运算指令进行函数调用,有效解决由于SV语言特性的限制导致UVM的验证平台不能进行复杂的浮点数学运算的问题,从而,SV通过调用C++的参数转换函数,能够将目标参数范围转换为整型约束界限。
在一个可选示例中,可以通过测试用例进行参数输入,在SV侧输入具有测试意义的目标参数范围,以src0_low_f和src0_high_f对目标参数范围进行表示,其中,src0_low_f表示目标参数范围的下界,src0_high_f表示目标参数范围的上界,SV通过DPI接口调用C++的参数转换函数,确定其对应的无符号数的整型表示形式,对应的操作指令为:
src0_low_i=float2hex_dpi(src0_low_f)
src0_high_i=float2hex_dpi(src0_high_f)
在SV侧进行约束时,通过上下界限能够约束目标参数范围的随机范围,对应的操作指令为:
Constraint src0_c{
Src0>src0_low_i;
Src0<src0_high_i;
}
在一个具体示例中,SV获取的测试方案中目标参数范围为pi~3*pi,通过调用参数转换函数,转换为16进制的单精度(F32)整型约束界限和双精(F64)整型约束界限,如表1所示:
input | F32 | F64 |
3.14159(pi) | 0x40490fd0 | 0x400921f9f01b866e |
9.42477(3*pi) | 0x4116cbdc | 0x4022d97b7414a4d2 |
表1
需要说明的是,对于单精度格式、半精度格式或者双精度格式等的浮点数,可以基于C++的原有参数转换函数,进行目标参数范围的转换,而根据测试需求,对于在AI的应用场景下的其他浮点数据格式,例如BF16格式、TF32格式等,可以利用对应于浮点数据格式所开发的参数转换函数进行转换,例如将BF16的浮点数,转换为BF16格式的16进制整型表示。
步骤S14,基于整型约束界限,产生对应目标操作数的随机数。
在一个可选示例中,可以在如表1所示的单精度整型约束界限中,随机选择对应目标操作数的随机数,对应的操作指令为:
Src_a=src_a.random with{src_a>low_limt;src_a<max_limit};
其中,Src_a为目标操作数的随机数。
步骤S16,形成测试激励。
其中,所述测试激励可以是至少基于所述目标操作数的随机数形成的。
需要说明的是,本申请实施例形成的测试激励为整型格式,浮点运算单元对应的输入数据类型可以为整型格式,并且,对于计算机的运算硬件来说,执行的是bit数据流的运算命令,因此,形成的测试激励保证了整型格式数据的单调性和对应浮点数的单调性的一致性。另外,本申请实施例基于浮点数的整型约束界限,产生对应目标操作数的随机操作数仅是一种可选实现,也可以根据实际测试需求进行函数调用,以基于对应于当前测试场景的其他约束方式,产生对应目标操作数的随机操作数。
可以看出,本申请实施例通过调用参数转换函数,能够将浮点数类型的目标操作数对应的浮点数范围,转换为整型约束界限,从而在整型约束界限中产生对应目标操作数的随机数,在对浮点运算单元进行浮点运算功能测试时,形成具有验证意义的测试激励,实现精准验证浮点运算单元的运算功能。
在一些实施例中,SV侧获取的测试方案还可以包括待定操作数,其中,所述待定操作数可以是在约束条件下的操作数,例如32位浮点加法,测试方案为产生和为32最小规约化数的激励(Op is fadd),则所述待定操作数可以为依据最大的浮点数32确定的操作数。其中图2示例性的示出了本申请实施例的测试激励生成方法的又一可选流程图,如图2所示,在所述测试方案包括待定操作数时,在步骤S14之后还可以包括:
步骤S151,确定测试方案中待定操作数与所述目标操作数的运算关系。
以32位浮点加法为例,根据测试方案为产生和为32最小规约化数的激励Op isfadd,确定的测试方案中待定操作数与所述目标操作数的运算关系为y=src_a+src_b,其中,y为32,src_a为目标操作数,src_b为待定操作数。
步骤S152,调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值。
继续以32位浮点加法为例,其中最大的32浮点数表示为max_f32=0xff7f_ffff,在如表1中16进制的单精度(F32)整型约束界限中,随机生成src_a,并通过DPI接口调用C++函数一侧的运算函数,所述运算函数为浮点运算函数,从而得到src_b的结果,即待定操作数的值。其中,对应的操作指令为:Src_b=op_dpi(op,result,src_a)。
相应的,在测试方案包括待定操作数的情况下,步骤S16可以具体为:基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
其中,表2是为测试激励对应的一组测试空间集的可选示例,src_a是受整型约束界限约束的随机数,即目标操作数的随机数;src_b是以浮点结果为约束的待定操作数,所述浮点结果例如和为32最小规约化数。如表2所示:
表2
可以理解的是,根据不同指令运算关系,能够确定相应的运算函数,以及其对应的逆运算,进而可以基于运算结果实现约束激励,满足在不同约束条件下,产生具有验证意义的测试激励,得到对应于当前测试场景的操作数,例如对于tensor core(矩阵乘累加)运算,基于本申请实施例的测试激励生成方法,能够一次生产矩阵中所有的元素。
需要说明的是,本申请实施例中是以整型约束界限对目标操作数的随机数的选择进行解释说明,目标操作数的随机数也可以根据实际需求进行对应选择,本申请实施例对此并不进行限制。另外,本申请实施例中是以计算结果为约束条件,对测试激励的形成过程进行举例说明,测试激励也可以根据其他约束条件得到,而且,测试激励也可以对应于多个操作数,本申请实施例仅以两个操作数为例进行说明。
可以看出,本申请实施例通过调用参数转换函数,能够将浮点数类型的目标操作数对应的浮点数范围,转换为整型约束界限,从而在整型约束界限中产生对应目标操作数的随机数,在对浮点运算单元进行浮点运算功能测试时,形成具有验证意义的测试激励,进而实现精准验证浮点运算单元的浮点运算功能。
作为本申请实施例公开内容的一种可选实现,本申请实施例提供了一种测试方法,以基于上述测试激励生成方法形成的测试激励对浮点运算单元的浮点运算功能进行精准验证。参考图3所示的测试方法的可选流程示意图,可以包括如下步骤:
步骤S30,获取测试激励。
所述测试激励可以是根据上述测试激励生成方法生成的,具有测试意义的测试激励,例如:表1中对应pi~3*pi的目标参数范围所转换的单精度整型约束界限内产生的随机操作数,或者如表2中的Src_a和Src_b。其中,对于测试激励的生成过程本申请实施例不进行过多赘述。
步骤S32,根据所述测试激励,对浮点运算单元的运算操作进行测试。
需要说明的是,本申请实施例的测试方法可以用于评估由RTL(RegisterTransfer Level,寄存器传输级)硬件实现的浮点运算单元的浮点运算功能,也可以用于评估由其他硬件实现的浮点运算单元,例如由FPGA
(Field-Programmable Gate Array,即现场可编程门阵列)实现的浮点运算单元的浮点运算功能。并且,对于各种opcode算法参考模型的评估也同样适用,例如由C++实现的参考模型的评估。
可以看出,本申请实施例在对浮点运算单元进行浮点运算功能测试时,通过利用测试激励生成方法生成的具有验证意义的测试激励,能够实现对浮点运算单元的浮点运算功能进行精准验证。
在一些实施例中,对浮点运算单元的浮点运算功能的验证可以是以浮点运算参考模型的浮点运算结果为基准实现的,其中,图4示例性的示出了本申请实施例中步骤S32的可选流程示意图,如图4所示,可以包括:
步骤S321,将所述测试激励输入到浮点运算单元,确定所述测试激励对应的实际运算结果。
作为一种可选实现,在将测试激励输入到浮点运算单元的同时,也可以将测试激励输入到与浮点运算单元对应的测试模型,所述测试模型用于验证浮点运算单元的浮点运算结果。
步骤S322,将所述实际运算结果与模型运算结果相比较,以验证所述浮点运算单元执行的浮点运算操作是否达到预期。
需要说明的是,被测试的浮点运算单元和参考模型的输入数据类型均为整型格式,或者16进制的数据格式等,并且基于上述测试激励生成方法生成的测试激励保证了整型格式数据的单调性和对应浮点数的单调性的一致性。
在一些实施例中,当实际运算结果与模型运算结果相比较之后,若实际运算结果与模型运算结果不同,则报告错误,确定浮点运算单元的浮点运算结果不准确;若实际运算结果与模型运算结果相同,则可以执行下一步骤。
继续参考图4所示,还可以包括步骤S323,确定所述实际运算结果是否满足预设条件。
其中,所述预设条件可以至少包括所述实际运算结果对应的运算次数。在一可选示例中,预设条件中所述实际运算结果对应的运算次数可以是预先设置的运算次数的最大值,在运算次数满足条件的前提下,通过确定浮点运算单元的实际运算结果正确情况下的覆盖率,确定对浮点运算单元的验证有效,并且验证完毕。
测试的浮点运算单元可以表示为dut(design under testing),参考模型可以表示为ref(ref model),在一个可选示例中,当得到的运算结果中dut=ref,并且确定dut的运算结果满足预设条件,即达到最大运算次数,则对浮点运算单元的测试确定为符合预期;在另一个可选示例中,当得到的运算结果中dut不等于ref,则报错,对浮点运算单元的测试确定为不符合预期;在又一个可选示例中,当得到的运算结果中dut=ref,而确定dut的运算结果不满足预设条件,则继续执行对dut的测试,直至得到的运算结果中dut=ref,且dut的运算结果满足预设条件。
需要说明的是,对于浮点运算功能可以是经过多轮回归测试,利用不同测测试空间集进行的测试,基于浮点运算单元的运算结果的覆盖率,确定对浮点运算单元的浮点运算功能验证完毕。
下面从装置的角度,对本申请实施例提供的测试激励生成装置进行介绍,下文描述的装置内容可以认为是为实现本申请实施例提供的测试激励生成方法,所需设置的功能模块。下文描述的内容可与上文描述内容相互对应参照。
作为可选实现,图5示例性的示出了本申请实施例提供的测试激励生成装置的可选框图,参照图5,该装置可以包括:
获取模块51,用于获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;
调用模块52,用于调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;
执行模块53,用于基于所述整型约束界限,产生对应所述目标操作数的随机数;至少基于所述目标操作数的随机数,形成测试激励。
可选的,在所述获取模块51获取的测试方案包括待定操作数时,所述执行模块53,用于基于所述整型约束界限,产生对应所述目标操作数的随机数之后,还包括:
确定模块54,用于确定测试方案中待定操作数与所述目标操作数的运算关系;
所述调用模块52,还用于调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值;
所述执行模块53,至少基于所述目标操作数的随机数,形成测试激励的步骤,具体为,基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
可选的,获取模块51获取的所述目标操作数的浮点数据的精度至少包括半精度格式,单精度格式或双精度格式。
下面从装置的角度,对本申请实施例提供的测试装置进行介绍,下文描述的装置内容可以认为是为实现本申请实施例提供的测试方法,所需设置的功能模块。下文描述的内容可与上文描述内容相互对应参照。
作为可选实现,图6示例性的示出了本申请实施例提供的测试装置的可选框图,参照图6,该装置可以包括:
激励获取模块61,用于获取测试激励,所述测试激励如上述所述的测试激励生成装置执行如上述所述的测试激励生成方法生成;
测试模块62,用于根据所述测试激励,对浮点运算单元的运算操作进行测试。
可选的,所述测试模块62,根据所述测试激励,对浮点运算单元的运算操作进行测试的步骤包括:
将所述测试激励输入到所述浮点运算单元,确定所述测试激励对应的实际运算结果;
将所述实际运算结果与模型运算结果相比较,以验证所述浮点运算单元执行的浮点运算操作是否达到预期。
可选的,所述测试模块62,根据所述测试激励,对浮点运算单元的运算操作进行测试的步骤还包括:
若所述实际运算结果等于所述模型运算结果,确定所述实际运算结果是否满足预设条件,所述预设条件至少包括所述实际运算结果对应的运算次数。
本申请实施例还提供一种计算机设备,该计算机设备可以通过设置上述描述的测试激励生成装置,和/或,上述描述的测试装置,以实现本申请实施例提供的测试激励生成方法,和/或,测试方法。作为可选实现,图7为本申请实施例提供的计算机设备的可选框图,如图7所示,该计算机设备可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
可选的,通信接口2可以为用于进行网络通信的通信模块的接口。
可选的,处理器1可能是CPU(中央处理器),GPU(Graphics Processing Unit,图形处理器),NPU(嵌入式神经网络处理器),FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),TPU(张量处理单元),AI芯片,特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器3存储一条或多条计算机可执行指令,处理器1调用所述一条或多条计算机可执行指令,以执行本申请实施例的测试激励生成方法,和/或,测试方法。
本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如本申请实施例的测试激励生成方法,或者,如本申请实施例的测试方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种测试激励生成方法,其特征在于,包括:
获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;
调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;
基于所述整型约束界限,产生对应所述目标操作数的随机数;
至少基于所述目标操作数的随机数,形成测试激励。
2.根据权利要求1所述的测试激励生成方法,其特征在于,在所述测试方案包括待定操作数时,所述基于所述整型约束界限,产生对应所述目标操作数的随机数之后,还包括:
确定测试方案中待定操作数与所述目标操作数的运算关系;
调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值;
所述至少基于所述目标操作数的随机数,形成测试激励,具体为,基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
3.根据权利要求1所述的测试激励生成方法,其特征在于,所述浮点数的精度至少包括半精度格式,单精度格式或双精度格式。
4.一种测试方法,其特征在于,包括:
获取测试激励,所述测试激励根据如权利要求1-3任一项所述的测试激励生成方法生成;
根据所述测试激励,对浮点运算单元的运算操作进行测试。
5.根据权利要求4所述的测试方法,其特征在于,所述根据所述测试激励,对浮点运算单元的运算操作进行测试包括:
将所述测试激励输入到所述浮点运算单元,确定所述测试激励对应的实际运算结果;
将所述实际运算结果与模型运算结果相比较,以验证所述浮点运算单元执行的浮点运算操作是否达到预期。
6.根据权利要求5所述的测试方法,其特征在于,还包括:
若所述实际运算结果等于所述模型运算结果,确定所述实际运算结果是否满足预设条件,所述预设条件至少包括所述实际运算结果对应的运算次数。
7.一种测试激励生成装置,其特征在于,包括:
获取模块,用于获取测试方案,所述测试方案至少包括目标操作数及其对应的目标参数范围,其中,所述目标操作数的数据类型为浮点数类型,所述目标参数范围为浮点数范围;
调用模块,用于调用参数转换函数,将所述目标参数范围转换为整型约束界限,所述整型约束界限为所述目标参数范围的整型表示;
执行模块,用于基于所述整型约束界限,产生对应所述目标操作数的随机数;至少基于所述目标操作数的随机数,形成测试激励。
8.根据权利要求7所述的测试激励生成装置,其特征在于,在所述获取模块获取的测试方案包括待定操作数时,所述执行模块用于基于所述整型约束界限,产生对应所述目标操作数的随机数之后,还包括:
确定模块,用于确定测试方案中待定操作数与所述目标操作数的运算关系;
所述调用模块,还用于调用运算函数,基于所述目标操作数的随机数和所述运算关系,确定所述待定操作数的值;
所述执行模块,至少基于所述目标操作数的随机数,形成测试激励的步骤,具体为,基于所述目标操作数的随机数和所述待定操作数的值,形成测试激励。
9.一种测试装置,其特征在于,包括:
获取模块,用于获取测试激励,所述测试激励如权利要求7所述的测试激励生成装置执行如权利要求1-3任一项所述的测试激励生成方法生成;
测试模块,用于根据所述测试激励,对浮点运算单元的运算操作进行测试。
10.一种计算机设备,其特征在于,包括如权利要求7-8任一项所述的测试激励生成装置,和/或如权利要求9所述的测试装置。
11.一种存储介质,其特征在于,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如权利要求1-3任一项所述的测试激励生成方法,或者,如权利要求4-6任一项所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213659.4A CN116243883A (zh) | 2023-03-07 | 2023-03-07 | 一种测试激励生成方法、测试方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213659.4A CN116243883A (zh) | 2023-03-07 | 2023-03-07 | 一种测试激励生成方法、测试方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116243883A true CN116243883A (zh) | 2023-06-09 |
Family
ID=86627592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310213659.4A Pending CN116243883A (zh) | 2023-03-07 | 2023-03-07 | 一种测试激励生成方法、测试方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116243883A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873904A (zh) * | 2024-03-07 | 2024-04-12 | 之江实验室 | 基于t-分布鲸鱼优化算法生成浮点数测试激励方法和装置 |
CN117873900A (zh) * | 2024-02-02 | 2024-04-12 | 摩尔线程智能科技(北京)有限责任公司 | 芯片功能测试方法、装置和存储介质 |
-
2023
- 2023-03-07 CN CN202310213659.4A patent/CN116243883A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873900A (zh) * | 2024-02-02 | 2024-04-12 | 摩尔线程智能科技(北京)有限责任公司 | 芯片功能测试方法、装置和存储介质 |
CN117873904A (zh) * | 2024-03-07 | 2024-04-12 | 之江实验室 | 基于t-分布鲸鱼优化算法生成浮点数测试激励方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116243883A (zh) | 一种测试激励生成方法、测试方法及相关设备 | |
Eftimov et al. | A novel statistical approach for comparing meta-heuristic stochastic optimization algorithms according to the distribution of solutions in the search space | |
US7302656B2 (en) | Method and system for performing functional verification of logic circuits | |
CN104854465B (zh) | 使用数据相依性电路路径响应的唯一且不可仿制的平台识别符 | |
CN111178512B (zh) | 器件运行神经网络的测试方法及装置 | |
EP3846034B1 (en) | Systems and methods for automated testing using artificial intelligence techniques | |
WO2020112025A1 (en) | Method and system for generating training data for a machine learning model for predicting performance in electronic design | |
CN113592095B (zh) | 一种基于量子计算的模型训练方法及装置 | |
EP3944105A1 (en) | Systems and methods for design parameter selection | |
CN104573277A (zh) | 一种车辆悬架系统性能分解方法 | |
CN104615808B (zh) | 一种待测试硬件运算部件的测试方法及参考模型装置 | |
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
Chien et al. | Posit NPB: Assessing the precision improvement in HPC scientific applications | |
CN114819168B (zh) | 一种矩阵特征值的量子比较方法及装置 | |
US8881075B2 (en) | Method for measuring assertion density in a system of verifying integrated circuit design | |
Kloberdanz et al. | DeepStability: A study of unstable numerical methods and their solutions in deep learning | |
CN116166967B (zh) | 基于元学习与残差网络的数据处理方法、设备和存储介质 | |
US20160292064A1 (en) | Iterative test generation based on data source analysis | |
Ferro et al. | Neural network precision tuning using stochastic arithmetic | |
CN112712181A (zh) | 模型构建优化方法、装置、设备和可读存储介质 | |
CN116168403A (zh) | 医疗数据分类模型训练方法、分类方法、装置及相关介质 | |
CN109933948B (zh) | 一种形式验证方法、装置、形式验证平台及可读存储介质 | |
JP2019185301A (ja) | 演算器の検証装置 | |
Keszocze et al. | Aarith: an arbitrary precision number library | |
Tsarapkina et al. | Exploring rounding errors in Matlab using extended precision |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |