本发明涉及人工智能,具体涉及一种用于芯片验证的方法及计算设备。
背景技术:
1、随着深度学习的快速发展,深度卷积神经网络在很多场景中得到广泛的应用。其中,在各个网络模型的指标中,都离不开浮点数的运算能力,也就是flops(floating pointoperations per second),作为评估性能强弱的标准之一。在ai芯片验证过程中,针对浮点数的随机化验证也是至关重要。基于uvm的验证平台,系统自带的随机化函数无法满足浮点数的需求。
2、为此,需要一种技术方案,能够实现随机生成均匀分布的浮点数。
技术实现思路
1、本申请旨在提供用于芯片验证的方法及计算设备,能够实现在预定范围内产生验证平台所需的随机浮点数。
2、根据本申请的一方面,提供一种用于芯片验证的方法,所述方法基于uvm统一验证平台,包括:
3、设置验证环境,根据测试需求继承于验证环境而生成各组测试实例;
4、根据所述测试需求,在第一约束的数据范围内随机出至少两个第一浮点数;
5、根据所述第一约束的数据范围及所述至少两个第一浮点数,得到第二约束条件并基于所述第二约束条件获取相应的第二浮点数;
6、将所述第二浮点数通过系统函数产生预定格式的随机浮点数;
7、将所述预定格式的随机浮点数用于所述各组测试实例的验证。
8、根据一些实施例,所述得到第二约束条件并基于所述第二约束条件获取相应的第二浮点数,包括:
9、将所述至少两个第一浮点数扩大n倍成为整数类型,其中n为整数,且所述整数类型的和为第一整数特定值;
10、在所述第一整数特定值的范围内随机出相应数量的整数随机数;
11、所述整数随机数缩小n倍,得到对应所述至少两个第一浮点数相应数量的第二浮点数。
12、根据一些实施例,在第一约束的数据范围内随机出至少两个第一浮点数,包括:在所述数据范围产生平均分布、指数衰落或钟型分布的随机数。
13、根据一些实施例,所述随机数的产生通过硬件验证语言systemverilog约束。
14、根据一些实施例,所述预定格式的随机浮点数为32位和/或16位二进制格式。
15、根据一些实施例,所述第二约束与所述第一约束具有不同的数据类型和/或不同的数据范围。
16、根据一些实施例,所述测试实例由测试用例根据具体需求配置调用。
17、根据一些实施例,在所述验证环境中验证时,所述浮点数以十进制进行运算,验证结束后转换成32位和/或16位数据格式。
18、根据一些实施例,在第一约束的数据范围内随机出至少两个第一浮点数,包括:通过限制条件、随机边界、和/或随机权重来实现随机。
19、根据一些实施例,与所述至少两个第一浮点数对应的所述随机浮点数作为预定运算的权重系数,所述权重系数的和为预定值。
20、根据一些实施例,所述预定值为1。
21、根据本申请的另一方面,提供一种计算设备,包括:
22、处理器;以及
23、存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
24、根据本申请的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
25、根据本申请的实施例,通过设定第一约束生成第一浮点数,将第一浮点数扩大n倍成为整数类型,在第一整数特定值的范围内随机出相应数量的整数随机数,将整数随机数缩小n倍,得到对应所述第一浮点数相应数量的第二浮点数,经过系统函数转换产生预定格式的随机浮点数,可以在产生浮点数之前,先将其扩大n倍成整数,将整数进行随机化,进而可以随机生成均匀分布的数据,达到在平台内产生随机化的浮点数的功能。
26、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
1.一种用于芯片验证的方法,所述方法基于统一验证平台,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述得到第二约束条件并基于所述第二约束条件获取相应的第二浮点数,包括:
3.根据权利要求1所述的方法,其特征在于,在第一约束的数据范围内随机出至少两个第一浮点数,包括:在所述数据范围产生平均分布、指数衰落或钟型分布的随机数。
4.根据权利要求3所述的方法,其特征在于,所述随机数的产生通过硬件验证语言约束。
5.根据权利要求1所述的方法,其特征在于,所述第二约束与所述第一约束具有不同的数据类型和/或不同的数据范围。
6.根据权利要求5所述的方法,其特征在于,所述测试实例由测试用例根据具体需求配置调用。
7.根据权利要求1所述的方法,其特征在于,在第一约束的数据范围内随机出至少两个第一浮点数,包括:
8.根据权利要求1所述的方法,其特征在于,与所述至少两个第一浮点数对应的随机浮点数作为预定运算的权重系数,所述权重系数的和为预定值。
9.根据权利要求8所述的方法,其特征在于,所述预定值为1。
10.一种计算设备,其特征在于,包括: