CN114255155B - 一种图形处理器测试方法和电子设备 - Google Patents
一种图形处理器测试方法和电子设备 Download PDFInfo
- Publication number
- CN114255155B CN114255155B CN202210169603.9A CN202210169603A CN114255155B CN 114255155 B CN114255155 B CN 114255155B CN 202210169603 A CN202210169603 A CN 202210169603A CN 114255155 B CN114255155 B CN 114255155B
- Authority
- CN
- China
- Prior art keywords
- test
- data
- test result
- graphics processor
- gpu
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2268—Logging of test results
Abstract
本申请公开了一种图形处理器测试方法,应用于电子设备,该方法包括:确定预设的测试源数据;根据测试源数据对图形处理器进行N次测试处理,得到与测试源数据对应的N个测试结果数据,测试处理为由图形处理器根据测试源数据执行的图像生成处理,N为预设的测试次数,并且N为大于等于2的正整数。然后,根据N个测试结果数据与目标测试结果数据的比较结果,即可以方便、准确地确定图形处理器的测试结果,测试结果为图形处理器的功能异常或者功能无异常,以提高图形处理器测试的安全性和准确性。并且,预先设置的测试源数据,可以保证测试源数据的数据量可控,即可以保证GPU测试过程中的负载大小可控,便于测试。本申请还公开了一种电子设备。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种图形处理器测试方法和电子设备。
背景技术
手机、平板电脑等电子设备通过图形处理器(Graphics Processing Unit,GPU)可以进行图像处理。当前,在电子设备出厂前,通常需要对电子设备的图形处理器(GraphicsProcessing Unit,GPU)进行老化测试,以验证GPU功能是否异常,例如验证GPU的硬件单元的功能是否存在异常等。如何更为准确、安全地验证GPU功能是否异常,是当前亟待解决的问题。
发明内容
本申请提供了一种图形处理器测试方法和电子设备,以及计算机可读取存储介质,可以更为准确、安全地测试GPU功能是否异常,即可以提高GPU功能测试的准确性和安全性。
为解决上述技术问题,第一方面,本申请的实现方式提供了一种图形处理器测试方法,应用于电子设备,该方法包括:确定预设的测试源数据;根据测试源数据对图形处理器进行N次测试处理,得到与测试源数据对应的N个测试结果数据,测试处理为由图形处理器根据测试源数据执行的图像生成处理,N为预设的测试次数,并且N为大于等于2的正整数;根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,测试结果为图形处理器的功能异常或者图形处理器的功能无异常。
如此,通过N个测试结果数据与目标测试结果数据的比较结果,该比较结果例如可以是N个测试结果数据与目标测试结果数据是否一致,就可以方便、准确地对图形处理器(即GPU)的功能进行测试,即可以方便、准确地确定图形处理器的硬件功能是否异常,可以提高图形处理器测试的安全性和准确性。
并且,预先设置的测试源数据,可以保证测试源数据的数据量可控,即可以保证图形处理器测试过程中的负载大小可控,便于进行测试。
在上述第一方面的一种可能的实现中,根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,包括:若确定出现至少一个测试结果数据与目标测试结果数据不一致的情况,则确定测试结果为图形处理器的功能异常。
例如,测试过程中,若出现某一个测试结果数据与目标测试结果数据不一致,则可以直接确定测试结果为图形处理器的功能异常。如此,可以提高图形处理器功能测试的准确性和效率。
在上述第一方面的一种可能的实现中,根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,包括:若确定每个测试结果数据与目标测试结果数据都一致,则确定测试结果为图形处理器的功能无异常。如此,可以提高图形处理器功能测试的准确性和效率。
在上述第一方面的一种可能的实现中,根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,包括:若确定出现M个测试结果数据与目标测试结果数据一致的情况,则确定测试结果为图形处理器的功能无异常,M为大于等于预设阈值、小于等于N的正整数。M的个数可以根据需要选择和设置。如此,也可以提高图形处理器功能测试的准确性和效率。
在上述第一方面的一种可能的实现中,目标测试结果数据为预设的数据。
在上述第一方面的一种可能的实现中,根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,包括:根据测试源数据对图形处理器进行测试处理,得到与测试源数据对应的第Ni测试结果数据,i为大于等于1、小于等于N-1的正整数;将第Ni测试结果数据,与目标测试结果数据进行比较;若确定第Ni测试结果数据与目标测试结果数据一致,则根据测试源数据继续对图形处理器进行下一次测试处理,得到与测试源数据对应的第Ni+1测试结果数据,并比较第Ni+1测试结果数据与目标测试结果数据是否一致,直至达到测试次数,结束测试处理,并且确定测试结果为图形处理器的功能无异常;或者,若出现第Ni+1测试结果数据与目标测试结果数据不一致的情况,则结束测试处理,并且确定测试结果为图形处理器的功能异常;若确定第Ni测试结果数据与目标测试结果数据不一致,则结束测试处理,并且确定测试结果为图形处理器的功能异常。
如此,可以方便、准确地确定图形处理器的功能是否异常,可以提高图形处理器测试的安全性和准确性。
在上述第一方面的一种可能的实现中,目标测试结果数据为进行第一次测试处理得到的测试结果数据。
在上述第一方面的一种可能的实现中,根据N个测试结果数据与目标测试结果数据的比较结果,确定图形处理器的测试结果,包括:根据测试源数据对图形处理器进行第一次测试处理,得到与测试源数据对应的第N1测试结果数据;根据测试源数据对图形处理器进行后续测试处理,得到与测试源数据对应的第Ni测试结果数据,i为大于等于2、小于等于N-1的正整数;将第Ni测试结果数据,与第N1测试结果数据进行比较;若确定第Ni测试结果数据与第N1测试结果数据一致,则根据测试源数据继续对图形处理器进行下一次测试处理,得到与测试源数据对应的第Ni+1测试结果数据,并比较第Ni+1测试结果数据与第N1测试结果数据是否一致,直至达到测试次数,结束测试处理,并且确定测试结果为图形处理器的功能无异常;或者,若出现第Ni+1测试结果数据与第N1测试结果数据不一致的情况,则结束测试处理,并且确定测试结果为图形处理器的功能异常;若确定第Ni测试结果数据与第N1测试结果数据不一致,则结束测试处理,并且确定测试结果为图形处理器的功能异常。
如此,可以方便、准确地确定图形处理器的硬件功能是否异常,可以提高图形处理器测试的安全性和准确性。
在上述第一方面的一种可能的实现中,该方法还包括:将第N1测试结果数据直接存储为目标测试结果数据;或者若确定不存在预设的目标测试结果数据,则将第N1测试结果数据存储为目标测试结果数据。
在上述第一方面的一种可能的实现中,确定预设的测试源数据,包括:确定测试类型,测试类型包括轻负载测试类型和重负载测试类型;根据测试类型,确定预设的与测试类型对应的测试源数据。
通过设置与不同测试类型对应的测试源数据,可以方便、准确地测试对应的测试类型下,图形处理器的功能是否异常,可以提高图形处理器功能测试的准确性。
在上述第一方面的一种可能的实现中,轻负载测试类型对应的测试源数据包括顶点数据。
在上述第一方面的一种可能的实现中,重负载测试类型对应的测试源数据包括顶点数据和纹理数据。
在上述第一方面的一种可能的实现中,轻负载测试类型和重负载测试类型包括的顶点数据不相同,并且具体可以是数据量大小不同,并且重负载测试类型包括的顶点数据的数据量,大于轻负载测试类型包括的顶点数据的数据量,其数据量大小可以根据需要选择和设置。
在上述第一方面的一种可能的实现中,确定测试类型,包括:接收用户对测试类型的选择操作,根据选择操作确定测试类型。
如此,可以根据用户操作,方便、准确地确定测试类型。
在上述第一方面的一种可能的实现中,确定测试类型,包括:根据预设的测试顺序信息,确定测试类型。
如此,可以自动方便、准确地确定测试类型。
在上述第一方面的一种可能的实现中,图像生成处理包括像素计算处理,和/或图像渲染处理。其中,像素计算处理可以由图形处理器的计算单元(也可以称为运算单元)实现、图像渲染处理可以由图形处理器的渲染单元实现等,当然,其也可以由其他单元实现。另外,图像生成处理也可以是与图像生成处理相关的其他处理,其可以根据需要选择和设置。
在上述第一方面的一种可能的实现中,测试结果数据为测试源数据经图像生成处理后生成的对应图像的像素数据,即像素值。例如测试结果数据为由图形处理器的计算单元进行像素计算处理(也可以称为运算处理)得到的像素数据等数据,或者是由图形处理器的渲染单元进行图像渲染处理得到的像素数据等数据。
另外,前述图形处理器的功能是否异常,即可以是指图形处理器的计算单元的功能是否异常,或者渲染单元的功能是否异常等。并且,测试结果即为图形处理器的功能的状态。
通过计算测试源数据对应的像素数据作为测试结果数据,可以方便地确定图形处理器的功能是否异常。当然,测试结果数据也可以是与图像生成处理对应的其他类型的数据,其可以根据需要选择和设置。
在上述第一方面的一种可能的实现中,该方法还包括:接收用户的测试状态触发操作,根据测试状态触发操作开始测试处理,和/或结束测试处理。
如此,可以根据用户操作,方便、准确地进行功能测试。
在上述第一方面的一种可能的实现中,该方法还包括:根据预设的测试顺序信息,开始测试处理,和/或结束测试处理。
如此,可以自动方便、准确地进行功能测试。
在上述第一方面的一种可能的实现中,根据测试源数据对图形处理器进行N次测试处理,得到与测试源数据对应的N个测试结果数据;包括:根据测试源数据,在预设的窗口和画布中进行图像生成处理,得到与测试源数据对应的N个测试结果数据。
在上述第一方面的一种可能的实现中,测试源数据为wrl文件格式的图像数据,则根据测试源数据对图形处理器进行N次测试处理,还包括:将wrl文件格式的图像数据处理为二维数组形式的图像数据;根据二维数组形式的图像数据对图形处理器进行N次测试处理。
当然,测试源数据也可以是二维数组形式的图像数据,或者其他形式的图像数据,其可以根据需要选择和设置。
在上述第一方面的一种可能的实现中,该方法还包括:显示测试结果对应的提醒信息。
如此,可以方便地提供测试人员测试结果。测试结果例如可以是文字提醒信息“GPU硬件功能无异常”等,也可以是其他颜色、图像、声音等方式的提醒信息,其可以根据需要选择和设置。
第二方面,本申请的实施方式提供了一种电子设备,包括:存储器,用于存储计算机程序,计算机程序包括程序指令;处理器,用于执行程序指令,以使电子设备执行如上述第一方面和/或第一方面的任意一种可能的实现方式所提供的图形处理器测试方法。
第三方面,本申请的实施方式提供了一种计算机可读取存储介质,计算机可读取存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被电子设备运行以使电子设备执行如上述第一方面和/或第一方面的任意一种可能的实现方式所提供的图形处理器测试方法。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施方式描述中所使用的附图作简单介绍。
图1是根据本申请的一些实施方式,示出了本申请提供的GPU测试方法的一种应用场景;
图2是根据本申请的一些实施方式,示出了一种手机的结构示意图;
图3是根据本申请的一些实施方式,示出了一种手机的软件框架结构示意图;
图4A是根据本申请的一些实施方式,示出了一种本申请提供的手机的一种显示界面示意图;
图4B是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4C是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4D是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4E是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4F是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4G是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4H是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图4I是根据本申请的一些实施方式,示出了一种本申请提供的手机的另一种显示界面示意图;
图5是根据本申请的一些实施方式,示出了本申请提供的GPU测试方法的一种流程示意图;
图6是根据本申请的一些实现方式,示出了一种电子设备的结构示意图;
图7是根据本申请的一些实现方式,示出了一种片上系统(SoC)的结构示意图。
具体实施方式
下面将结合附图对本申请的技术方案作进一步详细描述。
本申请实现方式提供的GPU测试方法可以应用于包括GPU的电子设备。
请参见图1,以电子设备为手机为例。随着科学技术的不断发展,手机的GPU承担的任务越来越多,所以,在手机出厂售卖前,和/或手机返厂维修时,需要更为准确、安全地测试GPU的功能。
本申请的一种实现方式提供了一种GPU测试方法,可以用于手机测试手机GPU的功能是否异常,例如可以用于测试GPU的硬件功能(例如GPU计算单元、GPU渲染单元等)是否存在异常(即GPU的硬件是否正常)。该GPU测试方法包括以下过程:
手机确定预设的测试源数据(也可以称为绘画源数据,或者预置资源文件),测试源数据是用于GPU执行图像生成处理(也可以称为绘图处理)所使用的图像数据。例如,测试源数据可以是顶点数据、纹理数据等图像数据。并且,测试源数据可以是以wrl文件格式存储的图像数据(例如日志(flog)数据),该wrl文件格式存储的图像数据可以由手机通过相应的处理函数处理成二维数组形式的图像数据。二维数组形式的图像数据即为由多个RGB数组构成的数组集合,数组集合例如可以是{(R1 G1 B1),(R2 G2 B2),……,(Rn Gn Bn)},其中n是大于等于3的正整数,具体取值可以根据需要选择和设置。
然后,手机根据测试源数据对GPU进行N次测试处理,该测试处理即为由GPU根据测试源数据执行绘图相关的图像渲染、像素计算处理等图像生成相关的部分或者全部处理,得到与测试源数据对应的N个测试结果数据,N为预设的测试次数,并且N为大于等于2的正整数。该测试结果数据例如可以是经过GPU计算处理后生成的与测试源数据对应的像素数据。接着,手机根据N个测试结果数据与目标测试结果数据的比较结果,就可以确定GPU的测试结果,测试结果为GPU的功能异常或者GPU的功能无异常。
例如,手机根据测试源数据进行第一次测试处理,以得到与测试源数据对应的第一像素数据(像素数据也可以称为像素值,可以理解为测试源数据对应图像的像素数据,像素数据作为测试结果数据的一种示例),并将第一像素数据存储为目标像素数据(目标像素数据也可以称为目标像素值,作为目标测试结果数据的一种示例)。
需要说明的是,若测试源数据是以wrl文件格式存储的图像数据,则手机根据测试源数据进行测试处理之前,还包括将以wrl文件格式存储的图像数据处理成二维数组形式的图像数据,然后根据二维数组形式的图像数据进行测试处理。
接着,手机根据测试源数据再次进行第二次测试处理,得到与测试源数据对应的第二像素数据。并且,手机将第二像素数据和目标像素数据进行比较,以确定第二像素数据和目标像素数据是否一致。若不一致,则说明GPU的硬件功能存在异常,手机确定测试结果为“GPU硬件功能异常”(作为功能异常的一种示例),并且结束测试处理。若一致,则手机继续根据测试源数据再次进行第三次测试处理,得到与测试源数据对应的第三像素数据。
并且,手机将第三像素数据和目标像素数据进行比较,以确定第三像素数据和目标像素数据是否一致。若不一致,则说明GPU的硬件功能存在异常,手机确定测试结果为“GPU硬件功能异常”,并且结束测试处理。若一致,则手机继续重复执行下一次测试处理,并将得到的下一个像素数据和目标像素数据进行比较,以确定该下一个像素数据和目标像素数据是否一致,并根据比较结果确定测试结果以及确定后续处理。
最终,若后续每一次得到的像素数据分别和目标像素数据都一致,则在测试次数达到预设的测试次数(例如55次、100次、1000次等,其可以根据需要具体选择和设置)后,手机确定GPU硬件功能无异常,即确定测试结果为“GPU硬件功能无异常”(作为功能无异常的一种示例),并且结束测试处理。若某一次得到的像素数据和目标像素数据不一致,则可以确定GPU硬件功能异常,即确定测试结果为“GPU硬件功能异常”,并且结束测试处理。
如此,手机根据预设的测试源数据进行多次测试处理,可以得到与测试源数据对应的多个像素数据,并且通过比较后续多次测试得到的像素数据与第一次得到的像素数据是否一致,可以方便、准确地对GPU的功能进行测试,即可以方便、准确地确定GPU的硬件功能是否异常。
进一步地,本实现方式中,手机测试GPU的硬件功能是否异常,可以是指手机测试GPU在轻负载(lightload)状态和/或重负载(high_load)状态下,GPU硬件功能是否异常。则,手机确定测试源数据,包括:手机先根据用户对手机显示的测试类型的选择操作确定测试类型,或者根据预设的测试顺序信息(例如,先测试轻负载状态下GPU硬件功能是否异常,再测试重负载状态下GPU硬件功能是否异常)确定测试类型,测试类型包括轻负载测试类型和重负载测试类型。然后,手机根据测试类型,获取预设的与测试类型对应的测试源数据。即,在手机测试GPU在轻负载状态下GPU硬件功能是否异常的场景中,手机确定的前述的测试源数据是轻负载测试类型对应的测试源数据。在手机测试GPU在重负载状态下GPU硬件功能是否异常的场景中,手机获取的前述的测试源数据是重负载测试类型对应的测试源数据。如此,手机通过对应于不同测试类型的测试源数据可以分别方便、准确地确定GPU在轻负载状态和/或重负载状态下,GPU硬件功能是否异常。
如前所述,本实现方式中,测试源数据是用于GPU执行图像生成处理相关的顶点数据、纹理数据等图像数据。则其中,轻负载测试类型对应的测试源数据可以包括顶点数据,重负载测试类型对应的测试数据可以包括顶点数据和纹理数据。轻负载测试类型对应的测试源数据包括的顶点数据,和重负载测试类型对应的测试数据包括的顶点数据可以相同,也可以不同,其可以根据需要选择和设置。
当然,轻负载测试类型对应的测试源数据和重负载测试类型对应的测试源数据也可以根据需要选择和设置为其他数据。即测试源数据还可以包括其他的数据,或者还可以是其他的数据,其可以根据需要选择和设置。
需要说明的是,本实现方式中,前述顶点数据、纹理数据等测试源数据,也可以直接是以二维数组形式的图像数据进行存储,则手机可以直接根据测试源数据进行前述测试处理,而不需要进行前述的数据转换。当然,测试源数据还可以是以其他形式存储的图像数据,其可以根据需要选择和设置。
本实现方式中,由于测试源数据可以根据需要预先选择和设置,并且测试源数据可以通过开源软件自动生成。因此,可以保证测试源数据的数据量可控,以及可以保证手机在功能测试过程中的运算量可控,即可以保证GPU的负载大小可控,同时可以保证测试源数据的安全性,提高GPU功能测试的安全性。
另外,本实现方式中,这种通过预设的测试源数据测试GPU硬件功能是否异常的方式,不仅可以应用于不同的手机上,还可以应用于手机以外的其他包含GPU的电子设备中,即可以方便地实施于各种电子产品上进行对应GPU的测试,使得电子设备的GPU测试对测试平台的依赖性较弱。
进一步地,本实现方式中,确定像素数据与目标像素数据是否一致,可以是若像素数据与目标像素数据完全相同,则认为确定像素数据与目标像素数据一致。
或者,也可以是若像素数据和目标像素数据的哈希码(hashcode)值一致(即对作为运算结果的像素数据进行hash运算,获得hashcode值用于与目标像素数据的hashcode值进行比较),则认为像素数据与目标像素数据一致。
或者,若像素数据与目标像素数据之间的误差小于等于预设的误差阈值,或者若像素数据对应的hashcode值与目标像素数据对应的hashcode值之间的误差小于等于预设的误差阈值,则可以认为像素数据与目标像素数据一致。该误差阈值例如可以是目标像素数据(或者目标像素数据对应的hashcode值)的K倍值,K的取值范围可以是小于等于0.1的数据,例如可以是0.1、0.05、0.086、0.099等。当然,K也可以是其他任意值,其可以根据需要选择和设置。或者,也可以通过其他的方式确定像素数据与目标像素数据一致,其可以根据需要选择和设置。
另外,在本申请的另一种实现方式中,根据像素数据与目标像素数据的比较结果确定测试结果,也可以是对像素数据与目标像素数据进行其他的数据计算、比较处理(例如前述hashcode值比较),以得到测试结果,其可以根据需要选择和设置。
在本申请的另一种实现方式中,也可以在手机中提前设置像素数据作为目标像素数据。则手机在得到第一像素数据后,直接将第一像素数据和目标像素数据进行比较,以及后续也是将得到的各像素数据与该目标像素数据进行比较,以得到比较结果,并且根据比较结果确定GPU的硬件功能是否异常。其实现过程与前述将后续像素数据和作为目标像素数据的第一像素数据进行比较的过程相同或者类似,此处不再赘述。
本申请实现方式提供的GPU测试方法,可以应用于手机出厂前的生产流程中,例如应用于产品(例如AndroidR产品)产线老化测试流程中,以验证或者确定GPU硬件(例如GPU计算单元、GPU渲染单元等)是否存在异常,可以实现GPU硬件坏片拦截测试,可以有效地拦截GPU硬件坏片,提高出厂手机的整体质量。
本申请实现方式提供的GPU测试方法,也可以应用于商用客户清退机(即客户退回返修的商用机,也可以称为EWP(Early Warning Process)机器,疑似GPU硬件问题定界分析验证或者机器验证,可以方便、安全地以确定客户退回返修的手机的GPU硬件是否存在异常。
当然,本申请实现方式提供的GPU测试方法,还可以应用于其他任意用于验证GPU功能或者GPU硬件功能是否异常的其他场景,其可以根据需要选择和设置。
下面先对本申请实现方式中提供的手机的结构进行说明。
请参见图2,图2示出了手机的一种结构示意图。
手机可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实现方式示意的结构并不构成对手机的具体限定。在本申请另一些实现方式中,手机除GPU以外,还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实现方式中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实现方式中,充电管理模块140可以通过USB接头130接收有线充电器的充电输入。在一些无线充电的实现方式中,充电管理模块140可以通过手机的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实现方式中,电源管理模块141也可以设置于处理器110中。在另一些实现方式中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
手机的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
手机通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实现方式中,手机可以包括1个或N个显示屏194,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行手机的各种功能应用以及数据处理。例如,用于执行本申请实现方式提供的GPU测试方法。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实现方式中,压力传感器180A可以设置于显示屏194。当有触摸操作作用于显示屏194,手机根据压力传感器180A检测触摸操作强度。手机也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实现方式中,触摸传感器180K也可以设置于手机的表面,与显示屏194所处的位置不同。
手机的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实现方式以分层架构的Android系统为例,示例性说明手机的软件结构。
请参见图3,图3是本申请提供的手机的一种软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实现方式中,将Android系统分为四层,从上至下分别为应用层(也可以称为应用程序层),应用框架层,系统库和硬件层。其中:
应用层可以包括一系列应用程序包。如图3所示,应用程序包可以包括测试应用等应用程序对应的Android应用程序包(Android application package,APK)。测试应用用于发起GPU测试。
应用框架层为应用层的应用提供应用程序编程接口(application programminginterface,API)和编程框架。应用框架层包括一些预先定义的函数。如图3所示,应用框架层可以包括芯片组件和系统组件。其中,芯片组件包括硬件抽象层交互式数据语言(Hardware Abstraction Layer Interactive Data Language,HIDL)接口、芯片测试代码模块(也可以称为芯片验证测试代码模块)和芯片测试进程,系统组件包括GPU测试进程、GPU测试代码模块。
系统库可以包括多个功能模块,例如包括GPU OpenGL接口,GPU OpenGL接口用于实现GPU测试代码模块与GPU之间的通信。
硬件层包括GPU和存储器件,其中GPU包括GPU计算单元、GPU渲染单元等硬件单元,存储器件用于存储预设的预置资源文件(即用于存储前述的测试源数据),以及用于存储目标像素数据,该目标像素数据可以是前述的第一像素数据,也可以是预设的像素数据。
下面将结合图3对各部分的功能进行进一步说明。
本实现方式中,测试应用例如可以是产品老化测试场景中的老化测试应用(也可以称为老化APK),用于发起老化测试,老化测试包括GPU硬件测试在内的多个子测试项。
芯片测试代码模块,是用于对GPU/中央处理器(central processing unit,CPU)/双倍速率(Double Data Rate,DDR)器件/EMMC(Embedded Multi Media Card)器件等器件进行功能测试的模块,对外可以体现为lib_socslt.so,其包含众多的子测试项,例如GPU轻重负载(gpu_light_load/gpu_high_load)测试项(即GPU硬件测试项)、CPU缓存一致性测试等子测试项。
其中,测试应用通过HIDL接口可以调用芯片测试代码模块(即调用lib_socslt.so)依次遍历各子测试项。当芯片测试代码模块遍历执行子测试项时,若遍历至GPU轻重负载测试项(即GPU硬件功能测试项),芯片测试代码模块就会调用到系统组件中的GPU测试代码模块,用于进行GPU硬件功能测试。因此测试应用可以用于发起GPU的硬件在轻负载状态和/或重负载状态下是否异常的GPU硬件功能测试。
具体的,测试应用发起老化测试,包括发起SOCSLT测试,SOCSLT测试包括GPU测试,即测试应用不直接发起GPU测试,GPU测试是SOCSLT的子测试项,在遍历SOCSLT的过程中会调用到GPU测试。
则测试应用发起老化测试,可以是先执行步骤S10,将测试命令(也可以称为测试指令)发送给HIDL接口。测试命令中包括测试参数,测试参数包括测试类型参数(也可以称为SOCSLT测试传参)和测试状态参数,其中测试类型主要是指SOCSLT测试,测试状态例如可以是测试开始或者测试关闭等状态。
HIDL接口用于接收测试命令,并且执行步骤S11,即根据测试命令调用芯片测试代码模块,并且将测试命令发送给芯片测试代码模块。
芯片测试代码模块接收测试命令,遍历SOCSLT测试,并且在遍历至需要进行GPU测试时执行步骤S12,即调用芯片测试进程,使得芯片测试进程执行步骤S13,即使得芯片测试进程以socket通信的方式将测试命令发送给系统组件中的GPU测试进程(gpu_test_server)。另外,芯片测试进程例如可以是hwfactoryinterface(即工厂界面)进程。
GPU测试进程用于接收测试命令,并且执行步骤S14,即调用GPU测试代码模块测试GPU的硬件功能是否异常,或者也可以理解为将测试命令发送给GPU测试代码模块。
需要说明的是,芯片测试进程和GPU测试进程可以在手机开机后自动启动和创建(creat),并且建立socket通信(connectsocket),或者在测试应用启动后自动启动和创建,也可以在其他时间以其他相同方式或者不同方式启动和创建,其可以根据需要选择和设置。并且,芯片测试进程在芯片组件启动和创建,GPU测试进程在系统组件启动和创建。如此,可以实现芯片组件对系统组件的访问。
GPU测试代码模块用于在芯片测试进程的调用下,根据测试命令测试GPU的硬件功能是否异常。或者,可以理解为接收测试命令,根据测试命令测试GPU的硬件功能是否异常。例如,根据测试命令中的测试状态参数确定开始测试,或者停止测试,以及根据测试指令中的测试类型从存储器件中获取对应的测试源数据等。
进一步地,GPU OpenGL接口负责GPU测试代码模块与GPU计算单元和/或GPU渲染单元等GPU硬件单元之间的通信。并且,不同的GPU OpenGL接口可以负责调用不同的GPU硬件单元;当然,同一GPU OpenGL接口也可以负责调用不同的GPU硬件单元;其可以根据需要选择和设置。
GPU计算单元用于处理GPU图像生成处理相关的像素值计算等计算处理,GPU渲染单元用于处理GPU图像生成处理相关的图像渲染处理等相关处理。
存储器件用于存储数据,例如存储预置的测试源数据(测试源数据也可以称为预置资源文件)以及目标像素数据等。其中,测试源数据可以分为轻负载测试源数据和重负载测试源数据,并且测试源数据以wrl文件格式的数据形式进行存储。
另外,手机可以在存储器件的特定文件路径下预置测试源数据,例如其中轻负载测试源数据的存储路径例如可以是product_h/*/light_load.wrl,重负载测试源数据的存储路径例如可以是product_h/*/high_load.wrl。当然,该存储路径也可以是其他的存储路径,其可以根据需要选择和设置。
则,GPU测试代码模块根据测试命令测试GPU的硬件功能是否异常,包括以下过程:
GPU测试代码模块根据测试命令中的测试状态参数确定测试开始,则执行步骤S15,即调用GPU OpenGL接口初始化本地窗口(即initWindow)、surface(即getSurface)等,以准备好图像生成处理所需的窗口和画布。
然后,GPU测试代码模块根据测试指令中的测试类型参数或者预设的测试顺序信息确定测试类型,并且执行步骤S16,即从存储器件中获取对应的测试源数据。并且再次执行步骤S15,即调用GPU OpenGL接口,使得GPU OpenGL接口执行步骤S17,将测试源数据例如发送给GPU计算单元,由GPU计算单元进行像素计算处理得到像素计算结果,即得到像素数据。
以及,GPU测试代码模块还可以得到该像素数据,并且执行步骤S18,将该像素数据存储在存储器件中。
然后,GPU测试代码模块根据测试源数据继续执行步骤S15,调用GPU OpenGL接口,使得GPU OpenGL接口执行步骤S17,将测试源数据例如发送给GPU计算单元,由GPU计算单元进行像素计算处理并且再次得到像素计算结果,即得到像素数据。
然后,GPU测试代码模块再次执行步骤S18,获取目标像素数据,并且接着将该像素数据与目标像素数据模块中存储的目标像素数据进行比较,以确定该像素数据与目标像素数据是否一致,从而确定GPU硬件功能是否异常。
GPU测试代码模块确定GPU硬件功能是否异常,可以是如前所述的若像素数据与目标像素数据不一致,则说明GPU的硬件功能存在异常,得到GPU硬件功能异常的测试结果。若像素数据与目标像素数据一致,则继续根据测试源数据再次进行像素计算处理,得到测试源数据对应的像素数据。并且,GPU测试代码模块将新得到的像素数据和目标像素数据进行比较,以确定新得到的像素数据和目标像素数据是否一致。若不一致,则说明GPU的硬件功能存在异常,若一致,则继续重复执行像素计算处理,并将得到的像素数据和目标像素数据进行比较,以确定像素数据和目标像素数据是否一致,直至测试次数达到前述预设的测试次数。最终,若每一次得到的像素数据和目标像素数据都一致,则可以确定GPU硬件功能无异常。若某一次得到的像素数据和目标像素数据不一致,则可以确定GPU硬件功能异常。
本实现方式中,GPU测试代码模块得到GPU硬件功能是否异常的测试结果后,还可以执行步骤S19,将测试结果发送给GPU测试进程,然后使得GPU测试进程执行步骤S20,以socket通信的方式将测试结果发送给芯片组件中的芯片测试进程。然后,由芯片测试进程依次通过芯片测试代码模块、HIDL接口将测试结果反馈给测试应用,即芯片测试进程、芯片测试代码模块和HIDL接口分别执行图示的步骤S21、步骤S22和步骤S23,将测试结果反馈给测试应用。测试应用接收到测试结果后,可以通过手机的显示屏显示对应的测试结果,或者将测试结果发送给对应的测试人员的电脑或者服务器等电子设备。
测试应用显示测试结果,例如可以是如前所述,在屏幕上显示“GPU硬件功能异常”、“GPU硬件功能无异常”,或者也可以是“GPU轻负载测试异常、GPU重负载测试无异常”、“GPU轻负载测试无异常、GPU重负载测试异常”等关键词提醒信息,其可以根据需要具体选择和设置。
另外,测试应用显示测试结果,也可以通过调整屏幕的显示颜色,以向测试人员输出对应的测试结果。例如,若测试成功(即GPU硬件功能无异常),则手机的屏幕显示为绿屏,若测试失败(即GPU硬件功能异常),则手机的屏幕显示为红屏。
当然,测试应用显示测试结果,也可以结合调整屏幕的显示颜色和提醒信息的方式,以向测试人员输出对应的测试结果。例如,若测试成功(即GPU硬件功能无异常),则手机的屏幕显示为绿屏,若测试失败(即GPU硬件功能异常),则手机的屏幕显示为红屏,以及显示测试项失败关键词“GPU重负载测试异常”。
本实现方式中,GPU测试代码模块也可以调用GPU OpenGL接口执行步骤S17’,以将测试源数据例如发送给GPU渲染单元,由GPU渲染单元进行图像渲染处理得到像素渲染结果(例如得到像素数据),从而确定GPU渲染单元是否异常等。或者,GPU测试代码模块也可以将测试源数据同时发送给GPU计算单元和GPU渲染单元,由GPU计算单元和GPU渲染单元分别进行图像处理得到像素渲染结果(例如得到像素数据),从而确定GPU硬件功能是否异常。当然,GPU测试代码模块也可以将测试源数据发送给GPU中的其他硬件单元进行处理,以确定GPU的其他硬件单元是否异常,从而确定GPU硬件功能是否异常。
需要说明的是,由于GPU的绘图能力依赖部分系统库(例如GPU OpenGL接口),因此,此部分实现放在系统组件实现。测试开始,为实现前述芯片组件和系统组件之间的通信,需要芯片组件通过前述的socket通信的方式传输包括测试参数的测试命令到系统组件,并且芯片组件和系统组件之间通过前述进程通信的方式实现测试命令的传递。
另外,前述的存储部件可以由图2所示的内部存储器121实现。
以及,本实现方式中,GPU测试代码模块执行的前述测试处理过程,可以理解为GPU测试代码模块是在GPU测试进程的调用下执行,或者也可以认为是由GPU测试代码模块执行。
可以理解的是,本申请实现方式示意的软件结构并不构成对手机的具体限定。在本申请另一些实现方式中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。前述各部件的功能也可以由其他一个或者多个其他部件实现。以及,图示的部件可以以硬件,软件或软件和硬件的组合实现。
下面将结合手机的一些显示界面,以产品老化测试场景为例,对手机进行GPU测试的过程进行说明。
在本申请的一种实现方式中,请参见图4A,手机根据用户(例如手机厂商的测试人员)的操作,显示如图4A所示的显示界面,该显示界面包括测试应用的图标。若手机接收到用户对测试应用的图标的点击操作,手机打开测试应用显示如图4B所示的显示界面。
图4B所示的显示界面包括“SOCSLT”、“充电模式”、“相机”等多个老化子测试项,用户可以根据需要对对应老化子测试项的参数进行设置,并且其中SOC即为片上系统(Systemon Chip),SLT即为系统级测试(System Level Test),“SOC SLT”子测试项即包括针对GPU硬件功能是否异常的测试。
另外,图4B所示的显示界面还包括“开始测试”、“重置配置”和“选择所有”控件。如图4B所示,若手机接收到用户通过“选择所有”控件选择测试所有的子测试项的操作(作为对测试类型的选择操作的一种示例),并且接收到用户对“开始测试”控件的点击操作(作为测试状态触发操作的一种示例),手机开始按照预设的测试顺序依次测试各子测试项,并且在进行“SOCSLT”测试的过程中,会进行GPU硬件功能测试。并且,针对GPU硬件功能测试,手机需要分别获取轻负载测试类型对应的测试源数据和重负载测试类型对应的测试源数据,以依次分别测试轻负载状态和重负载状态下GPU的硬件功能是否异常。
另外,在本申请的一种实现方式中,如图4C所示,若手机确定用户未选择所有的子测试项,并且如图4C所示,手机接收到用户对“SOC SLT”子测试项的点击操作,手机显示如图4D所示的显示界面。
图4D所示的显示界面包括“SOC SLT测试”选择控件和“SOC SLT测试次数(即testtimes)”设置控件。如图4D所示,若手机接收到用户对“SOC SLT测试”选择控件的点击操作(作为对测试类型的选择操作的另一种示例),以及对“开始测试”控件的点击操作(作为测试状态触发操作的另一种示例),手机开始进行SOC SLT测试,并且预设的测试次数为10次。手机在进行“SOCSLT”测试的过程中,会进行GPU硬件功能测试。并且,针对GPU硬件功能测试,手机需要分别获取轻负载测试类型对应的测试源数据和重负载测试类型对应的测试源数据,以依次分别测试轻负载状态和重负载状态下GPU的硬件功能是否异常。
在本申请的另一种实现方式中,如图4C所示,若手机确定用户未选择所有的测试项,并且如图4C所示,手机接收到用户对“SOC SLT”测试项的点击操作,手机显示如图4E所示的显示界面。
图4E所示的显示界面中的“SOC SLT测试”选择控件下还包括“轻负载”测试类型和“重负载”测试类型两种测试类型,用户可以根据需要选择对应的测试类型。
如图4E所示,若手机接收到用户对“重负载”测试类型对应的选择框的点击操作(作为对测试类型的选择操作的另一种示例),以及对“开始测试”控件的点击操作(作为测试状态触发操作的另一种示例),手机获取“重负载”测试类型对应的测试源数据,并根据测试源数据进行测试处理,显示可以如图4F所示的显示画面,该显示画面包括根据测试源数据得到的图像。并且,手机可以得到测试源数据对应的像素数据,根据像素数据确定GPU的硬件功能是否异常。
需要说明的是,对于手机根据像素数据确定GPU的硬件功能是否异常的过程将在后文进行详细说明,此处暂不进行说明。并且,手机进行GPU重负载测试的测试次数为10次。
并且,若确定GPU在重负载测试状态下硬件功能无异常,则如图4G所示,手机显示提醒信息“重负载测试结果:GPU硬件功能无异常”,当然,手机还可以将屏幕显示为蓝色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能无异常。若确定GPU的硬件功能异常,则如图4H所示,手机显示提醒信息“重负载测试结果:GPU硬件功能异常”,当然,手机还可以将屏幕显示为红色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能异常。
当然,若手机接收到用户对“轻负载”测试类型对应的选择框的点击操作,以及对“开始测试”控件的点击操作,手机开始进行GPU轻负载测试,并且预设的测试次数为10次。
若手机接收到用户对前述图4E所示的“轻负载”测试类型后的选择框的点击操作,并且接收到用户对“开始测试”控件的点击操作,手机获取“轻负载”测试类型对应的测试源数据,并根据测试源数据进行测试处理,显示类似于前述图4F所示的显示画面,该显示画面包括根据测试源数据绘制得到的图像。并且,手机可以得到该测试源数据对应的像素数据,根据像素数据确定GPU的硬件功能是否异常。需要说明的是,对于手机根据像素数据确定GPU的硬件功能是否异常的过程将在后文进行详细说明,此处暂不进行说明。并且,手机进行GPU轻负载测试的测试次数为10次。
并且,若确定GPU的硬件功能无异常,则手机可以显示类似于图4G所示的提醒信息“轻负载测试结果:GPU硬件功能无异常”,当然,手机还可以将屏幕显示为蓝色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能无异常。若确定GPU的硬件功能异常,则手机可以显示类似于图4H所示的提醒信息“轻负载测试结果:GPU硬件功能异常”,当然,手机还可以将屏幕显示为红色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能异常。
另外,在本申请的另一些实现方式中,若手机同时接收到用户对前述图4E所示的“轻负载”和“重负载”测试类型后的选择框的点击操作,以及对“开始测试”控件的点击操作,则手机按照预设的测试顺序依次进行测试,得到测试结果。测试顺序例如可以是手机可以先进行轻负载测试,再进行重负载测试,或者手机也可以先进行重负载测试,再进行轻负载测试,其可以根据需要选择和设置。
需要说明的是,手机在按照测试顺序进行测试时,需要分别显示两次如前述图4F所示的图像界面,并且对应的测试次数分别为预设的测试次数为10次。
另外,手机在得到测试结果后,可以显示如图4I所示的显示界面,例如,手机显示提醒信息“重负载测试结果:GPU硬件功能无异常;轻负载测试结果:GPU硬件功能异常”,当然,手机也可以显示提醒信息“重负载测试结果:GPU硬件功能无异常;轻负载测试结果:GPU硬件功能无异常”,或者显示提醒信息“重负载测试结果:GPU硬件功能异常;轻负载测试结果:GPU硬件功能异常”,或者显示提醒信息“重负载测试结果:GPU硬件功能异常;轻负载测试结果:GPU硬件功能无异常”等。
当然,若重负载测试结果和轻负载测试结果都为GPU硬件功能无异常,则手机还可以将屏幕显示为蓝色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能无异常。若重负载测试结果和轻负载测试结果中至少有一项为异常,则手机还可以将屏幕显示为红色,或者通过其他的方式,提醒用户测试结果为GPU硬件功能异常。
本实现方式中,手机中可以安装测试应用(即老化APK),并且在该测试应用的老化测试项中集成本申请实现方式提供的GPU测试方法。如此,可以由测试应用批量发起测试或单项发起GPU测试,以及可以使得手机可以根据用户对测试类型的选择操作,可以方便地获取对应的测试源数据进行负载测试,以确定GPU的硬件功能是否存在异常。提高了GPU测试的便捷性。
在本申请的另一些实现方式中,手机也可以在手机中的设置功能控件下,提供对应的GPU测试控件,并且根据用户对GPU测试控件的点击操作,触发前述的轻负载测试和/或重负载测试,得到GPU硬件测试结果。如此,可以满足用户对手机GPU硬件功能的不同测试需求。
在本申请的另一些实现方式中,手机也可以根据用户操作显示其他的测试操作界面,以用于用户进行GPU硬件功能测试操作,并且手机也可以显示其他的测试界面和测试结果界面,以便用户进行查看;或者手机也可以其他方式自动触发前述GPU硬件功能测试;其皆可以根据需要选择和设置。
下面将对手机进行前述轻负载和重负载场景下GPU硬件功能测试的过程进行进一步说明。
请参见图5,图5示出了本申请实现方式提供的手机进行轻负载和重负载场景下GPU硬件功能测试的一种过程示意图,具体包括以下步骤:
S101,手机中的GPU测试代码模块接收到前述的测试命令后,开始测试处理。首先,GPU测试代码模块调用GPU openGL接口(即GPU openGL API)初始化本地窗口和画布(即surface),以准备好用于图像渲染的窗口和画布。
测试命令中包括前述的测试类型参数和测试状态参数。
S102,GPU测试代码模块从前述存储器件中分别获取本地预置的重负载测试类型和轻负载测试类型对应的wrl文件格式的顶点数据(即顶点源数据),并且调用GPU顶点数据处理函数加载、处理预置的wrl文件格式的顶点数据,得到可供GPU OpenGL接口执行的二维数组数据形式的顶点数据。然后,GPU测试代码模块调用GPU OpenGL接口将顶点数据载入至GPU(例如GPU计算单元和/或GPU渲染单元等)中,将顶点数据作为测试源数据。
需要说明的是,重负载测试类型对应的顶点数据的存储路径例如可以是前述的product_h/*/light_load.wrl,轻负载测试类型对应的顶点数据的存储路径例如可以是前述的product_h/*/light_load.wrl。
S103,GPU测试代码模块根据测试命令中的测试类型参数判断负载类型(即测试类型),若负载类型为轻负载,则执行步骤S105,即直接将轻负载测试类型对应的顶点数据作为轻负载测试类型对应的测试源数据。若负载类型为重负载,则执行步骤S104。
S104,GPU测试代码模块从存储器件中获取本地预置的重负载测试类型对应的wrl文件格式的纹理数据(即纹理源数据),并且调用GPU纹理数据处理函数加载、处理预置的wrl文件格式的纹理数据,得到可供GPU OpenGL接口执行的二维数组数据形式的纹理数据。然后,GPU测试代码模块调用GPU OpenGL接口,将前述二维数组数据形式的顶点数据和二维数组数据形式的纹理数据,载入至GPU(例如GPU计算单元和/或GPU渲染单元等)中,将该顶点数据和纹理数据一起作为重负载测试类型对应的测试源数据。
需要说明的是,纹理数据的存储路径例如可以是前述的product_h/*/high_load.wrl。本实现方式中,GPU测试代码模块可以先执行步骤S102先分别获取重负载测试类型对应的测试源数据和轻负载测试类型对应的测试源数据,再执行步骤S103。
在本申请的另一些实现方式中,GPU测试代码模块接收到测试命令后,也可以先执行前述的步骤S103,先判断负载类型,即先判断测试类型,然后再根据测试类型执行获取对应的顶点数据或者获取对应的顶点数据和纹理数据的操作。如此,不论不同测试类型对应的顶点数据是否相同,GPU测试代码模块都可以准确地获取到不同测试类型对应的测试源数据。
S105,GPU测试代码模块根据预设的测试次数,开始发起绘图和像素数据计算、比较测试。首先,GPU测试代码模块判断当前是否达到预设的测试次数,若否,则执行步骤S106,若是,则执行步骤S112。
需要说明的是,由于此时为第一次测试处理,因此肯定没有达到预设的测试次数,则也可以直接执行步骤S106。
另外,若达到测试次数,GPU测试进程可以主动发起停止测试处理的命令,以调用GPU测试代码模块等相关部件停止测试处理,并向测试应用反馈相应测试结果。
S106,GPU测试代码模块调用GPU openGL接口,使得GPU openGL接口调用GPU(例如GPU计算单元和/或GPU渲染单元等),根据测试源数据进行数据测试处理(也可以理解为像素数据计算、渲染处理等),得到计算完成的像素数据,并且存储在例如存储器件包括的帧缓存器(framebuffer)中。
S107,GPU测试代码模块从帧缓存器中读取渲染结果(即读取像素数据)。
GPU测试代码模块可以调用glReadPixels接口从帧缓存器中读取当前渲染结果(即读取像素数据)。
S108,GPU测试代码模块判断当前是否存在目标像素数据。若不存在,则执行步骤S109,并且接着继续执行前述步骤S106,以得到后续渲染结果(即像素数据)。若存在,则执行步骤S110。
需要说明的是,目标像素数据也可以称为金像素(golden_pixels),是用来作为比较的像素值的集合。以及,GPU测试代码模块在第一次得到像素数据后,也可以不执行步骤S108,直接将第一次得到的像素数据存储为目标像素数据。在得到后续像素数据后,也可以不执行步骤S108,直接执行步骤S110,即确定得到的像素数据与目标像素数据是否一致。
S109,GPU测试代码模块将该渲染结果(即像素数据)存储至存储器件中,作为目标像素数据。
例如,GPU测试代码模块可以调用glReadPixels接口从帧缓存器中获取该像素数据存储在帧缓存器中作为目标像素数据。当然,GPU测试代码模块也可以将像素数据对应的hashcode值存储在帧缓存器中作为目标像素数据对应的hashcode值。
S110,GPU测试代码模块在得到后续渲染结果(即像素数据)后,比较渲染结果(即像素数据)与目标像素数据是否一致,若一致,则继续执行前述步骤S105,以确定是否达到测试次数,若未达到,则循环得到后续渲染结果(即像素数据)。若不一致,则执行步骤S111。
需要说明的是,后续像素数据即为待比较的像素数据,因此可以称为比较像素数据(compare_pixels)。
以及,GPU测试代码模块比较后续像素数据与目标像素数据是否一致,可以是将后续像素数据与目标像素数据的哈希码(hashcode)值进行比较。即,若哈希码值一致,则当前计算成功,说明本次测试GPU运算正常,继续重复执行步骤S105,直至达到预设的测试次数。若哈希码值不一致,则当前计算失败,说明存在GPU运算异常情况,GPU测试代码模块跳出测试循环,执行步骤S111。
在本申请的另一些实现方式中,GPU测试代码模块比较待比较的像素数据与目标像素数据是否一致,也可以是将每个像素数据单点一一进行比较,以确定各像素数据是否一致,以确定第二像素数据与目标像素数据是否一致。或者可以将多个像素数据划分为多个像素值组,计算每个像素值组的哈希码值,然后再比较每个像素值组的哈希码值与目标像素数据的哈希码值是否一致,以确定待比较的像素数据与目标像素数据是否一致。当然,也可以以其他方式比较待比较的像素数据与目标像素数据是否一致。
S111,GPU测试代码模块得到测试结果“GPU硬件异常”,并且通过前述的GPU测试进程以socket通信的方式,将当前测试结果反馈至前述的芯片测试进程,再由芯片测试进程依次反馈至测试应用,由测试应用输出测试结果。
例如,本次进行的是轻负载测试,则输出测试结果例如可以是前述的“轻负载测试结果:GPU硬件功能异常”。若本次进行的是重负载测试,则输出测试结果例如可以是前述“重负载测试结果:GPU硬件功能异常”等。当然,若是按照测试顺序依次进行了轻负载测试和重负载测试,则输出测试结果例如可以是前述“轻负载测试结果:GPU硬件功能异常;重负载测试结果:GPU硬件功能异常”等。
S112,GPU测试代码模块确定完成测试,并且确定测试结果为“GPU硬件功能无异常”,以及通过前述的GPU测试进程以socket通信的方式,将当前测试结果反馈至前述的芯片测试进程。再由芯片测试进程依次反馈至测试应用,由测试应用输出测试结果。
例如,本次进行的是轻负载测试,则输出测试结果例如可以是前述的“轻负载测试结果:GPU硬件功能无异常”。若本次进行的是重负载测试,则输出测试结果例如可以是前述“重负载测试结果:GPU硬件功能无异常”等。当然,若是按照测试顺序依次进行了轻负载测试和重负载测试,则输出测试结果例如可以是前述“轻负载测试结果:GPU硬件功能无异常;重负载测试结果:GPU硬件功能无异常”等。
综上,本实现方式中,GPU测试代码模块根据测试源数据对GPU进行测试处理,得到测试源数据对应的像素数据,具体可以是,GPU测试代码模块根据测试源数据对GPU循环进行N次测试处理,得到测试源数据对应的N个像素数据,N为预设的测试次数,并且N为大于等于2的正整数。则,GPU测试代码模块根据像素数据,确定GPU的测试结果,包括:若N个像素数据都一致,则确定测试结果为GPU的功能无异常,否则,确定测试结果为GPU的功能异常。
并且,N个像素数据都一致,包括:各第Ni像素数据分别与第N1像素数据一致,i为大于等于2、小于等于N的正整数,第N1像素数据为根据测试源数据得到的第一个像素数据。则如上所述,该GPU测试方法包括:GPU测试代码模块根据测试源数据对GPU进行第一次测试处理,得到测试源数据对应的第N1像素数据。然后,GPU测试代码模块根据测试源数据对GPU进行后续测试处理,得到测试源数据对应的第Ni像素数据(此时,该i为大于等于2、小于等于N-1的正整数)。GPU测试代码模块将第Ni像素数据与第N1像素数据进行比较;若确定第Ni像素数据与第N1像素数据一致,则根据测试源数据继续对GPU进行下一次测试处理,得到与测试源数据对应的下一个像素数据,即得到第Ni+1像素数据,并比较第Ni+1像素数据与第N1像素数据是否一致,直至达到测试次数,结束测试处理,并且确定测试结果为图形处理器的功能无异常。或者,若出现第Ni+1像素数据与第N1像素数据不一致的情况,结束测试处理,并且确定测试结果为图形处理器的功能异常。以及,若确定第Ni像素数据与第N1像素数据不一致,则确定测试结果为GPU的功能异常,并且结束测试处理。
在本申请的另一种实现方式中,N个像素数据都一致,包括:第Ni像素数据分别与预设的目标像素数据一致,i为大于等于1、小于等于N的正整数。则本申请提供的GPU测试方法包括:GPU测试代码模块根据测试源数据对GPU进行测试处理,得到与测试源数据对应的第Ni像素数据。GPU测试代码模块将第Ni像素数据,与目标像素数据进行比较,若确定第Ni像素数据与目标像素数据一致,则根据测试源数据继续对GPU进行测试处理,得到与测试源数据对应的下一个像素数据,即得到第Ni+1像素数据(此时,该i为大于等于2、小于等于N-1的正整数),并比较第Ni+1像素数据与目标像素数据是否一致,直至达到测试次数,结束测试处理,并且确定测试结果为图形处理器的功能无异常。或者,若出现第Ni+1像素数据与目标像素数据不一致的情况,则确定测试结果为图形处理器的功能异常,并且结束测试处理。以及,若确定第Ni像素数据与目标像素数据不一致,则确定测试结果为GPU的功能异常,并且结束测试处理。
需要说明的是,本实现方式中,GPU测试代码模块执行的前述测试处理过程,可以理解为GPU测试代码模块是在GPU测试进程的调用下执行,或者也可以认为是由GPU测试代码模块执行。
本实现方式提供的GPU测试方法,是一种基于像素数据比较的GPU轻重负载测试方法,可以分别测试手机的GPU在轻负载状态下和/或重负载状态下,GPU硬件功能是否异常。
本实现方式中,通过GPU计算像素结果比较判断GPU工作状态,即确定GPU硬件功能是否异常,其方案简单易实现、易拓展,可测试GPU各着色器核心(shader core)的能力。
在本申请实现方案中,手机可以如前所述每得到一个像素数据,即与目标像素数据进行比较,以得到测试结果。在本申请的另一种实现方式中,手机也可以先进行多次测试处理直接得到多个像素数据,然后再将每个像素数据与目标像素数据进行比较。并且,若确定出现至少一个像素数据与目标像素数据不一致的情况,则确定测试结果为GPU的功能异常。若确定每个像素数据与目标像素数据都一致,则确定测试结果为GPU的功能无异常。或者,若确定该多个像素数据中,出现M个像素数据与目标像素数据一致的情况,则确定测试结果为GPU的性能无异常,否则确定测试结果为GPU的性能异常。其中,M为大于等于预设阈值、小于等于N的正整数,该预设阈值例如可以是测试次数的H倍对应的正整数,H的取值范围可以是大于等于0.5的数据,例如可以是0.5、0.86、0.99等。当然,H也可以是其他任意值,其可以根据需要选择和设置。
本实现方式中,GPU测试进程可以根据前述测试命令中的测试次数主动发起或者停止测试,并且反馈最终的测试结果。或者,也可以根据芯片测试进程通过socket通信发送来的停止测试的命令,主动提前结束测试,并且反馈当前测试结果。
另外,本申请实现方式提供的GPU测试方法中,通过前述的GPU openGL接口实现GPU测试代码模块和GPU计算单元、GPU渲染单元等单元之间的通信,可以方便适配在各Android版本产品的测试上。
在本申请的另一些实现方式中,前述图4A-4E所示的手机显示界面上,也可以包括“停止测试”、“暂停测试”等控件,以用于用户停止前述的测试处理,并且手机可以根据用户对对应控件的点击操作(作为测试状态触发操作的另一种示例),停止测试处理。或者,手机根据前述预设的测试顺序信息完成测试后,也可以自动结束测试处理。或者,手机也可以根据预置的处理命令或者其他电子设备发送的命令等进行前述测试处理。
在本申请的另一些实现方式中,本申请实现方式提供的GPU测试方法也可以应用于对EWP机器(即商用客退机)的测试。其实现包括以下过程:
通过编译的方式将前述的芯片测试代码模块(也可以称为SOCSLT模块)、GPU测试代码模块等相关内容编译为例如lib_xxx文件(如lib_socslt.bin)文件,然后将依赖的wrl文件格式的测试源数据(即预置资源文件)和系统组件包括的GPU测试代码等内容sopush到手机中。
手机预置wrl文件格式的测试源数据(即预置资源文件)和lib_xxx文件需要执行获取Root权限(可以通过烧写Root包文件实现)的操作。
然后,由对应的测试人员手动执行lib_xxx文件即可发起测试,例如执行adbshell“vendor/bin/lib_xxx”的操作。具体测试过程与前述图5所示的过程类似,此处不再赘述。
需要说明的是,在对EWP机器(即商用客退机)的测试的场景中,如果手机中没有预置wrl文件格式的测试源数据(即预置资源文件)和lib_xxx文件,则测试人员需要的操作包括:首先,测试人员需要获取Root权限(例如烧写Root包文件)。然后,执行adb push light_load.wrlproduct_h/*/light_load.wrl(即存储轻负载测试源数据)、adb push high_load.wrlproduct_h/*/high_load.wrl(即存储重负载测试源数据)、adb push lib_xxxvendor/bin(即存储lib_xxx文件)操作等操作,以将wrl文件格式的测试源数据(即预置资源文件)存储至手机中。最后,执行adb shell“vendor/bin/lib_xxx”即可发起测试。
在本申请的另一些实现方式中,本申请实现方式提供的GPU测试方法也可以直接应用于未装机(例如装机前)的GPU的测试。其实现包括以下过程:在例如电脑等GPU测试用设备的系统中提供前述的测试应用、芯片组件、系统组件、GPU openGL接口、存储器件等相关的测试用环境(例如可以通过对应的虚拟机系统实现等),然后将GPU与测试GPU所用的电脑通信连接(例如通过数据线进行连接),使得电脑通过GPU openGL接口可以与GPU通信,从而使得电脑可以测试该未装机的GPU的硬件功能。电脑测试该未装机的GPU的硬件功能的过程与前述手机自己测试其GPU硬件功能的过程类似,此处不再赘述。
需要说明的是,当前也有一些关于GPU的测试软件(如specviewperf13、gfxbench、3Dmark等),可以测试GPU的功能。但是这些软件属于第三方软件,存在提前泄漏产品功能的风险,不能应用于产线生产,且都属于GPU功能测试的跑分软件,不能验证GPU硬件状态。
在本申请的另一些实现方式中,前述的电子设备也可以是手机以外的其他包括GPU的电子设备,例如可以是车载设备、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如包括:智能手表、智能手环、计步器等)、个人数字助理、便携式媒体播放器、导航设备、视频游戏设备、机顶盒、虚拟现实和/或增强现实设备、物联网设备、工业控制设备、流媒体客户端设备、电子书、阅读设备、POS机以及其他设备。
在本申请的另一些实现方式中,根据多个像素数据与目标像素数据的比较结果,确定GPU的测试结果,也可以是若像素数据与目标像素数据之间的误差小于等于预设的误差阈值,则可以认为像素数据与目标像素数据一致。
在本申请的另一些实现方式中,前述像素数据也可以是与图像生成处理相关的其他类型的测试结果数据,其可以根据需要选择和设置。
在本申请的另一些实现方式中,前述测试结果也可以是文字提示信息以外的颜色、图像、声音等方式的提醒信息,其可以根据需要选择和设置。
下面对本申请实现方式提供的电子设备的另一些可能的结构进行说明。
请参见图6,图6所示为根据本申请的一种实现方式提供的电子设备900的结构示意图。电子设备900可以包括耦合到控制器中枢904的一个或多个处理器901,处理器901包括GPU。对于至少一个实现方式,控制器中枢904经由诸如前端总线(Front Side Bus,FSB)之类的多分支总线、诸如快速通道互连(QuickPath Interconnect,QPI)之类的点对点接口、或者类似的连接与处理器901进行通信。处理器901执行控制一般类型的数据处理操作的指令。在一实现方式中,控制器中枢904包括,但不局限于,图形存储器控制器中枢(Graphics Memory controller hub,GMCH)(图中未示出)和输入/输出中枢(IOH)(其可以在分开的芯片上)(图中未示出),其中GMCH包括存储器和图形控制器并与IOH耦合。
电子设备900还可包括耦合到控制器中枢904的协处理器906和存储器902。或者,存储器902和GMCH中的一个或两者可以被集成在处理器901内(如本申请中所描述的),存储器902和协处理器906直接耦合到处理器901以及控制器中枢904,控制器中枢904与IOH处于单个芯片中。
存储器902可以是例如动态随机存取存储器(Dynamic Random Access Memory,DRAM)、相变存储器(Phase Change Memory,PCM)或这两者的组合。
在一个实现方式中,协处理器906是专用处理器,诸如例如高吞吐量众核(ManyIntegrated Core,MIC)处理器、网络或通信处理器、压缩引擎、图形处理器、通用图形处理器(General Purpose Graphics Processing Units,GPGPU)等GPU、或嵌入式处理器等等。协处理器906的任选性质用虚线表示在图6中。
在一个实现方式中,电子设备900可以进一步包括网络接口(Network InterfaceCard,NIC)903。网络接口903可以包括收发器,用于为电子设备900提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实现方式中,网络接口903可以与电子设备900的其他组件集成。网络接口903可以实现上述实现方式中的通信单元的功能。
电子设备900可以进一步包括输入/输出(I/O)设备905。输入/输出(I/O)设备905可以包括:用户界面,该设计使得用户能够与电子设备900进行交互;外围组件接口的设计使得外围组件也能够与电子设备900交互;和/或传感器设计用于确定与电子设备900相关的环境条件和/或路径信息。
值得注意的是,图6仅是示例性的。即虽然图6中示出了电子设备900包括处理器901、控制器中枢904、存储器902等多个器件,但是,在实际的应用中,使用本申请各方法的设备,可以仅包括电子设备900各器件中的一部分器件,例如,可以仅包含处理器901和NIC903。图6中可选器件的性质用虚线示出。
在该电子设备900的存储器中可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。
本申请中,该电子设备900具体可以是手机、平板电脑、个人数字助理(PersonalDigital Assistant,PDA)或台式电脑等终端设备。该电子设备的存储器中存储的指令可以包括:由处理器中的至少一个单元执行时导致电子设备实施如前述提到的GPU测试方法的指令。
请参见图7,图7所示为根据本申请的一种实现方式提供的SoC(System on Chip,片上系统)1000的结构示意图。在图7中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC 1000的可选特征。该SoC 1000可以被用于根据本申请的任一电子设备,根据其所在的设备不同以及其内所存储的指令的不同,可以实现相应的功能。
在图7中,SoC1000包括:互连单元1002,其被耦合至处理器1001;系统代理单元1006;总线控制器单元1005;集成存储器控制器单元1003;一组或一个或多个协处理器1007,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(Static Random-Access Memory,SRAM)单元1008;直接存储器存取(Direct MemoryAccess,DMA)单元1004。在一个实现方式中,协处理器1007包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU等GPU、高吞吐量MIC处理器、或嵌入式处理器等等。
SRAM单元1008中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器1001中的至少一个单元执行时导致电子设备实施如前述所提到的GPU测试方法的指令。
需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实现方式中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实现方式中都需要这样的特征,并且在一些实现方式中,可以不包括这些特征或者可以与其他特征组合。
虽然通过参照本申请的某些实现方式,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,以上内容是结合具体的实现方式对本申请所作的进一步详细说明,不能认定本申请的具体实现方式只局限于这些说明。本领域技术人员可以在形式上和细节上对其作各种改变,包括做出若干简单推演或替换,而不偏离本申请的精神和范围。
Claims (20)
1.一种图形处理器测试方法,其特征在于,应用于电子设备,所述方法包括:
确定测试类型,所述测试类型包括轻负载测试类型和重负载测试类型;
根据所述测试类型,从本地预置的测试源数据中获取预设的与所述测试类型对应的测试源数据,所述测试源数据为图像数据;
根据所述测试源数据对所述电子设备包括的所述图形处理器进行N次测试处理,得到与所述测试源数据对应的N个测试结果数据,所述测试处理为由所述图形处理器根据所述测试源数据执行的图像生成处理,所述测试结果数据为所述测试源数据经所述图像生成处理后生成的对应图像的像素数据,N为预设的测试次数,并且N为大于等于2的正整数;
根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,所述目标测试结果数据为目标像素数据,所述测试结果为所述图形处理器的硬件功能异常或者所述图形处理器的硬件功能无异常。
2.根据权利要求1所述的图形处理器测试方法,其特征在于,根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,包括:
若确定出现至少一个所述测试结果数据与所述目标测试结果数据不一致的情况,则确定所述测试结果为所述图形处理器的硬件功能异常。
3.根据权利要求1所述的图形处理器测试方法,其特征在于,根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,包括:
若确定每个所述测试结果数据与所述目标测试结果数据都一致,则确定所述测试结果为所述图形处理器的硬件功能无异常。
4.根据权利要求1所述的图形处理器测试方法,其特征在于,根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,包括:
若确定出现M个所述测试结果数据与所述目标测试结果数据一致的情况,则确定所述测试结果为所述图形处理器的硬件功能无异常,M为大于等于预设阈值、小于等于N的正整数。
5.根据权利要求1所述的图形处理器测试方法,其特征在于,所述目标测试结果数据为预设的数据。
6.根据权利要求5所述的图形处理器测试方法,其特征在于,根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,包括:
根据所述测试源数据对所述图形处理器进行所述测试处理,得到与所述测试源数据对应的第Ni测试结果数据,i为大于等于1、小于等于N-1的正整数;
将所述第Ni测试结果数据,与所述目标测试结果数据进行比较;
若确定所述第Ni测试结果数据与所述目标测试结果数据一致,则根据所述测试源数据继续对所述图形处理器进行下一次所述测试处理,得到与所述测试源数据对应的第Ni+1测试结果数据,并比较所述第Ni+1测试结果数据与所述目标测试结果数据是否一致,直至达到所述测试次数,结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能无异常;或者,若出现所述第Ni +1测试结果数据与所述目标测试结果数据不一致的情况,则结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能异常;
若确定所述第Ni测试结果数据与所述目标测试结果数据不一致,则结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能异常。
7.根据权利要求1所述的图形处理器测试方法,其特征在于,所述目标测试结果数据为进行第一次所述测试处理得到的测试结果数据。
8.根据权利要求7所述的图形处理器测试方法,其特征在于,根据所述N个测试结果数据与目标测试结果数据的比较结果,确定所述图形处理器的测试结果,包括:
根据所述测试源数据对所述图形处理器进行第一次所述测试处理,得到与所述测试源数据对应的所述第N1测试结果数据;
根据所述测试源数据对所述图形处理器进行后续测试处理,得到与所述测试源数据对应的第Ni测试结果数据,i为大于等于2、小于等于N-1的正整数;
将所述第Ni测试结果数据,与所述第N1测试结果数据进行比较;
若确定所述第Ni测试结果数据与所述第N1测试结果数据一致,则根据所述测试源数据继续对所述图形处理器进行下一次所述测试处理,得到与所述测试源数据对应的第Ni+1测试结果数据,并比较所述第Ni+1测试结果数据与所述第N1测试结果数据是否一致,直至达到所述测试次数,结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能无异常;或者,若出现所述第Ni+1测试结果数据与所述第N1测试结果数据不一致的情况,则结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能异常;
若确定所述第Ni测试结果数据与所述第N1测试结果数据不一致,则结束所述测试处理,并且确定所述测试结果为所述图形处理器的硬件功能异常。
9.根据权利要求8所述的图形处理器测试方法,其特征在于,所述方法还包括:
将所述第N1测试结果数据直接存储为所述目标测试结果数据;或者
若确定不存在预设的目标测试结果数据,则将所述第N1测试结果数据存储为所述目标测试结果数据。
10.根据权利要求1所述的图形处理器测试方法,其特征在于,所述轻负载测试类型对应的测试源数据包括顶点数据。
11.根据权利要求1所述的图形处理器测试方法,其特征在于,所述重负载测试类型对应的测试源数据包括顶点数据和纹理数据。
12.根据权利要求1所述的图形处理器测试方法,其特征在于,所述轻负载测试类型和所述重负载测试类型包括的顶点数据不相同。
13.根据权利要求1所述的图形处理器测试方法,其特征在于,确定测试类型,包括:
接收用户对测试类型的选择操作,根据所述选择操作确定所述测试类型;或者
根据预设的测试顺序信息,确定所述测试类型。
14.根据权利要求1-13任意一项所述的图形处理器测试方法,其特征在于,所述图像生成处理包括像素计算处理,和/或图像渲染处理。
15.根据权利要求1-13任意一项所述的图形处理器测试方法,其特征在于,所述方法还包括:
接收用户的测试状态触发操作,根据所述测试状态触发操作开始所述测试处理,和/或结束所述测试处理;或者
根据预设的测试顺序信息,开始所述测试处理,和/或结束所述测试处理。
16.根据权利要求1-13任意一项所述的图形处理器测试方法,其特征在于,根据所述测试源数据对所述图形处理器进行N次测试处理,得到与所述测试源数据对应的N个测试结果数据;包括:
根据所述测试源数据,在预设的窗口和画布中进行所述图像生成处理,得到与所述测试源数据对应的N个所述测试结果数据。
17.根据权利要求1-13任意一项所述的图形处理器测试方法,其特征在于,所述测试源数据为wrl文件格式的图像数据,则根据所述测试源数据对所述图形处理器进行N次测试处理,还包括:
将所述wrl文件格式的图像数据处理为二维数组形式的图像数据;
根据所述二维数组形式的图像数据对所述图形处理器进行N次所述测试处理。
18.根据权利要求1-13任意一项所述的图形处理器测试方法,其特征在于,所述方法还包括:
显示所述测试结果对应的提醒信息。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序,所述计算机程序包括程序指令;
处理器,用于执行所述程序指令,以使所述电子设备执行根据权利要求1-18任意一项所述的图形处理器测试方法。
20.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被电子设备运行以使所述电子设备执行根据权利要求1-18任意一项所述的图形处理器测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210169603.9A CN114255155B (zh) | 2022-02-24 | 2022-02-24 | 一种图形处理器测试方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210169603.9A CN114255155B (zh) | 2022-02-24 | 2022-02-24 | 一种图形处理器测试方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114255155A CN114255155A (zh) | 2022-03-29 |
CN114255155B true CN114255155B (zh) | 2022-07-26 |
Family
ID=80797031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210169603.9A Active CN114255155B (zh) | 2022-02-24 | 2022-02-24 | 一种图形处理器测试方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114255155B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874176A (zh) * | 2015-12-14 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 智能测试方法和装置 |
CN111367780A (zh) * | 2020-03-30 | 2020-07-03 | 西安芯瞳半导体技术有限公司 | 一种gpu的性能测试方法、装置及计算机存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4153884B2 (ja) * | 2004-03-11 | 2008-09-24 | 株式会社アドバンテスト | 試験装置及び試験方法 |
JP4616598B2 (ja) * | 2004-08-31 | 2011-01-19 | シスメックス株式会社 | 画像処理回路の診断方法、粒子画像解析装置、およびコンピュータプログラム |
CN100419706C (zh) * | 2006-09-29 | 2008-09-17 | 北京中星微电子有限公司 | 一种测试芯片的方法及系统 |
CN101271423B (zh) * | 2008-05-19 | 2010-06-16 | 中兴通讯股份有限公司 | 一种软件接口测试方法及系统 |
CN102541679B (zh) * | 2011-12-30 | 2014-02-26 | 曙光信息产业股份有限公司 | 一种用于测试gpu卡的方法和系统 |
CN105653445B (zh) * | 2015-12-25 | 2018-01-16 | 中电科航空电子有限公司 | 一种满足do‑178c测试结果的实现方法 |
CN106201870A (zh) * | 2016-07-01 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种测试gpu的方法及装置 |
CN107783856B (zh) * | 2016-08-30 | 2021-06-04 | 广州安凯微电子股份有限公司 | 一种图像处理器参数的测试方法及系统 |
CN107643964A (zh) * | 2017-08-17 | 2018-01-30 | 郑州云海信息技术有限公司 | 一种自动批量测试整机柜服务器性能的方法 |
CN107590037A (zh) * | 2017-08-29 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种对服务器gpu进行edpp测试的方法 |
CN207232944U (zh) * | 2017-10-13 | 2018-04-13 | 郑州云海信息技术有限公司 | 一种可替代sxm2形态gpu的功能测试板 |
CN107832177A (zh) * | 2017-11-20 | 2018-03-23 | 郑州云海信息技术有限公司 | 一种多gpu系统的edp测试方法、系统、设备及存储介质 |
CN108509348B (zh) * | 2018-06-20 | 2021-12-07 | 厦门美图移动科技有限公司 | 一种系统老化的测试方法及移动终端 |
CN109151466A (zh) * | 2018-06-28 | 2019-01-04 | 苏州乐轩科技有限公司 | 一种Android系统平台电子设备实用功能自动测试方法 |
JP7245623B2 (ja) * | 2018-09-13 | 2023-03-24 | 株式会社アドバンテスト | 装置、方法、およびプログラム |
US11210199B2 (en) * | 2019-05-31 | 2021-12-28 | Ati Technologies Ulc | Safety monitor for invalid image transform |
TWI719571B (zh) * | 2019-08-05 | 2021-02-21 | 伊斯酷軟體科技股份有限公司 | 測試觸控式行動裝置之測試裝置、測試系統及其電腦程式產品 |
CN111124920A (zh) * | 2019-12-24 | 2020-05-08 | 北京金山安全软件有限公司 | 设备性能测试方法、装置及电子设备 |
CN111338862B (zh) * | 2020-02-16 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种gpu模式切换稳定性测试方法、系统、终端及存储介质 |
CN111669575B (zh) * | 2020-06-19 | 2022-07-22 | 展讯通信(上海)有限公司 | 图像处理效果的测试方法、系统、电子设备、介质及终端 |
CN111984478A (zh) * | 2020-07-21 | 2020-11-24 | 江苏艾科半导体有限公司 | 一种eeprom芯片传递式测试方法及系统 |
CN112631919A (zh) * | 2020-12-25 | 2021-04-09 | 广州品唯软件有限公司 | 一种对比测试方法、装置、计算机设备及存储介质 |
CN112686797A (zh) * | 2021-01-12 | 2021-04-20 | 西安芯瞳半导体技术有限公司 | 用于gpu功能验证的目标帧数据获取方法、装置及存储介质 |
-
2022
- 2022-02-24 CN CN202210169603.9A patent/CN114255155B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874176A (zh) * | 2015-12-14 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 智能测试方法和装置 |
CN111367780A (zh) * | 2020-03-30 | 2020-07-03 | 西安芯瞳半导体技术有限公司 | 一种gpu的性能测试方法、装置及计算机存储介质 |
Non-Patent Citations (2)
Title |
---|
David Defour."GPUburn: A system to test and mitigate GPU hardware failures".《2013 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS)》.2013,第263-270页. * |
宗竹林."一种系统芯片的功能测试方法".《中国集成电路》.2008,(第05期),第68-71页. * |
Also Published As
Publication number | Publication date |
---|---|
CN114255155A (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176504B (zh) | 一种界面元素的显示方法及电子设备 | |
US10930056B2 (en) | Electronic device for generating images having rendering qualities differing by view vector | |
US10692472B2 (en) | Method and device for adjusting resolution of electronic device | |
CN112114892B (zh) | 深度学习模型的获取方法、加载方法及选取方法 | |
EP3089019B1 (en) | Method for displaying user interface and electronic device thereof | |
US11853767B2 (en) | Inter-core data processing method, system on chip and electronic device | |
CN114579954B (zh) | 安全启动校验的方法及电子设备 | |
CN110413501A (zh) | 浏览器兼容性测试方法、装置、系统及可读存储介质 | |
US20180034284A1 (en) | Systems and methods to charge a battery at different charge rates and indicate when charging at a faster rate is available | |
US11385878B2 (en) | Model deployment method, model deployment device and terminal equipment | |
CN109948581A (zh) | 图文渲染方法、装置、设备及可读存储介质 | |
CN108897659A (zh) | 修改日志级别的方法、装置及存储介质 | |
US20160252932A1 (en) | Electronic device including touch screen and method of controlling same | |
CN114255155B (zh) | 一种图形处理器测试方法和电子设备 | |
CN110045958A (zh) | 纹理数据生成方法、装置、存储介质及设备 | |
CN108984259A (zh) | 界面显示方法、装置及终端 | |
CN113835948A (zh) | 温度检测方法、温度检测装置及电子设备 | |
US9589126B2 (en) | Lock control method and electronic device thereof | |
US11070736B2 (en) | Electronic device and image processing method thereof | |
CN115033193B (zh) | 转屏处理方法、装置、介质及电子设备 | |
CN115373646A (zh) | 扩展信息方法、装置和相关产品 | |
CN113312249A (zh) | 日志数据生成方法、日志数据显示方法及装置 | |
CN110362330A (zh) | 应用程序更新方法、装置、终端及存储介质 | |
US11681596B1 (en) | Redundant segment for efficient in-service testing | |
CN113436325B (zh) | 一种图像处理方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |