用于自动分析gpu测试结果的方法和系统的制作方法

文档序号:6613012阅读:170来源:国知局
专利名称:用于自动分析gpu测试结果的方法和系统的制作方法
技术领域
本发明涉及图形处理单元("GPU")测试技术,且更明确地说,涉及一种用于自动 分析GPU测试结果的方法和系统。
背景技术
除非本文另外指示,否则此部分中所描述的途径并非是先于本申请案中的权利要求 书的技术,且并不因包含在此部分中而承认其是现有技术。
GPU是具有能够执行复杂算法的高度平行结构的专用图形渲染装置。在大量生产此 类复杂装置或含有所述装置的产品(例如图形适配器)之前,需要进行大量测试以确保 GPU设计合适地起作用,且还针对所述GPU确定一组最佳参数。具体地说,GPU包含 一组寄存器,其经配置以控制GPU与图形存储器之间的通信接口。存储在这些寄存器中 的值直接影响GPU中的某些硬件配置,其导致与通信相关联的数据信号改变。因此,一 种测试是确定用于配置寄存器的一组值,使得与通信相关联的数据信号满足图形存储器 的规格。
举例说明,图1是说明通过本地总线108与本地图形存储器106通信的GPU 100的 示意图。GPU100包含寄存器102和104,其控制GPU中的硬件配置以改变GPU与本地 图形存储器106之间的接口。 一种检验GPU寄存器102和104是否含有用于GPU 100 与本地图形存储器106通信的有效值的方法是,检查是否可合适地检索写入到本地图形 存储器106中的某一存储位置的数据。具体地说,通过用不同的值配置寄存器102和104, 测试接着在GPU 100与本地图形存储器106之间的通信期间,将写入到本地图形存储器 106的数据与从本地图形存储器106检索到的数据进行比较。如果发送到本地图形存储 器106的数据与从本地图形存储器106接收到的数据不一致,或如果没有从本地图形存 储器106检索到数据,那么测试失败,且认为失败情况下所使用的寄存器值是无效的。 另一方面,如果发送到本地图形存储器106的数据与从本地图形存储器106接收到的数 据是相同的,那么通过测试,且认为通过情况下所使用的寄存器值是有效的。
图2是说明用于测试多个GPU的评估设置的配置的简化框图。GPU 202, 206和210 分别放置在测试图形适配器200、 204和208上。测试图形适配器进一步连接到计算机 212,其中诊断工具(模块化诊断软件(Modular Diagnostic Software, MODS))在计算机212上执行。评估设置通常针对相同版本和相同类型的GPU和图形适配器。MODS通 常用不同的寄存器值来配置所述GPU的每一者中的寄存器,执行上文所论述的数据比较, 并产生一个含有"通过"和"失败"信息的相应日志文件。按照惯例,为了建立哪些寄 存器值是被认为有效的,人类操作者需要将日志文件定位在计算机212上,将其打开, 将所有的日志文件填到事先手动创建的某些电子表格模板中,并审查所述电子表格中的 信息以作出判定。随着测试条件变得越来越复杂(例如要检验的寄存器值的数目越来越 多,且要测试的GPU和图形适配器的版本或类型各种各样),MODS也产生越来越多的 日志文件。因此,要求人类操作者审査和操纵来自越来越多数目的日志文件的信息。这 种劳动密集型过程不仅是繁重且效率低下的,而且还容易产生错误。
因此,此项技术中需要一种方法和系统,其可以具成本效益且自动的方式分析测试 结果而不会对人类操作者造成过度负担,且解决至少上文所陈述的问题。

发明内容
本发明揭示一种用于自动分析图形处理单元("GPU")测试结果的方法和系统。具
体地说,本发明的一个实施例陈述一种方法,其包含以下步骤识别与第一寄存器类型 相关联的GPU测试结果;创建与相同的第一寄存器类型相关联的模板文档,其中所述模
板文档预先经配置以存储第一寄存器类型的GPU测试结果,并对所述GPU测试结果进 行操作;将GPU测试结果填在所述模板文档中;合计与第一寄存器类型相关联的GPU 测试结果以建立共同输出;以及在无人为介入的情况下,基于所述共同输出,从寄存器 值的通过范围中确定合适的寄存器值。
本文所揭示的本发明的至少一个优势是,不需要人类操作者来操纵和分析潜在大量 的测试结果,且因此显著改进了测试过程的稳健性。


为了详细描述可以理解本发明的上述特征的方式,可通过参考实施例(附图中说明 其中一些实施例)来更具体地描述上文简要概述的本发明。然而,应注意,附图仅说明 本发明的典型实施例,且因此不应被认为限制本发明的范围,因为本发明可承认其它同
等有效的实施例。
图1是说明通过本地总线与本地图形存储器通信的GPU的示意图2是说明用于测试多个GPU的评估设置的配置的简化框图3是说明根据本发明一个实施例用于自动分析GPU测试结果的过程的流程图4是说明根据本发明一个实施例用于基于寄存器类型来组织GPU测试结果的过程的流程图5是说明根据本发明一个实施例用于创建适合针对特定寄存器类型的日志文件的 文档模板的过程的流程图6是说明根据本发明一个实施例用于自动将GPU测试结果放入模板文档中的过程 的流程图7是根据本发明一个实施例产生的样本电子表格的一部分;
图8是说明根据本发明一个实施例用于自动识别最佳寄存器值的过程的流程图。
具体实施例方式
GPU利用多种类型的寄存器来控制与存储器子系统的传输接口,且一种寄存器类型 可与和另一种寄存器类型不同的调谐序列和/或不同的寄存器大小相关联。如上文所提 及,与测试特定寄存器类型相关联的结果存储在日志文件中。举例说明,假定有两种寄 存器类型,类型A和类型B。返回参看图2中所示的评估设置,产生3个日志文件以捕 获分别与图形适配器200, 204和208中的本地图形存储器通信的GPU 202, GPU 206和 GPU210中的类型A寄存器的测试结果。这三个日志文件以相同方式标记(例如包含相 同类型A寄存器名称)。如果图2中所示的相同的评估设置将改为测试类型B寄存器, 那么产生另外三个日志文件,并以不同方式进行标记(例如包含相同类型B寄存器名称)。
图3是说明根据本发明一个实施例用于自动分析GPU测试结果的过程300的流程图。 过程300在步骤302中开始之后,在步骤304中,过程300基于与寄存器类型有关的信 息(例如写入在日志文件中的寄存器名称)来组织测试结果(例如通过/失败信息)。随 后的段落将进一步详细描述一些组织方法。接着,针对在步骤306中所识别的每个寄存 器类型日志文件,过程300在步骤308中创建文档模板(例如预先配置的电子表格文件) 以存储日志文件。在创建之后,在步骤314中将针对所述寄存器类型的日志文件的内容 放入所述文档模板中,并重复步骤314,直到针对相同寄存器类型的所有日志文件都存 储在相同文档模板中为止。举例来说,如果针对类型A寄存器有五个日志文件,那么在 一个实施方案中,将所有五个日志文件存储为相同文档模板中的五个单独的电子表格。 在步骤318中,对各个电子表格中的所有的通过/失败信息(例如零指示通过且非零值指 示失败)进行相加。基于相加的结果,过程300继续进行以在步骤322中确定针对特定 寄存器类型,哪些寄存器值对GPU与图形存储器之间的通信是最佳的。其后,过程300 寻找与另一寄存器类型有关的另一组日志文件来放在文档模板中,并对结果进行相加与 分析。图4是说明根据本发明一个实施例用于基于寄存器类型来组织GPU测试结果的过程 400的流程图。在步骤402中开始所述过程之后,在一个实施方案中,过程400在步骤 404中,通过搜索具有特定标记(例如寄存器名称)的日志文件,来识别所有含有GPU 测试结果的日志文件。在定位所述日志文件之后,过程400在步骤406中,查看所述标 记是否与已知寄存器名称中的任一者匹配。对于具有与已知寄存器名称(DELTADRVAT, 其对应于数据驱动失败寄存器)匹配的相同标记的所有日志文件,过程400在步骤410 中将它们分组在一起。在一个实施方案中,根据匹配的寄存器名称,将这些日志文件的 名称分组在一起。或者,将这些日志文件存储在同一文件夹或子文件夹中。对于具有未 能与已知寄存器名称中的任一者匹配的关键字的任一日志文件,过程400在步骤408中 产生错误报告。所属领域的一般技术人员应了解,在不超出本发明的范围的情况下,可 将不同于寄存器名称的其它与特定寄存器类型有关的信息嵌入在日志文件中。
图5是说明根据本发明一个实施例用于创建适合针对特定寄存器类型的日志文件的 文档模板的过程500的流程图。在步骤504中,文档模板中的电子表格经配置以包含用 于给定寄存器类型日志文件的某一数目的行和列。假定所述日志文件针对类型A寄存器。 在一个实施方案中,所述电子表格中的每一行经设计以捕获对应于此类型A寄存器的特 定寄存器值的测试结果,且所述电子表格中的每一列经设计以存储对应于GPU与图形适 配器上的本地图形存储器之间的总线上的位的测试结果。在步骤506中,产生电子表格 的额外副本,以适应不同的测试配置。使用类型A寄存器作为例示,产生电子表格的副 本以用于(a)存储与测试放置在一个版本的图形适配器上的含有类型A寄存器的GPU 相关联的结果;或(b)存储与测试类型A寄存器中的每一者相关联的结果。换句话说, 如果此GPU具有三个类型A寄存器,且放置在五个不同版本的图形适配器上以供测试, 那么产生电子表格的十五个副本。或者,产生电子表格的五个副本,且所述五个副本中 的每一者经配置以存储所有三个类型A寄存器的测试结果。将电子表格的这些多个副本 保存在同一文档模板中。在步骤508中配置这些电子表格的显示,使得与特定寄存器类 型或具有所述寄存器类型的特定寄存器相关联的测试结果在填入电子表格中之后,可容 易地进行识别。在一个实施方案中,在所述电子表格的每一者中针对不同寄存器类型利 用不同着色方案;或者,所述电子表格中的单元尺寸经配置以控制待存储在文档模板中 的测试结果的预期大小。在可选步骤510中,以一个或一个以上公式来配置每个电子表 格,使得可在将测试结果存储在模板文档中的多个电子表格中之后,在无任何人类操作 者的介入的情况下,在此步骤中根据所述公式对测试结果进行分析。或者,替代于将前面提及的信息(intelligence)嵌入在电子表格的每一者中,可将所述信息实施在主电子表 格程序或单独的软件程序中。
在模板文档中已配置电子表格的情况下,图6是说明根据本发明一个实施例用于自 动将GPU测试结果放入模板文档中的过程600的流程图。如上文所论述,根据特定寄存 器类型,对GPU测试结果进行组织且恰当地将其分组在一起。因此,针对每一寄存器类 型,过程600在步骤604中定位并打开与所述寄存器类型相关联的日志文件,以搜索测 试结果(例如通过/失败信息)。如果日志文件中的第一行不包含通过/失败信息,那么过 程600继续进行以审查日志文件的第二行。如果第二行包含通过/失败信息,那么过程600 将写入在日志文件的第一列中的寄存器值与已经写入到模板文档的寄存器值进行比较。 如果比较结果指示它们是一样的,那么在步骤606中选择整个第二行,且在步骤608中, 将整个第二行填入用于相同类型的寄存器的定制电子表格的第一行中。否则,过程600 继续进行到模板文档的下一行。过程600重复此选择与填充例行程序,以将所述日志文 件的剩余的包含通过/失败信息的行填入相应的电子表格中。在一个日志文件的所有的行 都已经写入到电子表格之后,此日志文件关闭,且同一组中的第二日志文件打开。通过 使用上文论述的相同过程,再次将此第二日志文件中的测试结果填在下一电子表格中。 在已经处理了所述组中的所有日志文件之后,在一个实施方案中,合计存储在所有电子 表格中的所有的通过/失败信息以供进一步分析。合计的结果反映寄存器调谐过程期间所 有的失败。
在将测试结果放入相应的电子表格中之后,将所有的通过/失败信息加在一起,以展 示针对特定寄存器的每个经测试的寄存器值失败多少次。图7是根据本发明一个实施例 产生的样本电子表格700的一部分。此样本电子表格的每一列(用"位n"来标识)代 表和GPU与图形存储器之间的总线的数据位相关联的测试结果。另一方面,每一行代表 可能的寄存器值和与此寄存器值相关联的测试结果。出于说明的目的,假定待测试的寄 存器是4位寄存器(因此十六个可能的寄存器值),且GPU与图形存储器之间的总线是8 位总线(也称为"字节通道(bytelane)")。此处, 一种测试是用16个可能值中的一者来 配置寄存器,并将通过8位总线发送的测试数据与从8位总线接收到的测试数据进行比 较。接着,针对所有16个可能寄存器值重复所述过程。对于任一寄存器值,如果在8位 总线上传播的测试数据的任一位在测试中失败(例如发送出的测试数据位未能与接收到 的测试数据位匹配),那么所述数据位被指派"1"。否则,所述数据位被指派"0",指示 通过测试。如上文所论述,将与所有16个寄存器值相关联的此通过/失败信息存储在一个定制电子表格中。此测试可能重复多次,其中通过/失败信息存储在同一电子表格的多 个副本中。因此,如果同一寄存器值与在测试中失败的同一数据位相关联,那么指派同 一电子表格的另一副本的同一位置中的另一个"1"。将在这些电子表格中捕获到的所有 的通过/失败信息相加在一起之后,相加的结果不仅指示测试失败的发生,而且捕获此类 测试失败的某些细节(例如失败发生的次数,哪个数据位失败以及与每次失败相关联的 寄存器值)。
进一步举例说明,样本电子表格700中的单元702包含数值4,其指示当以7配置 被测试的寄存器时,数据位4己经失败了4次。另一方面,单元704包含数值0,其指 示当以1配置被测试的寄存器时,数据位l没有失败。尽管在此实施方案中,电子表格 中所捕获的任一非零值都指示测试失败,但非零值并非总是对应于失败发生的次数。举 例来说, 一种类型的测试失败是缺乏任何从图形存储器返回的测试数据,且另一种类型 的测试失败是返回无意义的数字。
图8是说明根据本发明一个实施例用于自动识别最佳寄存器值的过程800的流程图。 在步骤804中,过程800审核相加的通过/失败信息,以搜索与所有字节通道的零相关联 的寄存器值的范围。假定图7的样本电子表格代表一组相加的通过/失败信息。那么此类 寄存器值的通过范围包含寄存器值12、 11、 10、 9、 8、 0、 1、 2和3。在一个实施方案中, 在步骤806中挑选最佳寄存器值是识别接近所述范围的中部的寄存器值。再次返回参看 图7,通过范围的中部是寄存器值8。选择通过范围的中部会扩大错误的容限,且此类寄 存器值更有可能适合于不同的配置。
上文的描述内容说明本发明的各个实施例,以及可如何实施本发明的各方面的实例。 可将本发明的一个实施例实施为与计算机系统一起使用的程序产品。所述程序产品的程 序界定实施例的功能(包含本文所述的方法),且可包含在多种计算机可读存储媒体上。 说明性计算机可读存储媒体包含(但不限于)(i)上面永久地存储信息的不可写存储媒 体(例如,计算机内的只读存储器装置,例如可由CD-ROM驱动器读取的CD-ROM盘、 ROM芯片或任何类型的固态非易失性半导体存储器);以及(ii)上面存储可变信息的可 写存储媒体(例如,在软盘驱动器内的软盘、CD-RW盘、DVD-RW盘、快闪存储器、硬 盘驱动器或任何类型的固态随机存取半导体存储器)。不应将上述实例、实施例、指令语 义以及附图视为仅有的实施例,且呈现上述实例、实施例、指令语义以及附图是为了说 明如由所附权利要求书界定的本发明的灵活性和优势。
权利要求
1. 一种用于自动分析图形处理单元(“GPU”)测试结果的方法,所述方法包括识别与第一寄存器类型相关联的所述GPU测试结果;创建与所述相同的第一寄存器类型相关联的模板文档,其中所述模板文档预先经配置以存储所述第一寄存器类型的所述GPU测试结果并对所述第一寄存器类型的所述GPU测试结果进行操作;将所述GPU测试结果填在所述模板文档中;合计与所述第一寄存器类型相关联的所述GPU测试结果,以建立共同输出;以及在无人为介入的情况下,基于所述共同输出,从寄存器值的通过范围中确定合适的寄存器值。
2. 根据权利要求1所述的方法,其中所述模板文档经配置以基于所述第一寄存器类型 的一组可能的寄存器值和代表有助于所述GPU与图形适配器上的图形存储器子系 统之间通信的总线的一组数据位,存储所述GPU测试结果。
3. 根据权利要求2所述的方法,其中所述模板文档经配置以包含多个电子表格,所述 电子表格中的每一者经配置以存储从一组测试配置导出的所述GPU测试结果。
4. 根据权利要求3所述的方法,其中所述合计步骤进一步包括基于预先配置在所述模板文档中的公式将存储在所述多个电子表格的每一者中 的所述GPU测试结果相加以产生相加的结果;以及基于所述模板文档的所述公式,将所述相加的结果放在与所述模板文档的格式一 致的所述共同输出中。
5. 根据权利要求2所述的方法,其中所述模板文档配置有第一数目的行,所述行中的 每一者与所述组可能的寄存器值中的一者相关联且呈循序次序。
6. 根据权利要求5所述的方法,其中所述模板文档配置有第二数目的列,所述列中的 每一者与所述组数据位中的一者相关联。
7. 根据权利要求6所述的方法,其进一步包括通过在无人为介入的情况下,且基于预 先配置在所述模板文档中的公式,从所述第一数目的行中识别一组行,来建立寄存 器值的所述通过范围,其中所述组行仅含有通过信息。
8. 根据权利要求7所述的方法,其中所述确定步骤进一步包括基于所述模板文档的所 述公式,选择对应于寄存器值的所述通过范围的中部的寄存器值作为所述合适的寄 存器值。
9. 根据权利要求l所述的方法,其进一步包括将与所述第一寄存器类型相关联的所述 GPU测试结果分组在一起。
10. 根据权利要求3所述的方法,其中所述组测试配置涉及所述GPU的版本、存在有所 述GPU的所述图形适配器的版本,以及与所述第一存储器类型相关联的寄存器的数目。
11. 一种计算机可读媒体,其含有编程指令序列,所述编程指令在由计算装置中的处理 单元执行时致使所述处理单元识别与图形处理单元("GPU")中的第一寄存器类型相关联的测试结果; 选择与所述相同的第一寄存器类型相关联的模板文档,其中所述模板文档预先经 配置以存储所述第一寄存器类型的所述测试结果并对所述测试结果进行操作; 将所述测试结果填在所述模板文档中;合计与所述第一寄存器类型相关联的所述测试结果,以建立共同输出;以及 在无人为介入的情况下,基于所述共同输出,从寄存器值的通过范围中确定合适 的寄存器值。
12. 根据权利要求11所述的计算机可读媒体,其中所述模板文档经配置以基于针对所述 第一寄存器类型的一组可能的寄存器值和代表有助于所述GPU与图形适配器上的 图形存储器子系统之间的通信的总线的一组数据位,存储所述测试结果。
13. 根据权利要求12所述的计算机可读媒体,其中所述模板文档经配置以包含多个电 子表格,所述电子表格中的每一者经配置以存储从一组测试配置导出的所述测试结 果。
14. 根据权利要求13所述的计算机可读媒体,其进一步包括编程指令序列,所述编程 指令在由所述处理单元执行时致使所述处理单元基于预先配置在所述模板文档中的公式将存储在所述多个电子表格的每一者中 的所述测试结果相加以产生相加的结果;以及基于所述模板文档的所述公式,将所述相加的结果放在与所述模板文档的格式一 致的所述共同输出中。
15. 根据权利要求12所述的计算机可读媒体,其中所述模板文档配置有第一数目的行, 所述行中的每一者与所述组可能的寄存器值中的一者相关联且呈循序次序。
16. 根据权利要求15所述的计算机可读媒体,其中所述模板文档配置有第二数目的列, 所述列中的每一者与所述组数据位中的一者相关联。
17. 根据权利要求16所述的计算机可读媒体,其进一步包括编程指令序列,所述编程 指令在由所述处理单元执行时致使所述处理单元通过在无人为介入的情况下,且基 于预先配置在所述模板文档中的公式,从所述第一数目的行中识别一组行,来建立 寄存器值的所述通过范围,其中所述组行仅含有通过信息。
18. 根据权利要求17所述的计算机可读媒体,其其进一步包括编程指令序列,所述编 程指令在由所述处理单元执行时致使所述处理单元基于所述模板文档的所述公式, 选择对应于寄存器值的所述通过范围的中部的寄存器值,作为所述合适的寄存器 值。
19. 根据权利要求13所述的计算机可读媒体,其中所述组测试配置涉及所述GPU的版 本、驻存有所述GPU的所述图形适配器的版本,以及与所述第一寄存器类型相关联 的寄存器的数目。
20. —种经配置以自动分析图形处理单元("GPU")测试结果的计算装置,所述计算装 置包括处理单元;以及存储媒体,其中所述处理单元经配置以识别存储在所述存储媒体中的与图形处理单元("GPU")中的第一寄存器类型相 关联的测试结果,选择与所述相同的第一寄存器类型相关联的模板文档,其中所述模板文档预先经 配置以存储所述第一寄存器类型的所述测试结果,并对所述测试结果进行操作, 将所述测试结果填在所述模板文档中,合计与所述第一寄存器类型相关联的所述测试结果,以建立共同输出,以及 在无人为介入的情况下,基于所述共同输出,从寄存器值的通过范围中确定合适 的寄存器值。
全文摘要
本发明揭示一种用于自动分析图形处理单元(“GPU”)测试结果的方法和系统。具体地说,本发明的一个实施例陈述一种方法,其包含以下步骤识别与第一寄存器类型相关联的所述GPU测试结果;创建与所述相同的第一寄存器类型相关联的模板文档,其中所述模板文档预先经配置以存储所述第一寄存器类型的所述GPU测试结果,并对所述GPU测试结果进行操作;将所述GPU测试结果填在所述模板文档中;合计与所述第一寄存器类型相关联的所述GPU测试结果以建立共同输出;以及在无人为介入的情况下,基于所述共同输出,从寄存器值的通过范围中确定合适的寄存器值。
文档编号G06F11/22GK101441587SQ200710165578
公开日2009年5月27日 申请日期2007年11月19日 优先权日2007年11月19日
发明者陈立军 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1