一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片、芯片压力测试方法、装置、电子设备及存储介质与流程

2022-02-19 12:10:22 来源:中国专利 TAG:


1.本公开涉及集成电路技术领域,具体而言,涉及一种芯片、芯片压力测试方法、装置、电子设备及存储介质。


背景技术:

2.随着人工智能技术的发展,人工智能(artificial intelligence,ai)芯片的发展越发成熟。其中,ai芯片指的是针对人工智能算法做了特殊加速设计的芯片,比如人工智能算法可以为深度学习算法。
3.一般的,由于先进制程快速发展,ai芯片晶体管密集度越来越高,使得ai芯片上的微小问题在普通测试下难以发现,难以对ai芯片的性能进行较准确的评估。


技术实现要素:

4.有鉴于此,本公开至少提供一种芯片、芯片压力测试方法、装置、电子设备及存储介质。
5.第一方面,本公开提供了一种芯片压力测试方法,包括:
6.获取待测图像和卷积核;
7.基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果;
8.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能。
9.上述方法中,通过基于获取的待测图像和卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,并通过将各个运算结果与正确结果进行比对,确定待测芯片的运算性能,上述方法可以对能够进行卷积运算的任一待测芯片进行压力测试,保障了待测芯片的运算性能。同时,利用待测图像和卷积核,对待测芯片的运算性能进行测试,无需在待测芯片上额外设计与压力测试相关的硬件模块,减少了不必要的硬件开发,在保证了待测芯片运算功能的基础上缓解了资源浪费。
10.一种可能的实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,包括:
11.基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,或者,直至多次卷积运算的执行次数等于设置的目标次数,得到每次卷积运算对应的运算结果。
12.这里,可以控制待测芯片连续执行目标次卷积运算,或者,可以控制待测芯片连续执行目标运行时长的目标卷积运算,测试待测芯片在连续执行多次卷积运算后的运算性能,以对待测芯片进行较为精准的测试。
13.一种可能的实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,包括:
14.基于所述待测芯片对应的工作温度范围,确定多个待测温度;其中,所述待测温度中包括所述工作温度范围指示的边界温度;
15.基于所述待测图像和所述卷积核,控制待测芯片中的线程模块分别在所述多个待测温度中的每个待测温度下,连续执行多次卷积运算,得到每次卷积运算对应的运算结果。
16.这里,可以设置多个待测温度,该待测温度中包括工作温度范围指示的边界温度,测试待测芯片在每个待测温度下的运算性能,比如,可以测试待测芯片在边界温度下的运算性能,实现对待测芯片在不同工作温度下的运算性能的测试。
17.一种可能的实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,包括:
18.基于所述待测图像和所述卷积核,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,得到每个线程模块的卷积运算对应的运算结果。
19.这里,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,并行运行的线程模块越多,待测芯片的功耗越大,即可以对待测芯片在不同功耗下的运算性能进行测试,得到待测芯片的较为全面、较为精准的测试结果。
20.一种可能的实施方式中,在获取待测图像和卷积核之后,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果之前,所述方法还包括:
21.将所述待测图像中包括的每个像素特征值转换为目标数据类型下的值,得到转换后的待测图像;和/或,将所述卷积核中包括的每个卷积特征值转换为目标数据类型下的值,得到转换后的卷积核。
22.通过将待测图像中的像素特征值转换为目标数据类型下的值,和/或,将卷积核中卷积特征值转换为目标数据类型下的值,以便可以基于转换后的待测图像,和/或,转换后的卷积核,控制待测芯片中的线程模块执行卷积运算,实现测试待测芯片在处理不同数据类型的卷积运算时的运算性能。
23.一种可能的实施方式中,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,包括:
24.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块连续执行多次卷积运算的错误率;所述错误率用于评价所述待测芯片的运算性能。
25.这里,可以确定待测芯片的错误率,通过确定的错误率较为准确的评价待测芯片的运算性能。
26.一种可能的实施方式中,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,包括:
27.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块在多个时间段中的每个时间段内连续执行多次卷积运算的第一错误率;
28.基于所述第一错误率,生成表征执行时间段与第一错误率之间关系的第一关系曲线;所述第一关系曲线用于评价所述待测芯片的运算性能。
29.通过生成表征执行时间段和第一错误率之间关系的第一关系曲线,利用第一关系曲线可以较为准确、较为清楚的评价待测芯片的运算性能。
30.一种可能的实施方式中,在所述待测芯片中的多个线程模块并行执行卷积运算的情况下,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,包括:
31.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述多个线程模块在每个时间段内执行卷积运算的平均错误率;
32.基于所述平均错误率,生成表征所述多个线程模块的执行时间段与所述平均错误率之间关系的第二关系曲线;所述第二关系曲线用于评价所述待测芯片的运算性能。
33.在多个线程模块并行执行卷积运算时,确定多个线程模块在每个时间段内执行卷积运算的平均错误率,并基于该平均错误率,生成表征多个线程模块的执行时间段与平均错误率之间关系的第二关系曲线,利用第二关系曲线可以较为准确、较为清楚的评价待测芯片的运算性能。
34.一种可能的实施方式中,在确定所述待测芯片的运算性能之后,所述方法还包括:
35.根据同一批次生成的多个待测芯片中每个待测芯片的运算性能,从所述多个待测芯片中,确定执行神经网络训练和/或神经网络推理的目标芯片。
36.这里,根据每个待测芯片的运算性能,从多个待测芯片中选取目标芯片,比如,可以选取运算性能最好的芯片作为目标芯片,使得目标芯片能够较好的执行神经网络训练和/或神经网络推理。
37.以下装置、电子设备等的效果描述参见上述方法的说明,这里不再赘述。
38.第二方面,本公开提供了一种芯片,包括:至少一个线程模块,所述线程模块用于基于待测图像和卷积核执行卷积运算,得到卷积运算对应的运算结果。
39.第三方面,本公开提供了一种芯片压力测试装置,包括:
40.获取模块,用于获取待测图像和卷积核;
41.控制模块,用于基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果;
42.确定模块,用于通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能。
43.一种可能的实施方式中,所述控制模块,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
44.基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,或者,直至多次卷积运算的执行次数等于设置的目标次数,得到每次卷积运算对应的运算结果。
45.一种可能的实施方式中,所述控制模块,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
46.基于所述待测芯片对应的工作温度范围,确定多个待测温度;其中,所述待测温度中包括所述工作温度范围指示的边界温度;
47.基于所述待测图像和所述卷积核,控制待测芯片中的线程模块分别在所述多个待测温度中的每个待测温度下,连续执行多次卷积运算,得到每次卷积运算对应的运算结果。
48.一种可能的实施方式中,所述控制模块,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
49.基于所述待测图像和所述卷积核,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,得到每个线程模块的卷积运算对应的运算结果。
50.一种可能的实施方式中,在获取待测图像和卷积核之后,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果之前,所述装置还包括:转换模块,用于:
51.将所述待测图像中包括的每个像素特征值转换为目标数据类型下的值,得到转换后的待测图像;和/或,将所述卷积核中包括的每个卷积特征值转换为目标数据类型下的值,得到转换后的卷积核。
52.一种可能的实施方式中,所述确定模块,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
53.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块连续执行多次卷积运算的错误率;所述错误率用于评价所述待测芯片的运算性能。
54.一种可能的实施方式中,所述确定模块,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
55.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块在多个时间段中的每个时间段内连续执行多次卷积运算的第一错误率;
56.基于所述第一错误率,生成表征执行时间段与第一错误率之间关系的第一关系曲线;所述第一关系曲线用于评价所述待测芯片的运算性能。
57.一种可能的实施方式中,在所述待测芯片中的多个线程模块并行执行卷积运算的情况下,所述确定模块,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
58.通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述多个线程模块在每个时间段内执行卷积运算的平均错误率;
59.基于所述平均错误率,生成表征所述多个线程模块的执行时间段与所述平均错误率之间关系的第二关系曲线;所述第二关系曲线用于评价所述待测芯片的运算性能。
60.一种可能的实施方式中,在确定所述待测芯片的运算性能之后,所述装置还包括:选取模块,用于:
61.根据同一批次生成的多个待测芯片中每个待测芯片的运算性能,从所述多个待测芯片中,确定执行神经网络训练和/或神经网络推理的目标芯片。
62.第四方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的芯片压力测试方法的步骤。
63.第五方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的
芯片压力测试方法的步骤。
64.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
65.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
66.图1示出了本公开实施例所提供的一种芯片压力测试方法的流程示意图;
67.图2a示出了本公开实施例所提供的一种芯片压力测试方法中,第一关系曲线的示意图;
68.图2b示出了本公开实施例所提供的一种芯片压力测试方法中,第一关系曲线的示意图;
69.图3示出了本公开实施例所提供的一种芯片压力测试方法中,第二关系曲线的示意图;
70.图4示出了本公开实施例所提供的一种芯片压力测试装置的架构示意图;
71.图5示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
72.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
73.一般的,由于先进制程快速发展,人工智能(artificial intelligence,ai)芯片晶体管密集度越来越高,使得ai芯片上的微小问题在普通测试下难以发现,难以对ai芯片的性能进行较准确的评估。因此,本公开实施例提供了一种芯片、芯片压力测试方法、装置、电子设备及存储介质。
74.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
75.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
76.为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种芯片压力测试方法进行详细介绍。本公开实施例所提供的芯片压力测试方法的执行主体可以为服务
器、终端设备等,其中,终端设备可以为计算机、平板、手机等,服务器可以为云端服务器、本地服务器等。
77.参见图1所示,为本公开实施例所提供的芯片压力测试方法的流程示意图,该方法包括s101

s103,其中:
78.s101,获取待测图像和卷积核;
79.s102,基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果;
80.s103,通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能。
81.上述方法中,通过基于获取的待测图像和卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,并通过将各个运算结果与正确结果进行比对,确定待测芯片的运算性能,上述方法可以对能够进行卷积运算的任一待测芯片进行压力测试,保障了待测芯片的运算性能。同时,利用待测图像和卷积核,对待测芯片的运算性能进行测试,无需在待测芯片上额外设计与压力测试相关的硬件模块,减少了不必要的硬件开发,在保证了待测芯片运算功能的基础上缓解了资源浪费。
82.下述对s101

s103进行具体说明。
83.针对s101:
84.待测图像可以为获取到的任一图像,比如,该待测图像可以为红绿蓝(red

green

blue,rgb)图像。卷积核可以根据需要进行设置,其中,卷积核的通道数与待测图像的通道数一致。比如,在待测图像为3通道时,卷积核的尺寸可以为3
×3×
3,即卷积核的长度为3、宽度为3、通道数为3。
85.实施时,待测图像中包括的每个像素点的像素特征值的数据类型与待测图像的图像类型有关,比如,像素特征值的数据类型可以为整数。以及卷积核上的每个特征点的卷积特征值可以根据需要进行设置,比如,可以将特征点的卷积特征值设置为常数。
86.一种可选实施方式中,在获取待测图像和卷积核之后,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果之前,所述方法还包括:将所述待测图像中包括的每个像素特征值转换为目标数据类型下的值,得到转换后的待测图像;和/或,将所述卷积核中包括的每个卷积特征值转换为目标数据类型下的值,得到转换后的卷积核。
87.目标数据类型可以根据需要进行设置,比如,目标数据类型可以为下述任一数据类型:单精度浮点数fp32、半精度浮点数fp16、整数int8、tf32(机器学习系统tensorflow中的数据类型)等。
88.比如,在目标数据类型为fp32,待测图像中像素点的像素特征值的初始数据类型为int、卷积核中特征点的卷积特征值的初始数据类型为int时,在获取待测图像和卷积核之后,可以将待测图像中包括的像素点的像素特征值转换为fp32类型的值,得到转换后的待测图像。和/或,将卷积核中包括的特征点的特征卷积值转换为fp32类型的值,得到转换后的卷积核。
89.进而可以利用转换后的待测图像、和/或转换后的卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果。比如,在对待测图像和卷
积核进行转换后,得到转换后的待测图像和转换后的卷积核时,可以控制待测芯片的线程模块将转换后的待测图像包括的像素特征值、与转换后的卷积核包括的卷积特征值进行乘加运算,得到卷积运算的运算结果。
90.通过将待测图像中的像素特征值转换为目标数据类型下的值,和/或,将卷积核中卷积特征值转换为目标数据类型下的值,以便可以基于转换后的待测图像,和/或,转换后的卷积核,控制待测芯片中的线程模块执行卷积运算,实现测试待测芯片在处理不同数据类型的卷积运算时的运算性能。
91.针对s102:
92.待测芯片可以为ai芯片。即可以控制待测芯片中的线程模块,按照设置的移动步长,将卷积核与待测图像中包括的像素特征值进行卷积运算,得到每次卷积运算对应的运算结果。在卷积核为三通道的时,得到的运算结果可以为三通道的特征图。
93.一种可选实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,包括:基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,或者,直至多次卷积运算的执行次数等于设置的目标次数,得到每次卷积运算对应的运算结果。
94.这里,可以设置目标次数,比如,目标次数可以为一千万次,控制待测芯片中的线程模块将卷积核和待测图像进行卷积运算,直至线程模块连续执行了一千万次的卷积运算,得到一千万次卷积运算对应的运算结果。
95.或者,也可以设置目标运行时长,比如,目标运行时长可以为36小时,控制待测芯片中的线程模块将卷积核和待测图像进行卷积运算,直至线程模块连续执行卷积运算的持续时长大于或等于36小时,得到36个小时内执行的每次卷积运算对应的运算结果。
96.这里,可以控制待测芯片连续执行目标次卷积运算,或者,可以控制待测芯片连续执行目标运行时长的目标卷积运算,测试待测芯片在连续执行多次卷积运算后的运算性能,以对待测芯片进行较为精准的测试。
97.一种可选实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,可以包括步骤a1和步骤a2,其中:
98.步骤a1,基于所述待测芯片对应的工作温度范围,确定多个待测温度;其中,所述待测温度中包括所述工作温度范围指示的边界温度;
99.步骤a2,基于所述待测图像和所述卷积核,控制待测芯片中的线程模块分别在所述多个待测温度中的每个待测温度下,连续执行多次卷积运算,得到每次卷积运算对应的运算结果。
100.待测芯片对应的工作温度范围可以为生产商根据芯片性能确定的工作温度范围。可以基于待测芯片对应的工作温度范围,确定多个待测温度,待测温度的数量可以根据需要进行设置。其中,选取待测温度时,工作温度范围指示的边界温度为必选待测温度。待测温度可以根据需要进行选取,比如,可以在边界温度附近选择较多的待测温度,在远离边界温度时选择较少的待测温度。
101.示例性的,工作温度范围可以为[20℃—80℃],在待测温度的数量为2个时,则确
定的待测温度为20℃和80℃;在待测温度的数量为5个时,则确定的待测温度为20℃、22℃、50℃、78℃、和80℃。
[0102]
再可以在每个待测温度下,控制待测芯片中的线程模块连续多次将卷积核与待测图像进行卷积运算,得到每次卷积运算对应的运算结果。进而可以得到在各个待测温度下各次卷积运算对应的运算结果。
[0103]
实施时,可以在每个待测温度下,控制待测芯片中的线程模块连续多次将卷积核与待测图像进行卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,得到每次卷积运算对应的运算结果。或者,可以在每个待测温度下,控制待测芯片中的线程模块连续多次将卷积核与待测图像进行卷积运算,直至多次卷积运算的执行次数等于设置的目标次数,得到每次卷积运算对应的运算结果。
[0104]
这里,可以设置多个待测温度,该待测温度中包括工作温度范围指示的边界温度,测试待测芯片在每个待测温度下的运算性能,比如,可以测试待测芯片在边界温度下的运算性能,实现对待测芯片在不同工作温度下的运算性能的测试。
[0105]
一种可选实施方式中,所述基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果,包括:基于所述待测图像和所述卷积核,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,得到每个线程模块的卷积运算对应的运算结果。
[0106]
待测芯片中可以包括目标数量的线程模块。比如,若目标数量为1000,则多个线程模块可以为1000个线程模块中的全部线程模块,即控制待测芯片中的全部线程模块并行连续执行多次卷积运算,得到每个线程模块的每次卷积运算对应的运算结果;多个线程模块也可以为1000个线程模块中的部分线程模块(比如500个、800个等),即控制待测芯片中的部分线程模块并行连续执行多次卷积运算,得到每个线程模块的每次卷积运算对应的运算结果。其中,并行执行卷积运算的线程模块的数量可以根据实际情况进行设置。
[0107]
实施时,可以针对每个待测温度,基于待测图像和卷积核,控制待测芯片中的多个线程模块在该待测温度下、并行连续执行多次卷积运算,得到该待测温度下每个线程模块的每次卷积运算对应的运算结果。
[0108]
还可以针对每个待测温度,基于待测图像和卷积核,控制待测芯片中的多个线程模块在该待测温度下、并行连续执行多次卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,或者,直至多次卷积运算的执行次数等于设置的目标次数;得到该待测温度下每个线程模块的每次卷积运算对应的运算结果。
[0109]
这里,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,并行运行的线程模块越多,待测芯片的功耗越大,即可以对待测芯片在不同功耗下的运算性能进行测试,得到待测芯片的较为全面、较为精准的测试结果。
[0110]
上述在对待测图像中的像素特征值进行转换,得到转换后的待测图像时,可以基于转换后的待测图像和卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果。在对卷积核中的卷积特征值进行转换,得到转换后的卷积核时,可以基于待测图像和转换后的卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果。在对待测图像和卷积核均进行转换,得到转换后的待测图像和转换后的卷积核时,可以基于转换后的待测图像和转换后的卷积核,控制
待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果。
[0111]
针对s103:
[0112]
实施时,可以预先确定待测图像和卷积核进行卷积运算的正确结果;或者,确定转换后的待测图像和卷积核进行卷积运算的正确结果;或者,确定待测图像和转换后的卷积核进行卷积运算的正确结果;或者,确定转换后的待测图像和转换后的卷积核进行卷积运算的正确结果。再可以将得到的各个运算结果过与对应的正确结果进行比对,确定待测芯片的运算性能。比如,可以将各个运算结果与正确结果进行比对,若正确则将该运算结果标记为1,若错误则可以将该运算结果标记为0,进而可以根据标记为1的卷积运算的次数和执行的总次数,确定待测芯片的正确率,使用该正确率评价待测芯片的运算性能。比如,正确率较高则该待测芯片的运算性能较好。
[0113]
一种可选实施方式中,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,包括:通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块连续执行多次卷积运算的错误率;所述错误率用于评价所述待测芯片的运算性能。
[0114]
比如,可以将各个运算结果与正确结果进行比对,若正确则将该运算结果标记为1,若错误则可以将该运算结果标记为0,进而可以根据标记为0的卷积运算的次数和执行的总次数,确定待测芯片的错误率,使用该错误率评价待测芯片的运算性能。比如,错误率越高则该待测芯片的运算性能较差。
[0115]
实施时,若待测芯片一在待测温度20℃下执行1000次卷积运算后,运算结果与正确结果不一致的数量为50,则该待测芯片一的错误率为50/1000=1/20;待测芯片二在待测温度20℃下执行1000次卷积运算后,运算结果与正确结果不一致的数量为20,则该待测芯片二的错误率为20/1000=1/50;则确定待测芯片一的运算性能比待测芯片二差。
[0116]
这里,可以确定待测芯片的错误率,通过确定的错误率较为准确的评价待测芯片的运算性能。
[0117]
一种可选实施方式中,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,可以包括步骤b1和步骤b2,其中:
[0118]
步骤b1,通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块在多个时间段中的每个时间段内连续执行多次卷积运算的第一错误率;
[0119]
步骤b2,基于所述第一错误率,生成表征执行时间段与第一错误率之间关系的第一关系曲线;所述第一关系曲线用于评价所述待测芯片的运算性能。
[0120]
实施时,可以将得到的各个运算结果与对应的正确结果进行比对,确定待测芯片中线程模块在多个时间段中的每个时间段内连续执行多次卷积运算的第一错误率。比如,待测芯片执行卷积运算的执行时长为24小时,则可以确定待测芯片第1个小时内执行卷积运算的第一错误率、第2个小时内执行卷积运算的第一错误率、
……
、第24个小时内执行卷积运算的第一错误率。进而,可以基于得到的各个时间段分别对应的第一错误率,生成第一关系曲线,使用该第一关系曲线评价待测芯片的运算性能。其中,该第一关系曲线用于表征执行时间段与第一错误率之间的关系。
[0121]
参见图2a所示的待测芯片a对应的第一关系曲线的示意图,该第一关系曲线中包
括各个时间段内待测芯片a的第一错误率,可见图2a所展示的待测芯片a随着时间的增加错误率变多,可知该待测芯片a的运算性能较差。
[0122]
参见图2b所示的待测芯片b对应的第一关系曲线的示意图,可见图2b所展示的待测芯片b出现错误的时间晚于待测芯片a,且同一时间段内,待测芯片b的错误率小于待测芯片a的错误率,可知该待测芯片b的运算性能优于待测芯片a。其中,图2a和图2b仅为示例性说明。
[0123]
通过生成表征执行时间段和第一错误率之间关系的第一关系曲线,利用第一关系曲线可以较为准确、较为清楚的评价待测芯片的运算性能。
[0124]
一种可选实施方式中,在所述待测芯片中的多个线程模块并行执行卷积运算的情况下,所述通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能,可以包括步骤c1和步骤c2,其中:
[0125]
步骤c1,通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述多个线程模块在每个时间段内执行卷积运算的平均错误率;
[0126]
步骤c2,基于所述平均错误率,生成表征所述多个线程模块的执行时间段与所述平均错误率之间关系的第二关系曲线;所述第二关系曲线用于评价所述待测芯片的运算性能。
[0127]
在待测芯片中的多个现场模块并行执行卷积运算时,可以先确定每个线程模块在每个时间段内连续执行多次卷积运算的第二错误率;再可以根据第二错误率,确定在每个时间段内多个线程模块执行卷积运算的平均错误率。比如,待测芯片执行卷积运算的执行时长为24小时,则可以确定待测芯片的多个线程模块在第1个小时内执行卷积运算的平均错误率、在第2个小时内执行卷积运算的平均错误率、
……
、在第24个小时内执行卷积运算的平均错误率。进而,可以基于得到的各个时间段分别对应的平均错误率,生成第二关系曲线,使用该第二关系曲线评价待测芯片的运算性能。其中,该第二关系曲线用于表征执行时间段与平均错误率之间的关系。
[0128]
参见图3所示的第二关系曲线的示意图,该图3中可以包括在每个时间段内多个线程模块的平均错误率。相同时间段内,平均错误率较大则待测芯片的运算性能较差。
[0129]
在多个线程模块并行执行卷积运算时,确定多个线程模块在每个时间段内执行卷积运算的平均错误率,并基于该平均错误率,生成表征多个线程模块的执行时间段与平均错误率之间关系的第二关系曲线,利用第二关系曲线可以较为准确、较为清楚的评价待测芯片的运算性能。
[0130]
一种可选实施方式中,在确定所述待测芯片的运算性能之后,所述方法还包括:根据同一批次生成的多个待测芯片中每个待测芯片的运算性能,从所述多个待测芯片中,确定执行神经网络训练和/或神经网络推理的目标芯片。
[0131]
实施时,可以对同一批次生成的多个待测芯片中的每个待测芯片进行压力测试,确定每个待测芯片的运算性能,再可以基于每个待测芯片的运算性能,确定执行神经网络训练和/或神经网络推理的目标芯片。比如,若待测芯片a的运算性能最佳,则可以选择待测芯片a作为目标芯片,使用目标芯片执行神经网络训练过程和/或执行神经网络推理过程。
[0132]
这里,根据每个待测芯片的运算性能,从多个待测芯片中选取目标芯片,比如,可以选取运算性能最好的芯片作为目标芯片,使得目标芯片能够较好的执行神经网络训练
和/或神经网络推理。
[0133]
实施时,可以根据同一批次生成的多个待测芯片中每个待测芯片的运算性能,评价该批次的生产情况,比如,若第一批次生成的每个待测芯片的运算性能均较好,则确定第一批次的生产情况较好。
[0134]
具体实施时,可以使用c语言等高级语言实现上述芯片压力测试方法所对应的测试代码,比如,该测试代码中可以包括测试用例、测试初始参数设置、测试流程等,并将编译后的测试代码发送给待测芯片,待测芯片执行该测试代码,实现对待测芯片的压力测试。该方法可以将生成的测试代码发送给任一待测试的ai芯片,实现对ai芯片的压力测试,同时实现了对不同厂商、不同批次的ai芯片进行测试。
[0135]
或者,还可以将生成的测试代码写入至待测芯片的soc程序中,并以函数封装,上位机调用函数。通过传参设定初始值,实现对该ai芯片的压力测试;该方式使用简单,省去了编译下发步骤,提高了ai芯片的测试效率。
[0136]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0137]
基于相同的构思,本公开实施例还提供了一种芯片,包括:至少一个线程模块,所述线程模块用于基于待测图像和卷积核执行卷积运算,得到卷积运算对应的运算结果。
[0138]
实施时,线程模块可以将待测图像和卷积核进行卷积运算,得到该卷积运算对应的运算结果。其中,线程模块可以实施为芯片中的运算逻辑部件,如运算器。
[0139]
基于相同的构思,本公开实施例还提供了一种芯片压力测试装置,参见图4所示,为本公开实施例提供的芯片压力测试装置的架构示意图,包括获取模块401、控制模块402、确定模块403,具体的:
[0140]
获取模块401,用于获取待测图像和卷积核;
[0141]
控制模块402,用于基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果;
[0142]
确定模块403,用于通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能。
[0143]
一种可能的实施方式中,所述控制模块402,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
[0144]
基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,直至多次卷积运算的持续时长大于或等于设置的目标运行时长,或者,直至多次卷积运算的执行次数等于设置的目标次数,得到每次卷积运算对应的运算结果。
[0145]
一种可能的实施方式中,所述控制模块402,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
[0146]
基于所述待测芯片对应的工作温度范围,确定多个待测温度;其中,所述待测温度中包括所述工作温度范围指示的边界温度;
[0147]
基于所述待测图像和所述卷积核,控制待测芯片中的线程模块分别在所述多个待
测温度中的每个待测温度下,连续执行多次卷积运算,得到每次卷积运算对应的运算结果。
[0148]
一种可能的实施方式中,所述控制模块402,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果时,用于:
[0149]
基于所述待测图像和所述卷积核,控制待测芯片中的多个线程模块并行连续执行多次卷积运算,得到每个线程模块的卷积运算对应的运算结果。
[0150]
一种可能的实施方式中,在获取待测图像和卷积核之后,在基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果之前,所述装置还包括:转换模块404,用于:
[0151]
将所述待测图像中包括的每个像素特征值转换为目标数据类型下的值,得到转换后的待测图像;和/或,将所述卷积核中包括的每个卷积特征值转换为目标数据类型下的值,得到转换后的卷积核。
[0152]
一种可能的实施方式中,所述确定模块403,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
[0153]
通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块连续执行多次卷积运算的错误率;所述错误率用于评价所述待测芯片的运算性能。
[0154]
一种可能的实施方式中,所述确定模块403,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
[0155]
通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片中线程模块在多个时间段中的每个时间段内连续执行多次卷积运算的第一错误率;
[0156]
基于所述第一错误率,生成表征执行时间段与第一错误率之间关系的第一关系曲线;所述第一关系曲线用于评价所述待测芯片的运算性能。
[0157]
一种可能的实施方式中,在所述待测芯片中的多个线程模块并行执行卷积运算的情况下,所述确定模块403,在通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能时,用于:
[0158]
通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述多个线程模块在每个时间段内执行卷积运算的平均错误率;
[0159]
基于所述平均错误率,生成表征所述多个线程模块的执行时间段与所述平均错误率之间关系的第二关系曲线;所述第二关系曲线用于评价所述待测芯片的运算性能。
[0160]
一种可能的实施方式中,在确定所述待测芯片的运算性能之后,所述装置还包括:选取模块405,用于:
[0161]
根据同一批次生成的多个待测芯片中每个待测芯片的运算性能,从所述多个待测芯片中,确定执行神经网络训练和/或神经网络推理的目标芯片。
[0162]
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0163]
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图5所示,为本公开实施例提供的电子设备的结构示意图,包括处理器501、存储器502、和总线503。其中,存
储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当电子设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501在执行以下指令:
[0164]
获取待测图像和卷积核;
[0165]
基于所述待测图像和所述卷积核,控制待测芯片中的线程模块连续执行多次卷积运算,得到每次卷积运算对应的运算结果;
[0166]
通过将得到的各个所述运算结果与对应的正确结果进行比对,确定所述待测芯片的运算性能。
[0167]
其中,处理器501的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
[0168]
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的芯片压力测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0169]
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的芯片压力测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0170]
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0171]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0172]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0173]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0174]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得
一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0175]
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献