CN101676878B - 用于测试图形处理单元性能的流量产生器和方法 - Google Patents
用于测试图形处理单元性能的流量产生器和方法 Download PDFInfo
- Publication number
- CN101676878B CN101676878B CN200810211887.3A CN200810211887A CN101676878B CN 101676878 B CN101676878 B CN 101676878B CN 200810211887 A CN200810211887 A CN 200810211887A CN 101676878 B CN101676878 B CN 101676878B
- Authority
- CN
- China
- Prior art keywords
- moderator
- write
- mandarin
- flow
- stream
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 title abstract description 14
- 241001672694 Citrus reticulata Species 0.000 claims description 33
- 238000004088 simulation Methods 0.000 claims description 30
- 239000000872 buffer Substances 0.000 claims description 17
- 230000006399 behavior Effects 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims 4
- 230000005540 biological transmission Effects 0.000 claims 2
- 238000013461 design Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本发明涉及一种流量产生器和一种用于测试图形处理单元的存储器系统的性能的方法。所述流量产生器包括:至少一个模拟引擎模块,其每一者用于产生至少一个读取流和/或至少一个写入流;以及输出仲裁器,其用于从包括所述至少一个读取流和/或所述至少一个写入流的群组中选择将输出的流;其中所选择的流经布置以输出到图形处理单元的所述存储器系统。
Description
技术领域
本发明涉及流量产生器。更特定来说,本发明涉及用于测试图形处理单元性能的流量产生器。
背景技术
图形处理单元(GPU)是用于个人计算机、工作站或游戏控制台的专用图形渲染装置。现代GPU在操纵和显示计算机图形方面是非常高效的,而且其高度并行的结构使得其针对一定范围的复杂算法来说比通用CPU更高效。通常,GPU可安置在视频卡顶部,或者其可直接集成到母板中。
当测试GPU的性能时,布置一流量产生器和流量监视器。流量产生器产生将由GPU处理的数据,且接着流量监视器观察流量,以便评估GPU的性能。由于现代GPU需要处理具有不同格式的图像数据,因此对GPU的测试变得更复杂。
在高性能GPU的技术领域中,模拟发送一系列读取和写入请求的多个引擎(“客户端”)非常需要流量产生器。因此,必须在多个客户端下测试GPU的存储器系统的效率,以查看设计是否可以满足性能要求。举例来说,HD视频解码流中的引擎包含:SEC、VLD、MSPDEC、MSPPP、显示器和图形引擎。然而,在设计阶段的一开始,难以实施如此多的真实客户端。因此,需要一种能够模仿多个不同引擎的流量产生器。
发明内容
本发明提供一种能够模仿多个可改变引擎以测试图形处理单元性能的通用流量产生器。本发明还提供用于使用单个装置模拟多个可改变引擎以测试图形处理单元性能的较简单方法。
根据本发明的一实施例,用于测试图形处理单元性能的流量产生器包括:至少一个模拟引擎模块,其用于产生至少一个读取流和/或至少一个写入流;以及输出仲裁器,其用于从包括所述至少一个读取流和/或所述至少一个写入流的群组中选择将输出的流;其中所选择的流经布置以输出到图形处理单元的存储器系统。
根据本发明的另一实施例,用于测试图形处理单元性能的方法包括:设置至少一个模拟引擎模块和输出仲裁器的配置;由所述至少一个模拟引擎模块产生至少一个读取流和/或至少一个写入流;由所述输出仲裁器从包括所述至少一个读取流和/或所述至少一个写入流的群组中选择将输出的流;将所选择的流输出到所述图形处理单元的存储器系统。
本发明的用于测试图形处理单元性能的流量产生器和方法能够模拟许多可改变客户端的流量而不用逐个实际产生这些客户端。通过修改由配置模块控制的配置,本发明的流量产生器变为用于在不同环境下测试图形处理单元性能的较灵活的工具。
为了使本发明的上述和其它目的、特征和优点更容易理解,下文详细描述带有图式的优选实施例。
附图说明
图1展示本发明一优选实施例的流量产生器100的框图。
图2展示划分为256(16x16)字节宏区块的表面。
具体实施方式
参看图1,流量产生器100包含配置模块12、多个模拟引擎模块22、24和26、读取缓冲器32、36、42和46、写入缓冲器34、38、44和48、读取流仲裁器52、写入流仲裁器54以及输出仲裁器56。还如下揭示本发明中用于测试图形处理单元性能的方法的优选实施例。模拟引擎模块22、24和26模拟多个引擎(或“客户端”),其中每一引擎产生读取流和/或写入流。产生的读取流分别被临时推入读取缓冲器32、36和42中,且所产生的写入流分别被临时推入写入缓冲器34、38和44中。所有读取缓冲器32、36和42均电连接到读取流仲裁器52,读取流仲裁器52以循环(round robin)方式或随机地每次选择存储在读取缓冲器32、36和42中的读取流中的一者,并接着将选定的读取流输出到读取缓冲器46。当采用循环方式时,依次选择存储在不同缓冲器中的流。举例来说,如果读取仲裁器52采用循环方式,那么其循序从读取缓冲器32、读取缓冲器36、读取缓冲器42中选择和输出读取流,并接着再次回到读取缓冲器32。如果读取仲裁器52采用随机方式,那么无法预测选定的读取流。类似地,所有写入缓冲器34、38和44均电连接到写入流仲裁器54,写入流仲裁器54以循环方式或随机地每次选择存储在写入缓冲器34、38和44中的写入流中的一者,并接着将选定的写入流输出到写入缓冲器48。读取仲裁器52和写入仲裁器48所采用的选择方式取决于配置模块12所设置的配置。从读取仲裁器52输出的读取流临时存储在读取缓冲器46中,且从写入仲裁器54输出的写入流临时存储在写入缓冲器48中。输出仲裁器56接着选择读取流和写入流中的一者,并将其输出到待测试的图形处理单元。以相同方式,输出仲裁器56所采用的选择方式取决于配置模块12所设置的配置。
根据本发明的优选实施例,配置模块12能够确定流量产生器的特征,例如所模拟引擎的数目和类型。也就是说,所模拟引擎模块的数目不限于本发明中的三个。
此外,配置模块12能够界定每一所产生流的特征,例如处理量和存取模式。因此,流量产生器所模拟的引擎可具有不同的行为。举例来说,配置模块12可界定每一读取或写入请求的地址和大小。如果确定了开始地址0x1000,那么配置模块12可进一步界定存取模式,例如循序的或随机的。关于循序模式,地址以相等间隔增加。举例来说,如果请求大小是32B,那么将存取的循序地址应为0x1000、0x1020、0x1040、0x1060...。循序模式可用于模拟具有节曲面(pitch surface)的显示器流量。对于随机模式,在每一表面的范围内随机产生每一地址,例如,0x1300、0x2200、0x1800...。随机模式可用于模拟MSPDEC引擎中的运动补偿流。对于某种其它流,可存在许多其它复杂的存取模式。例如在视频引擎中,将一种存取模式称为“半循序的”。
如图2所说明,将表面划分为256(16x16)字节宏区块。对于具有N个宏区块(图2中N=5)宽度的图片,循序写入区块0...N-1的第一个64字节,接着循序写入区块0...N-1的第二个64字节,以此类推。请注意,本发明的配置模块12可在必要时采用任何存取模式,以便模拟相关引擎。然而,由于存在许多种类的存取模式,因此在说明书中将不描述每种存取模式。
在存取模式中,配置模块12能够界定每一个流的处理量,其将被确定何时发送请求。以显示器客户端作为实例,对于最坏情况,每一行将具有2048个像素,每一像素为4字节,且监视器应每7.28微秒扫描一行。因此获得以下处理量:
如果想要测试高处理量流量是否将超出我们的图形处理单元能力之外,那么将增加处理量。请注意,由于每一客户端将由若干读取或写入流组成,因此每一流在配置模块12中可能具有不同的存取模式和处理量参数。
根据本发明的优选实施例,配置模块包括用于记录数据流的上述特征和参数的节文件(knobfile)。当图形处理单元的设计者希望测试图形处理单元时,设计者可通过编辑节文件使用流量产生器来模拟不同种类的多个引擎,以便在预定环境下测试图形处理单元。如果设计者希望在另一环境(具有不同客户端)下测试图形处理单元,那么修改节文件即可。
节文件用于模拟复制引擎,例如从源表面到目的地表面复制数据的客户端。节文件含有以下针对读取流的内容:
======================================================
FermiPerfSim::COPYENGINE::readStreamNum1
FermiPerfSim::COPYENGINE::readStreamName0 srcSurface
FermiPerfSim::COPYENGINE::srcSurface::start_virt_address 0x10000
FermiPerfSim::COPYENGINE::srcSurface::surface_size_x1600
FermiPerfSim::COPYENGINE::srcSurface::surface_size_y1080
#pitch,block,16×16MacroBlock
FermiPerfSim::COPYENGINE::srcSurface::surface_type0
FermiPerfSim::COPYENGINE::srcSurface::burst_size032
#throughput,MBytesPerSec
FermiPerfSim::COPYENGINE::srcSurface::throughput200
#access pattern,seq,ran,semi_seq...,seq for srcSurface
FermiPerfSim::COPYENGINE::srcSurface::acc_pattern0
=======================================================
在节文件中描述的以上内容中,前两行界定读取流数目和读取流名称,接下来的五行界定开始地址、表面大小和表面类型,且接下来的五行界定突发(burst)大小、处理量和存取模式。以相同方式,用于复制引擎的写入流可如下界定:
=======================================================
FermiPerfSim::numTGs1
FermiPerfSim::Hublmpl::clientName0COPYENGINE
FermiPerfSim::COPYENGINE::readStreamNum1
#source surfacere
FermiPerfSim::COPYENGINE::readStreamName0 srcSurface
FermiPerfSim::COPYENGINE::srcSurface::start_virt_address0x10000
FermiPerfSim::COPYENGINE::srcSurface::surface_size_x1600
FermiPerfSim::COPYENGINE::srcSurface::surface_size_y1080
#pitch,block,16×16MacroBlock
FermiPerfSim::COPYENGINE::srcSurface::surface_type0
FermiPerfSim::COPYENGINE::srcSurface::burst_size032
#throughput,MBytesPerSec
FermiPerfSim::COPYENGINE::srcSurface::throughput200
#access pattern,seq,ran,semi_seq...,seq for srcSurface
FermiPerfSim::COPYENGINE::srcSurface::acc_pattern0
=======================================================
在读取节文件中描述的以上内容之后,配置模块12启用流量产生器100以充当复制引擎。在本发明的优选实施例中,节文件是外部配置文件。因此,用户可容易地修改节文件的内容,以便使用流量产生器模拟不同的引擎。概括来说,为了使用流量产生器产生不同的引擎,用户必须界定流量产生器具有多少引擎和多少流以及每一流特征为如何。可通过分析客户端的行为或来自先前产生码片的结果来获得对流量产生器的此界定。因此,流量产生器不仅仅模拟已具有的客户端,还有那些在实施中的客户端。当用户希望产生新客户端时,只是将相关内容添加到描述此客户端的流特征的节文件中。
如上所述,本发明的优点是模拟许多客户端的流量而不用逐个实际地产生这些客户端。通过编辑节文件或存储在配置模块中的配置,本发明的流量产生器可模拟不同引擎,且因此变为用于测试图形处理单元性能的较灵活的工具。
所属领域的技术人员将了解,在不脱离本发明范围或精神的情况下可对本发明的结构做出各种修改和变化。鉴于上述内容,希望本发明涵盖对本发明的修改和变化,只要其处于所附权利要求书及其等效物的范围内。
Claims (20)
1.一种用于测试图形处理单元的存储器系统的性能的流量产生器,其包括:
多个模拟引擎模块,其用于模拟不同种类的多个引擎,其中每一模拟引擎模块产生至少一个读取流和/或至少一个写入流,每一流包括一系列请求;
配置模块,其用于控制所述多个模拟引擎模块的配置,其中界定每一所产生流的特征使得所模拟的引擎具有不同的行为;其中界定每一所产生流的所述特征包括界定每一所产生流的处理量特征;以及
输出仲裁器,其用于从所述多个模拟引擎模块产生的流的群组中选择所述读取流或所述写入流,以及将所选择的流输出到所述图形处理单元;其中由所述处理量特征确定何时发送请求。
2.根据权利要求1所述的流量产生器,其进一步包括:
至少一个第一读取缓冲器,其电连接在所述多个模拟引擎模块与读取流仲裁器之间,每一第一读取缓冲器缓冲一个读取流并将所述经缓冲读取流传递到所述读取流仲裁器。
3.根据权利要求2所述的流量产生器,其进一步包括:
至少一个第一写入缓冲器,其电连接在所述多个模拟引擎模块与写入流仲裁器之间,每一第一写入缓冲器缓冲一写入流并将所述经缓冲写入流传递到所述写入流仲裁器。
4.根据权利要求3所述的流量产生器,其进一步包括:
所述读取流仲裁器,其电连接在所述至少一个第一读取缓冲器与所述输出仲裁器之间,用于从所述至少一个读取流中选择一读取流并将所选择的读取流传递到所述输出仲裁器。
5.根据权利要求4所述的流量产生器,其进一步包括:
所述写入流仲裁器,其电连接在所述至少一个第一写入缓冲器与所述输出仲裁器之间,用于从所述至少一个写入流中选择一写入流并将所选择的写入流传递到所述输出仲裁器。
6.根据权利要求5所述的流量产生器,其进一步包括:
第二读取缓冲器,其电连接在所述读取流仲裁器与所述输出仲裁器之间,用于缓冲所述选定读取流并将其传递到所述输出仲裁器;以及
第二写入缓冲器,其电连接在所述写入流仲裁器与所述输出仲裁器之间,用于缓冲所述选择的写入流并将其传递到所述输出仲裁器。
7.根据权利要求1所述的流量产生器,其中
所述配置模块进一步控制由所述模拟引擎模块产生的所述读取流和/或写入流的其他特征。
8.根据权利要求7所述的流量产生器,其中所述其他特征涉及由每一模拟引擎模块产生的读取和/或写入流的包大小以及存取模式。
9.根据权利要求7所述的流量产生器,其中所述配置进一步涉及所述输出仲裁器、所述读取流仲裁器和所述写入流仲裁器的选择方式。
10.根据权利要求7所述的流量产生器,其中所述配置模块根据外部配置文件的内容来控制所述配置。
11.一种用于测试图形处理单元的性能的方法,其包括:
设置多个模拟引擎模块和输出仲裁器的配置;其中所述多个模拟引擎模块用于模拟不同种类的多个引擎;其中界定每一所产生流的特征使得所模拟的引擎具有不同的行为;其中界定每一所产生流的所述特征包括界定每一所产生流的处理量特征;
由所述多个模拟引擎模块的每一模拟引擎模块产生至少一个读取流和/或至少一个写入流,每一流包括一系列请求;
由所述输出仲裁器从所述多个模拟引擎模块产生的流的群组中选择将输出的所述读取流或所述写入流;
将所选择的流输出到所述图形处理单元;其中由所述处理量特征确定何时发送请求。
12.根据权利要求11所述的方法,其进一步包括:
在产生每一读取流之后,分别缓冲每一读取流。
13.根据权利要求12所述的方法,其进一步包括:
在产生每一写入流之后,至少一个第二写入缓冲器分别缓冲每一写入流。
14.根据权利要求13所述的方法,其进一步包括:
在缓冲所述至少一个读取流之后,从所述至少一个读取流中选择一读取流。
15.根据权利要求14所述的方法,其进一步包括:
在缓冲所述至少一个写入流之后,从所述至少一个写入流中选择一写入流。
16.根据权利要求15所述的方法,其进一步包括:
缓冲所选择的读取流并将其传递到所述输出仲裁器。
17.根据权利要求16所述的方法,其进一步包括:
缓冲所选择的写入流并将其传递到所述输出仲裁器。
18.根据权利要求11所述的方法,其中布置所述多个模拟引擎模块的所述配置以改变由所述多个模拟引擎模块产生的所述读取流和/或写入流的特征。
19.根据权利要求18所述的方法,其中所述配置进一步涉及由每一模拟引擎模块产生的读取或写入流的包大小以及存取模式。
20.根据权利要求18所述的方法,其中所述配置进一步涉及选择用于选择所述读取流和/或写入流的方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810211887.3A CN101676878B (zh) | 2008-09-18 | 2008-09-18 | 用于测试图形处理单元性能的流量产生器和方法 |
US12/326,050 US20100070648A1 (en) | 2008-09-18 | 2008-12-01 | Traffic generator and method for testing the performance of a graphic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810211887.3A CN101676878B (zh) | 2008-09-18 | 2008-09-18 | 用于测试图形处理单元性能的流量产生器和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101676878A CN101676878A (zh) | 2010-03-24 |
CN101676878B true CN101676878B (zh) | 2013-11-06 |
Family
ID=42008205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810211887.3A Active CN101676878B (zh) | 2008-09-18 | 2008-09-18 | 用于测试图形处理单元性能的流量产生器和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100070648A1 (zh) |
CN (1) | CN101676878B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9571545B2 (en) | 2013-03-15 | 2017-02-14 | International Business Machines Corporation | Evaluating a stream-based computing application |
US9329970B2 (en) * | 2013-03-15 | 2016-05-03 | International Business Machines Corporation | Selecting an operator graph configuration for a stream-based computing application |
CA2951819A1 (en) * | 2015-12-18 | 2017-06-18 | Stephen Viggers | Methods and systems for monitoring the integrity of a gpu |
US9798667B2 (en) | 2016-03-08 | 2017-10-24 | International Business Machines Corporation | Streaming stress testing of cache memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143264B2 (en) * | 2002-10-10 | 2006-11-28 | Intel Corporation | Apparatus and method for performing data access in accordance with memory access patterns |
US20050265240A1 (en) * | 2004-05-05 | 2005-12-01 | Datalinx Corporation | Broadband network and application service testing method and apparatus |
US7284177B2 (en) * | 2005-03-31 | 2007-10-16 | Verisity, Ltd. | Method and apparatus for functionally verifying a physical device under test |
-
2008
- 2008-09-18 CN CN200810211887.3A patent/CN101676878B/zh active Active
- 2008-12-01 US US12/326,050 patent/US20100070648A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100070648A1 (en) | 2010-03-18 |
CN101676878A (zh) | 2010-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101276152B (zh) | 绘图装置 | |
US8106913B1 (en) | Graphical representation of load balancing and overlap | |
CN101676878B (zh) | 用于测试图形处理单元性能的流量产生器和方法 | |
US20130145107A1 (en) | Idle power control in multi-display systems | |
CN102053899A (zh) | 显存测试方法和系统 | |
US20210042616A1 (en) | Arithmetic processing device | |
US5414666A (en) | Memory control device | |
CN108537729A (zh) | 图像无级缩放方法、计算机装置及计算机可读存储介质 | |
JPH07181941A (ja) | 高速コピー手段を備えたフレームバッファー装置及びこの装置を用いた二重バッファー化動画の実行方法 | |
JP2010244096A (ja) | データ処理装置、印刷システムおよびプログラム | |
US7525577B2 (en) | Image processing apparatus and image processing method | |
US20060089187A1 (en) | Image processing device and method thereof | |
JP5276744B2 (ja) | 画像処理装置及びその制御方法 | |
JPH04335422A (ja) | ソーティング装置 | |
US7573482B2 (en) | Method for reducing memory consumption when carrying out edge enhancement in multiple beam pixel apparatus | |
US6680736B1 (en) | Graphic display systems having paired memory arrays therein that can be row accessed with 2(2n) degrees of freedom | |
JP2003132347A (ja) | 画像処理装置 | |
JP5094274B2 (ja) | 画像処理装置及びその方法 | |
CN116681575B (zh) | 图形处理单元、图形渲染方法、存储介质、终端设备 | |
US6972770B1 (en) | Method and apparatus for performing raster operations in a data processing system | |
JPH11316858A (ja) | 仮想物体の配置方法及びこの方法を記録した記録媒体 | |
JP3005220B2 (ja) | 走査型表示制御装置 | |
CN113887715A (zh) | 深度学习加速方法及器件、芯片、计算设备、存储介质 | |
JP4421498B2 (ja) | プログラム | |
JP3278853B2 (ja) | 図形描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |