CN101676878B - 用于测试图形处理单元性能的流量产生器和方法 - Google Patents

用于测试图形处理单元性能的流量产生器和方法 Download PDF

Info

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
Application number
CN200810211887.3A
Other languages
English (en)
Other versions
CN101676878A (zh
Inventor
朱春雷
白钰
蒋正伟
柯·余
卡罗尔·梅内塞斯
克雷格·M·维腾布林克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Priority to CN200810211887.3A priority Critical patent/CN101676878B/zh
Priority to US12/326,050 priority patent/US20100070648A1/en
Publication of CN101676878A publication Critical patent/CN101676878A/zh
Application granted granted Critical
Publication of CN101676878B publication Critical patent/CN101676878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance 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微秒扫描一行。因此获得以下处理量:
2048 x 4 7.28 x 1000 = 1.13 GB / s
如果想要测试高处理量流量是否将超出我们的图形处理单元能力之外,那么将增加处理量。请注意,由于每一客户端将由若干读取或写入流组成,因此每一流在配置模块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所述的方法,其中所述配置进一步涉及选择用于选择所述读取流和/或写入流的方式。
CN200810211887.3A 2008-09-18 2008-09-18 用于测试图形处理单元性能的流量产生器和方法 Active CN101676878B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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