CN107003828B - 图形指令的仪器化 - Google Patents

图形指令的仪器化 Download PDF

Info

Publication number
CN107003828B
CN107003828B CN201480083445.9A CN201480083445A CN107003828B CN 107003828 B CN107003828 B CN 107003828B CN 201480083445 A CN201480083445 A CN 201480083445A CN 107003828 B CN107003828 B CN 107003828B
Authority
CN
China
Prior art keywords
graphics
instructions
processors
storing
buffer
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
CN201480083445.9A
Other languages
English (en)
Other versions
CN107003828A (zh
Inventor
Z·王
Y·Z·董
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN107003828A publication Critical patent/CN107003828A/zh
Application granted granted Critical
Publication of CN107003828B publication Critical patent/CN107003828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3419Recording 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 by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

描述了一种图形指令器(“GII”)和一种图形分析器(“GP”)。所述GII(250)可以帮助分析由一个或多个图形处理器对图形指令的执行。所述GII(250)可以标识期望执行简档信息的目标图形指令。所述GII(250)可以将仪器化图形指令存储在图形指令缓冲器(100)中。所述仪器化图形指令可以帮助所述GP(290)收集图形简档信息。例如,时间戳存储指令可以用于在执行所述目标图形指令之前和之后存储时间戳。所述GII(250)还可以存储用于使中断被发送至所述GP(290)的中断生成指令(170),从而使得所述GP(290)可以开始收集图形简档数据。所述GII(250)可以存储用于暂停所述图形处理器(205)直到接收到事件的事件等待指令(180)。

Description

图形指令的仪器化
技术领域
本公开涉及数据处理领域,具体地涉及与图形指令的仪器化相关联的设备、方法和存储介质。
背景技术
本文中所提供的背景描述是为了一般地呈现本公开的背景的目的。除非本文中另外指出,否则本节中所描述的材料对于本申请的权利要求书而言并非现有技术,并且不因为包括在本节中而被承认是现有技术。
许多计算系统包括一个或多个图形处理器,所述一个或多个图形处理器执行图形指令以便渲染用户的图形和视频。在包括图形的应用的发展期间,开发者可能希望将关于对指令的执行的信息(如执行时间、存储器访问、资源等待等)置于一个或多个图形处理器上。然而,由于这些指令在可能与执行分析的其他计算机处理器分离的图形处理器环境上执行,因此,开发者可能很难获得这种信息。例如,如果开发者使用另一个计算处理器(如运行操作系统的处理器)来轮询图形执行信息,则其他处理器无法得到具体指令何时由一个或多个图形处理器执行的时间知识。在这种情形下,开发者可能不能够准确地瞄准他们微调他们的应用所需要的具体图形指令。这可能会阻止对图形执行的准确分析并阻碍提高图形性能的努力。
附图说明
结合附图,借助于以下详细描述将很容易理解实施例。为了方便本描述,相同的参考标号指代相同的结构元件。在附图的各图中通过示例的方式而非限制的方式展示了多个实施例。
图1展示了根据各种实施例的已经添加仪器化指令的示例图形指令缓冲器。
图2展示了根据各种实施例的用于在内核模式驱动器中分析对图形指令的执行的图形指令器和图形分析器的示例安排和信息流。
图3展示了根据各种实施例的用于在管理程序中分析对图形指令的执行的图形指令器和图形分析器的示例安排和信息流。
图4展示了根据各种实施例的用于分析对图形指令的执行的示例过程。
图5展示了根据各种实施例的用于向图形指令缓冲器中添加包括仪器化图形指令的指令的示例过程。
图6展示了根据各种实施例的用于收集图形分析信息的示例过程。
图7展示了根据各种实施例的适用于实践本公开的各个方面的示例计算环境。
图8展示了根据各种实施例的具有被配置成使设备能够实施本公开的各个方面的指令的示例存储介质。
具体实施方式
在以下详细描述中,参考形成其一部分并且通过可实践的说明实施例示出的附图,其中,相同的标号指示相同的部件。应当理解,可以在不脱离本公开的范围的情况下利用其他实施例并且可以进行结构或逻辑上的改变。因此,以下详细说明不应被认为具有限制意义,并且实施例的范围由所附权利要求书及其等效物限定。
可以以对理解要求保护的主题最有帮助的方式将各种操作依次描述为多个分立动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定是顺序相关的。具体地,可以不按所呈现的顺序来执行这些操作。可以按与所描述的实施例不同的顺序来执行所描述的操作。可以执行各种附加的操作和/或可以在附加实施例中省略所描述的操作。
为了本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
本说明可能使用短语“在实施例中(in an embodiment)”或“在多个实施例中(inembodiments)”,这些短语可以各自是指相同或不同的实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括(comprising)”、“包括(including)”、“具有(having)”等是同义的。
如在本文中所使用的,术语“逻辑”和“模块”可以指代是包括执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享、专用或组)和/或存储器(共享、专用或组)、组合逻辑电路和/或提供所描述的功能的其他适当部件或者作为其中的一部分。如在本文中所使用的,术语“逻辑”和“模块”可以指代片上系统、是其一部分、或包括其,如下所述。
本文中描述了用于图形指令器(“GII”)和图形分析器(“GP”)的方法、设备、系统和计算机可读介质。在各种实施例中,GII可以被配置成用于帮助分析由计算装置上的一个或多个图形处理器对图形指令的执行。在各种实施例中,GII可以被配置成用于标识由图形处理器执行的图形指令。例如,GII可以标识期望执行简档信息的目标图形指令。然后,GII可以被配置成用于将仪器化图形指令存储在图形指令缓冲器中,一个或多个图形处理器从所述图形指令缓冲器中执行图形指令。
在各种实施例中,仪器化图形指令可以被配置成用于帮助GP收集图形简档信息。例如,GII可以被配置成用于将时间戳存储指令存储在图形指令缓冲器中。可以将时间戳存储指令存储在图形指令缓冲器中,从而使得在执行目标图形指令之前和之后由一个或多个图形处理器存储时间戳。在各种实施例中,两个时间戳可以由此如被GP用来确定目标图形指令的执行时间。此外,在各种实施例中,GII可以将中断生成指令和事件等待指令存储在图形指令缓冲器中。中断生成指令可以使中断被发送至GP,从而使得所述GP可以开始收集图形简档数据。事件等待指令可以使一个或多个图形处理器暂停执行直到一个或多个图形处理器接收到事件,由此防止进一步执行图形指令直到GP已经收集到图形简档信息。本文中描述了其他实施例和具体示例和实施方式。
现参照图1,展示了根据各种实施例的已经添加了仪器化图形指令的示例图形指令缓冲器100(“GIB 100”)。在图1中,可以注意到,示例图形指令缓冲器100包括环形缓冲器。由此,在示例中,GIB 100可以包括多个图形指令存储位置(如存储位置105),图形指令可以存储在所述存储位置中。GIB 100还可以包括指示头部存储位置110和尾部存储位置190(使用开环标记)的指针,所述头部存储位置和所述尾部存储位置可以指向具体存储位置105。对图形指令的执行可以由此通过GIB 100中的各种存储位置从头部位置110开始行进,当每个图形指令被执行时更新头部存储位置110,直到到达尾部存储位置190。当新的图形指令添加到GIB 100时,它们可能仅晚于尾部存储位置190而添加,并且尾部存储位置190可以更新到新添加的图形指令结束的存储位置。这可以围绕以连续方式形成GIB 100的环行进,由此形成“环形缓冲器”。然而,可以注意到,尽管所展示的示例图形指令缓冲器100包括环形缓冲器,但是在各种实施例中,可以利用其他缓冲器实现方式。
在示例1中,目标指令150(“TI 150”)已经存储在GIB 100中用于由一个或多个图形处理器执行;使用实心圆标记TI 150。在各种实施例中,TI 150可以是期望图形简档信息的图形指令。例如,如果图形软件的开发者想要确定特定图形指令的执行时间,则GII可以将图形指令标识为TI 150。在一些实施例中,各种图形指令可以被标识为TI 150,高达且包括应用中的所有图形指令,或者其子集。
如所展示的,TI 150可以存储在头部存储位置110与尾部存储位置190之间,从而使得随着执行行进,其可以由一个或多个图形处理器执行。在各种实施例中,GII可以将与TI 150相关联的仪器化图形指令插入GIB 100中。例如,在示例1中,GII已经将两个附加时间戳存储指令140(“TSI 140”)插入TI 150两侧的存储位置中。在各种实施例中,每个TSI140可以被配置成用于使一个或多个图形处理器存储当前时间戳,如一个或多个图形处理器的当前时钟值。由于在执行TI 150紧接前和紧接后记录时间戳,因此这些时间戳可以被GP用来确定TI 150的执行时间。在各种实施例中,TSI 140可以被实施为用于存储一个或多个图形处理器的寄存器值(在此具体情况下,处理器时钟值或其他时间值)的寄存器值存储指令。在一些实施例中,除TSI 140之外或替代TSI 140,这种寄存器值存储指令可以用于存储其他信息。例如,寄存器值存储指令可以存储在执行期间获得的计算值,所述执行可以用于确定与对图形指令的执行相关的其他不必要时间相关信息。
示例2示出了可以由GII插入GIB 100中的附加仪器化图形指令。例如,在各种实施例中,GII可以将中断生成指令170(“IGI 170”)插入GIB 100中。在各种实施例中,当一个或多个图形处理器执行IGI 170时,IGI 170可以被配置以使得中断从一个或多个图形处理器发送至GP。在各种实施例中,此IGI 170可以在第二TSI 140之后被插入。
在各种实施例中,GP可以在一个或多个计算机处理器而不是一个或多个图形处理器上操作。因为GP在一个或多个图形处理器外执行,所以IGI 170可以用于发送中断,从而使得GP可以变得意识到:已经执行了TI 150并且已经存储了时间戳,从而使得GP可以为TI150收集图形简档信息。在各种实施例中,GII还可以被配置成用于插入事件等待指令180(“EWI 180”),所述事件等待指令可以使一个或多个图形处理器暂停执行直到接收到指定事件。在各种实施例中,GP然后可以被配置成用于在收集到图形简档信息之后向一个或多个图形处理器提供恢复执行事件。在各种实施例中,通过暂停一个或多个图形处理器的执行,GP可以帮助为一个或多个图形处理器收集图形简档信息,而不收集被图形指令的进一步执行影响的信息。
图2展示了根据各种实施例的用于在内核模式驱动器200中分析对图形指令的执行的图形指令器250(“GII 250”)和图形分析器290(“GP 290”)的示例安排和信息流。在实施例中,如图2中所展示的,内核模式驱动器200(KMD 200)可以包括在操作系统中操作的图形驱动器,所述图形驱动器被配置成用于如通过在操作系统中执行的应用或通过操作系统本身来接收图形指令,并且被配置成用于向GIB 100提供这些图形指令。这些指令然后可以由一个或多个图形处理器205从GIB 100处依次执行。在各种实施例中,KMD 200可以被配置成用于直接将指令映射到GIB 100中。在各种实施例中,GII 250可以被配置成用于将翻译的图形指令(如TI 150)写入GIB 100中。如以上所讨论的,GII 250还可以被配置成用于将仪器化图形指令(如TSI 140,IGI 170和EWI 180)存储在GIB 100中。在其他实施例中,GII250还可以被配置成用于存储其他仪器化图形指令(如寄存器值存储指令)。
在各种实施例中,这些存储的仪器化图形指令可以帮助GP 290执行收集图形简档信息。由此,在执行期间,响应于执行每个TSI 140,一个或多个图形处理器205可以将时间戳存储在存储器(未展示)中。在各种实施例中,一个或多个图形处理器205可以将时间戳存储在存储器(如图形存储器或可由一个或多个图形处理器205访问的其他存储器)中。一个或多个图形处理器205还可以执行TI 150。在执行TSI 140和TI 150之后,一个或多个图形处理器205被配置成用于响应于执行IGI 170而生成由GP 290接收的中断。可以注意到,尽管本文中描述的具体实施例利用中断来通知GP 290可以开始收集图形简档信息,但是在其他实施例中,可以利用其他通知技术。一个或多个图形处理器205还可以执行EWI 180,使一个或多个图形处理器205在收集图形简档信息期间暂停执行。
响应于接收中断,GP 290可以开始收集图形简档信息。在各种实施例中,可以通过从一个或多个图形处理器205处请求图形简档信息或者通过访问一个或多个图形处理器205已经将图形简档信息存储在其中的存储器来执行收集。在各种实施例中,图形简档信息可以包括由一个或多个图形处理器205存储的信息(如时间戳信息或寄存器值(或其他值))。在GP 290完成收集图形简档信息之后,GP 290可以将继续事件(continue event)发送至一个或多个图形处理器205,所述一个或多个图形处理器然后可以恢复执行。
图3展示了根据各种实施例的用于在管理程序300中分析对图形指令的执行的GII250和GP 290的示例安排和信息流。在图3的示例中,相比于图2的KMD 200,管理程序300可以被配置成位于一个或多个访客操作系统(如所展示的访客OS 310和320)与计算装置的硬件之间。在各种实施例中,访客OS 310和320可以各自包括访客OS图形缓冲器(例如,访客OS图形缓冲器315和325,在图3中分别展示为环形缓冲器,但是在各种实施例中可以采用各种方式来实现)。在各种实施例中,GII 250可以被配置成用于从访客OS图形缓冲器315和325中的每一个中捕获图形指令,并且被配置成用于生成针对GIB 100的指令(包括仪器化图形指令)。由此,在图3的示例中,可以各自在不同访客OS处生成的多个TI 150已经由GII 250存储在GIB 100中。此外,GII 250已经存储了与这些TI 150中的每一个相关联的TSI 140。如所展示的,GII 100仍然包含IGI 170和EWI 180以便帮助由GP 290收集图形简档信息。然而,如所展示的,在一些实施例中,IGI 170和EWI 180的单一组合可以用于收集关于多个TI150的图形简档信息。
图4展示了根据各种实施例的用于分析对图形指令的执行的示例过程400。虽然具体的操作和子过程按照具体顺序示出,但可以理解的是,在各种实施例中,这些操作可以被重新排序、组合、拆分成附加操作或过程和/或完全省略。所述过程可以开始于操作410,其中,GII 250可以接收分析请求。在各种实施例中,GII 250可以接收分析请求中关于期望的分析水平的信息。例如,GII 250可以接收特定TI 150、代码块、和/或期望图形分析信息的应用的指示。用于标识分析水平的各种其他技术可以如能理解的那样使用。
接下来,在操作420处,GII 250可以接收图形指令。在各种实施例中,这种图形指令可以直接从应用中接收(如在图2的KMD 200的情形下),或者图形指令可以由在管理程序300中操作的GII从访客OS图形缓冲器中获得(如在图3的情形下)。在其他实施例中,可以使用用于接收图形指令的其他技术。接下来,在决策操作425处,GII 250可以判定当前接收的指令是否是目标指令,即其是否已经被标识为分析信息所期望的。如果不是,则在操作430处,GII 250可以将所接收图形指令添加到GIB 100。然而,如果所接收的图形指令是TI150,则在操作440处,GII 250可以将所接收的指令沿着仪器图形指令添加到GIB 100。下面可以联系图5的过程500描述操作440的具体实现方式。
在任一事件中,过程400可以行进到决策操作445,在所述决策操作处,其可以判定将要接收的多个指令是否可用。如果可以,则可以在操作420处重复所述过程。如果不可以,则在操作450处,一个或多个图形处理器205可以执行GIB 100中的图形指令,并且帮助GP290从一个或多个图形处理器205处收集图形简档信息。可以注意到,尽管图4的展示暗示所有仪器化将在图形指令被一个或多个图形处理器205执行之前完成,但是这仅仅是为了简化说明的目的而完成。然而,在各种实施例中,执行图形指令以及由GP 290收集图形简档信息可以在由GII 250仪器化图形指令旁边执行。由此,在各种实施例中,操作450可以与操作410至445的执行平行进行。在执行操作450之后,所述过程则可以结束。
图5展示了根据各种实施例的用于向图形指令缓冲器中添加包括仪器化图形指令的指令的示例过程500。虽然具体的操作和子过程按照具体顺序示出,但可以理解的是,在各种实施例中,这些操作可以被重新排序、组合、拆分成附加操作或过程和/或完全省略。在各种实施例中,过程500可以包括将多个图形指令存储在GIB 100中。如上所述,在各种实施例中,如果GIB 100是环形缓冲器,则存储这些图形指令可以包括存储从GIB 100的尾部存储位置190处开始的指令,并且尾部存储位置190可以在存储一个或多个图形指令之后被更新。
所述过程可以开始于操作510,其中,GII 250可以将初始TSI 140存储在GIB 100中。接下来,在操作520处,GII 250可以存储图形分析信息期望的TI 150。如以上所讨论的,在各种实施例中,根据期望图形分析信息的具体等级,可以在操作520处存储一个或多个TS150。接下来,在操作530处,GII 250可以将最终TSI 140存储在GIB 100中。在各种实施例中,通过在TI 150紧接前和紧接后存储TSI 140,GII 250可以提供更准确的执行时间解释,因为两个存储的时间戳之差可以基本上接近TI 150的执行时间。然而,在其他实施例中,TSI 140可以存储在GIB 100的其他位置处。
接下来,在操作540处,GII 250可以将附加寄存器值存储指令(如用于在执行期间生成的计算值或者与执行路径相关的值)存储在GIB 100中。普通技术人员可以理解可能为此目的而存储的特定值。接下来,在操作550处,GII 250可以将IGI 170存储在GIB 100中,随后,在操作560处,存储EWI 180。然而,如以上所提及的,在各种实施例中,在TI 150及其相关联的TSI 140之后可能不立刻存储IGI 170和EWI 180。由此,在一些实施例中,附加图形指令TI 150和/或TSI 140可以在存储IGI 170和EWI 180之前存储在GIB 100中。所述过程然后可以结束。
图6展示了根据各种实施例的用于收集图形分析信息的示例过程600。虽然具体的操作和子过程按照具体顺序示出,但可以理解的是,在各种实施例中,这些操作可以被重新排序、组合、拆分成附加操作或过程和/或完全省略。所述过程可以开始于操作610,其中,一个或多个图形处理器205可以如响应于执行初始TSI 140而存储初始时间戳。如以上所讨论的,在各种实施例中,一个或多个图形处理器205可以将时间戳存储在图形存储器或者可由一个或多个图形处理器205访问的其他存储器中。接下来,在操作620处,一个或多个图形处理器205可以执行TI 150(或多个TI 150)。接下来,在操作630处,一个或多个图形处理器205可以响应于执行最终TSI 140而存储最终时间戳。接下来,在操作640处,一个或多个图形处理器205可以如响应于GIB 100中的寄存器值存储指令而存储附加寄存器值。
接下来,在操作650处,响应于执行IGI 170,一个或多个图形处理器205可以将中断发送至GP 290,从而使得其可以开始收集图形简档信息。此外,在操作650处,响应于执行EWI 180,一个或多个图形处理器可以暂停由一个或多个图形处理器205执行进一步图形指令。接下来,在操作660处,GP 290可以如通过访问图形存储器或者由一个或多个图形处理器205在其中存储有时间戳和/或其他寄存器值的其他存储器来收集图形简档信息。在操作670处,GP 290然后可以提供可以由一个或多个图形处理器205接收的恢复事件,并且一个或多个图形处理器205可以恢复执行图形指令。所述过程然后可以结束。
现参照图7,根据各种实施例展示了适合于实施本公开的各个方面(包括图4至图6的过程)的示例计算机。如所示出的,计算机700可以包括一个或多个处理器(或处理器核)702、一个或多个图形处理器(或处理器核)205以及系统存储器704。为了本申请(包括权利要求书)的目的,术语“处理器”和“处理器核”可以被认为是同义的,除非上下文另外明确要求。另外,计算机700可以包括大容量存储装置706(如磁盘、硬盘驱动、光盘只读存储器(CD-ROM)等等)、输入/输出设备708(如显示器、键盘、光标控制、远程控制、游戏控制器、图像捕获装置等等)以及通信接口710(如网络接口卡、调制解调器、红外线接收器、无线电接收器(例如,蓝牙、WiFi、近场通信、射频识别等)等等)。所述元件可以经由可以表示一个或多个总线的系统总线712相互耦合。在多个总线的情况下,它们可以通过一个或多个总线桥(未示出)桥接。
这些元件中的每个元件可以执行其在本领域中已知的常规功能。具体地,系统存储器704和大容量存储设备706可以被用来存储实现图2和图3中所示出的模块中的一个或多个和/或与图4至图6中所示出的技术相关联的操作的编程指令的工作副本和永久副本(统称为计算逻辑722)。各个元件可以通过(多个)处理器702和/或(多个)图形处理器205所支持的汇编指令或可以编译成这样的指令的高级语言(如例如,C语言)来实现。
编程指令的永久副本可以在工厂中或在现场通过(例如)分布式介质(未示出)(如压缩盘(CD))或者通过通信接口710(从分布式服务器(未示出))被放置到永久存储设备706中。也就是说,具有代理程序的实现方式的一个或多个分布式介质可以用于分布所述代理并且对各计算装置进行编程。在实施例中,编程指令可以被存储在一个或多个计算机可读的非瞬态存储介质中。在其他实施例中,编程指令可以被编码在瞬态存储介质中,如信号。
这些元件710至712的数量、能力和/或容量可以变化。它们的构成是另外已知的,因此将不进行进一步的描述。
图8展示了根据各种实施例的具有被配置成用于实践与先前描述的技术相关联的操作中的全部操作或所选操作的指令的示例至少一个计算机可读存储介质802。如所展示的,至少一个计算机可读存储介质802可以包括多个编程指令804。编程指令804可以被配置成用于使装置(例如,计算机700)能够响应于编程指令的执行而执行例如图4至图6的过程的各操作,例如但不限于被执行用来执行对执行图形指令的分析的各操作。在替代实施例中,可以替代地将编程指令804布置在多个至少一个计算机可读存储介质802上。
返回参照图7,对于一个实施例,(多个)处理器702和/或(多个)图形处理器205中的至少一个可以与具有被配置成用于实施图4至图6的过程的方面的计算逻辑722的存储器一起封装。对于一个实施例,(多个)处理器702和/或(多个)图形处理器205中的至少一个可以与具有被配置成用于实施图4至图6的过程的方面的计算逻辑722的存储器一起封装以形成系统级封装(SiP)。对于一个实施例,(多个)处理器702和/或(多个)图形处理器205中的至少一个可以与具有被配置成用于实施图4至图6的过程的方面的计算逻辑722的存储器集成在同一裸片上。对于一个实施例,(多个)处理器702和/或(多个)图形处理器205中的至少一个可以与具有被配置成用于实施图4至图6的过程的方面的计算逻辑722的存储器一起封装以形成片上系统(SoC)。对于至少一个实施例,在必要时SoC可以被利用于(例如但不限于)计算平板(例如,WiFi、蓝牙、蓝牙低能量、近场通信、射频识别(RFID)等)和其他部件中以便满足系统的功能和非功能要求。
用于执行上述技术的计算机可读介质(包括至少一个计算机可读介质)、方法、设备、系统和装置是本文所公开的实施例的说明性示例。此外,在上述的交互中的其他装置可以被配置成用于执行各种所公开的技术。本文中所描述的实施例的具体示例包括但不限于以下的:
示例1可以包括一种用于计算的设备。所述设备可以包括:一个或多个计算机处理器;以及一个或多个图形处理器;以及图形指令缓冲器,所述图形指令缓冲器用于存储由所述一个或多个图形处理器执行的图形指令。所述设备还可以包括图形指令器(GII),所述图形指令器用于由所述一个或多个计算机处理器操作。所述GII可以标识有待由所述一个或多个图形处理器执行的图形指令,并且将与所述标识的图形指令相关联的仪器化图形指令存储在所述图形缓冲器上。
示例2可以包括如示例1所述的设备,其中,所述GII可以进一步用于将所述标识的图形指令存储在所述图形缓冲器中。
示例3可以包括如示例1所述的设备,其中,所述GII可以用于通过存储与一个或多个标识的图形指令相关联的时间戳存储指令将仪器化图形指令存储在所述图形缓冲器上。
示例4可以包括如示例3所述的设备,其中,所述GII可以用于在一个或多个标识的图形指令之前和之后存储时间戳存储指令。
示例5可以包括如示例1至4中任一项所述的设备,其中,所述设备可以进一步包括图形分析器,所述图形分析器用于由所述一个或多个计算机处理器操作,以便从所述一个或多个图形处理器处收集图形简档信息。
示例6可以包括如示例5所述的设备,其中,所述GII可以用于通过存储用于警告所述图形分析器收集图形简档信息的中断生成指令将仪器化图形指令存储在所述图形缓冲器上。
示例7可以包括如示例5所述的设备,其中,所述GII可以用于通过存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令将仪器化图形指令存储在所述图形缓冲器上。
示例8可以包括如示例7所述的设备,其中,所述图形分析器可以用于在所述图形分析器完成收集图形简档信息后将行进事件(proceed event)发送至所述一个或多个图形处理器。
示例9可以包括如示例5所述的设备,其中,所述图形分析器可以用于收集由所述一个或多个图形处理器记录的时间戳信息。
示例10可以包括如示例9所述的设备,其中,所述图形分析器可以用于通过在期望图形简档信息的一个或多个图形指令之前和之后收集时间戳来收集时间戳信息。
示例11可以包括如示例1至10中任一项所述的设备,并且可以进一步包括阴影缓冲器,所述阴影缓冲器用于存储有待由所述一个或多个图形处理器执行的所述图形指令的副本。所述GII可以用于在将所述图形指令存储在所述图形指令缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令。
示例12可以包括如示例1至10中任一项所述的设备,并且可以进一步包括操作系统。所述GII可以用于在所述操作系统内进行操作,以便标识在由所述操作系统管理的执行环境中生成的图形指令。
示例13可以包括如示例1至10中任一项所述的设备,并且可以进一步包括操作系统。所述GII可以用于在所述操作系统内进行操作,并且用于标识在由所述操作系统托管的虚拟机中生成的图形指令。
示例14可以包括如示例13所述的设备,并且可以进一步包括管理程序。所述GII可以在所述管理程序中操作。
示例15可以包括一种或多种包括写在其上的指令的非瞬态计算机可读介质,所述指令响应于由计算系统执行而使所述计算系统执行动作。所述指令可以使计算系统标识有待由所述计算系统的一个或多个图形处理器执行的图形指令。所述指令还可以使所述计算系统将仪器化图形指令存储在所述计算系统的图形缓冲器上。所述图形缓冲器可以用于存储由所述一个或多个图形处理器执行的图形指令,并且存储与所述标识的图形指令相关联的所述仪器化图形指令。
示例16可以包括如示例15所述的非瞬态计算机可读介质,其中,所述指令可以进一步用于使所述计算系统将所述标识的图形指令存储在所述图形缓冲器中。
示例17可以包括如示例15所述的非瞬态计算机可读介质,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储与一个或多个标识的图形指令相关联的时间戳存储指令。
示例18可以包括如示例17所述的非瞬态计算机可读介质,其中,存储时间戳存储指令可以包括在一个或多个标识的图形指令之前和之后存储时间戳存储指令。
示例19可以包括如示例15至18中任一项所述的非瞬态计算机可读介质,其中,所述指令可以进一步用于从所述一个或多个图形处理器处收集图形简档信息。
示例20可以包括如示例19所述的非瞬态计算机可读介质,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储用于发起收集图形简档信息的中断生成指令。
示例21可以包括如示例19所述的非瞬态计算机可读介质,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令。
示例22可以包括如示例21所述的非瞬态计算机可读介质,其中,所述指令可以进一步用于使所述计算系统在完成收集图形简档信息后将行进事件发送至所述一个或多个图形处理器。
示例23可以包括如示例19所述的非瞬态计算机可读介质,其中,所述指令可以进一步用于使所述计算系统收集由所述一个或多个图形处理器记录的时间戳信息。
示例24可以包括如示例23所述的非瞬态计算机可读介质,其中,收集时间戳信息可以包括在期望图形简档信息的一个或多个图形指令之前和之后收集时间戳。
示例25可以包括如示例15至24中任一项所述的非瞬态计算机可读介质,其中:所述计算系统可以包括阴影缓冲器,所述阴影缓冲器用于存储由所述一个或多个图形处理器执行的所述图形指令的副本;并且所述指令可以进一步用于使所述计算系统在将所述图形指令存储在所述图形指令缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令。
示例26可以包括如示例15至24中任一项所述的非瞬态计算机可读介质,其中:所述计算系统可以包括操作系统;并且所述指令可以用于在所述操作系统中执行,以便使所述计算系统标识在由所述操作系统管理的执行环境中生成的图形指令。
示例27可以包括如示例15至24中任一项所述的非瞬态计算机可读介质,其中:所述计算系统可以包括操作系统;并且所述指令可以用于在所述操作系统中执行,以便使所述计算系统标识在由所述操作系统托管的虚拟机中生成的图形指令。
示例28可以包括如示例27所述的非瞬态计算机可读介质,其中:所述计算系统可以包括管理程序;并且所述指令可以用于在所述管理程序中执行。
示例29可以包括一种计算机实现的方法。所述方法可以包括由计算系统标识有待由所述计算系统的一个或多个图形处理器执行的图形指令。所述方法还可以包括由所述计算系统将仪器化图形指令存储在所述计算系统的图形缓冲器上。所述图形缓冲器可以用于存储由所述一个或多个图形处理器执行的图形指令,并且存储与所述标识的图形指令相关联的所述仪器化图形指令。
示例30可以包括如示例29所述的方法,并且可以进一步包括由所述计算系统将所述标识的图形指令存储在所述图形缓冲器中。
示例31可以包括如示例29所述的方法,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储与一个或多个标识的图形指令相关联的时间戳存储指令。
示例32可以包括如示例31所述的方法,其中,存储时间戳存储指令可以包括在一个或多个标识的图形指令之前和之后存储时间戳存储指令。
示例33可以包括如示例29至32中任一项所述的方法,并且可以进一步包括由所述计算系统从所述一个或多个图形处理器处收集图形简档信息。
示例34可以包括如示例33所述的方法,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储用于发起收集图形简档信息的中断生成指令。
示例35可以包括如示例33所述的方法,其中,将仪器化图形指令存储在所述图形缓冲器上可以包括存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令。
示例36可以包括如示例35所述的方法,并且可以进一步包括由所述计算系统在完成收集图形简档信息后将行进事件发送至所述一个或多个图形处理器。
示例37可以包括如示例33所述的方法,并且可以进一步包括由所述计算系统收集由所述一个或多个图形处理器记录的时间戳信息。
示例38可以包括如示例37所述的方法,其中,收集时间戳信息可以包括在期望图形简档信息的一个或多个图形指令之前和之后收集时间戳。
示例39可以包括如示例29至38中任一项所述的方法,其中,所述计算系统可以包括阴影缓冲器,所述阴影缓冲器用于存储有待由所述一个或多个图形处理器执行的所述图形指令的副本;并且所述方法可以进一步包括在将所述图形指令存储在所述图形指令缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令。
示例40可以包括如示例29至38中任一项所述的方法,其中:所述计算系统可以包括操作系统;并且标识图形指令可以包括从所述操作系统内标识在由所述操作系统管理的执行环境中生成的图形指令。
示例41可以包括如示例29至38中任一项所述的方法,其中:所述计算系统可以包括操作系统;并且标识图形指令可以包括从所述操作系统内标识在由所述操作系统托管的虚拟机中生成的图形指令。
示例42可以包括如示例41所述的方法,其中:所述计算系统可以包括管理程序;并且所述方法可以用于在所述管理程序内执行。
示例43可以包括一种用于计算的设备。所述设备可以包括用于标识有待由所述设备的一个或多个图形处理器执行的图形指令的装置以及用于将仪器化图形指令存储在所述设备的图形缓冲器上的装置。所述图形缓冲器可以用于存储由所述一个或多个图形处理器执行的图形指令,并且所述用于存储仪器化图形指令的装置可以用于存储与所述标识的图形指令相关联的仪器化图形。
示例44可以包括如示例43所述的设备,并且可以进一步包括用于将所述标识的图形指令存储在所述图形缓冲器中的装置。
示例45可以包括如示例43所述的设备,其中,用于将仪器化图形指令存储在所述图形缓冲器上的装置可以包括用于存储与一个或多个标识的图形指令相关联的时间戳存储指令的装置。
示例46可以包括如示例45所述的设备,其中,用于存储时间戳存储指令的装置可以包括用于在一个或多个标识的图形指令之前和之后存储时间戳存储指令的装置。
示例47可以包括如示例43至46中任一项所述的设备,并且可以进一步包括用于从所述一个或多个图形处理器处收集图形简档信息的装置。
示例48可以包括如示例47所述的设备,其中,用于将仪器化图形指令存储在所述图形缓冲器上的装置可以包括用于存储用于发起收集图形简档信息的中断生成指令的装置。
示例49可以包括如示例47所述的设备,其中,用于将仪器化图形指令存储在所述图形缓冲器上的装置可以包括用于存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令的装置。
示例50可以包括如示例49所述的设备,并且可以进一步包括用于在完成收集图形简档信息后将行进事件发送至所述一个或多个图形处理器的装置。
示例51可以包括如示例47所述的设备,并且可以进一步包括用于收集由所述一个或多个图形处理器记录的时间戳信息的装置。
示例52可以包括如示例51所述的设备,其中,用于收集时间戳信息的装置可以包括用于在期望图形简档信息的一个或多个图形指令之前和之后收集时间戳的装置。
示例53可以包括如示例43至52中任一项所述的设备,其中,所述设备可以进一步包括:阴影缓冲器,所述阴影缓冲器用于存储有待由所述一个或多个图形处理器执行的所述图形指令的副本;以及用于在将所述图形指令存储在所述图形指令缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令的装置。
示例54可以包括如示例43至52中任一项所述的设备,其中,所述设备可以包括操作系统,并且用于标识图形指令的装置可以包括用于从所述操作系统内标识在由所述操作系统管理的执行环境中生成的图形指令的装置。
示例55可以包括如示例43至52中任一项所述的设备,其中,所述设备可以包括操作系统,并且用于标识图形指令的装置可以包括用于从所述操作系统内标识在由所述操作系统托管的虚拟机中生成的图形指令的装置。
示例56可以包括如示例41所述的设备,其中,所述设备可以包括管理程序,并且用于标识的装置和用于存储的装置可以用于在所述管理程序内进行操作。
虽然已经为了描述的目的在本文中展示和描述了某些此实施例,但是可以在不脱离本公开的范围的情况下用适合于实现相同目的的各种各样的替代和/或等效实施例或实现方式来代替所示出和描述的实施例。本申请旨在覆盖本文中所讨论的实施例的任何修改或变化。因此,显然意图是,本文中所描述的实施例仅由权利要求书来限定。
当公开陈述“一个(a)”或“第一(a first)”元件或其等效物时,这样的公开包括一个或多个这样的元件,既不要求也不排除两个或更多这样的元件。此外,所标识的元件的顺序指示符(例如,第一、第二或第三)用于在元件之间进行区分,并且不指示或暗示要求的或限定的数量的这样的元件,其也不指示这样的元件的特定位置或顺序,除非另外特别声明。

Claims (15)

1.一种用于计算的设备,包括:
一个或多个计算机处理器;
一个或多个图形处理器;
图形指令缓冲器,所述图形指令缓冲器用于存储供所述一个或多个图形处理器执行的图形指令;
图形分析器,所述图形分析器用于由所述一个或多个计算机处理器操作,以便从所述一个或多个图形处理器处收集图形简档信息;以及
图形指令器GII,所述图形指令器用于由所述一个或多个计算机处理器操作,以便:
标识有待由所述一个或多个图形处理器执行的所述图形指令;以及
与所述标识的图形指令相关联地通过存储用于警告所述图形分析器收集图形简档信息的中断生成指令或者通过存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令将仪器化图形指令存储在所述图形指令缓冲器上。
2.如权利要求1所述的设备,其中,所述GII用于在一个或多个标识的图形指令之前和之后存储时间戳存储指令。
3.如权利要求1所述的设备,其中,所述图形分析器用于在完成收集图形简档信息后将行进事件发送至所述一个或多个图形处理器。
4.如权利要求1所述的设备,进一步包括阴影缓冲器,所述阴影缓冲器用于存储有待由所述一个或多个图形处理器执行的所述图形指令的副本;并且
其中,所述GII用于在将所述图形指令存储在所述图形指令缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令。
5.如权利要求1所述的设备,进一步包括操作系统,
其中,所述GII用于在所述操作系统中进行操作,以便标识在由所述操作系统管理的执行环境中生成的图形指令。
6.如权利要求1所述的设备,进一步包括操作系统;
其中,所述GII用于在所述操作系统内进行操作;并且
其中,所述GII用于标识在由所述操作系统托管的虚拟机中生成的图形指令。
7.一种用于计算的设备,所述设备包括:
一个或多个计算机处理器;
一个或多个图形处理器;
图形指令缓冲器,所述图形指令缓冲器用于存储供所述一个或多个图形处理器执行的图形指令;
图形指令器GII,所述图形指令器用于由所述一个或多个计算机处理器操作,以便:
标识有待由所述一个或多个图形处理器执行的所述图形指令;以及
与所述标识的图形指令相关联地将仪器化图形指令存储在所述图形指令缓冲器上;以及
图形分析器,所述图形分析器用于由所述一个或多个计算机处理器操作,以便
从所述一个或多个图形处理器处收集图形简档信息;以及
收集由所述一个或多个图形处理器记录的时间戳信息。
8.如权利要求7所述的设备,其中,所述图形分析器用于通过在收集图形简档信息所针对的一个或多个图形指令之前和之后收集时间戳来收集时间戳信息。
9.一种或多种非瞬态计算机可读介质,包括其上写入的指令,所述指令响应于被计算系统执行而使所述计算系统:
标识有待由所述计算系统的一个或多个图形处理器执行的图形指令;
将仪器化图形指令存储在所述计算系统的图形缓冲器上,其中将仪器化图形指令存储在图形缓冲器上包括存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令,并且其中所述图形缓冲器用于存储由所述一个或多个图形处理器执行的图形指令,并且所述仪器化图形指令是与所述标识的图形指令相关联地存储的;以及
使所述计算系统在完成收集图形简档信息后将行进事件发送至所述一个或多个图形处理器。
10.如权利要求9所述的非瞬态计算机可读介质,其中,将仪器化图形指令存储在所述图形缓冲器上包括与标识的图形指令相关联地存储时间戳存储指令。
11.如权利要求9所述的非瞬态计算机可读介质,其中,将仪器化图形指令存储在所述图形缓冲器上包括存储用于发起收集图形简档信息的中断生成指令。
12.如权利要求9所述的非瞬态计算机可读介质,其中:
所述计算系统包括阴影缓冲器,所述阴影缓冲器用于存储有待由所述一个或多个图形处理器执行的所述图形指令的副本;并且
所述指令进一步使所述计算系统在将所述图形指令存储在所述图形缓冲器中之前标识存储在所述阴影缓冲器中的所述图形指令。
13.一种计算机实现的方法,包括:
由计算系统标识有待由所述计算系统的一个或多个图形处理器执行的图形指令;
由所述计算系统将仪器化图形指令存储在所述计算系统的图形缓冲器上,其中所述图形缓冲器用于存储由所述一个或多个图形处理器执行的图形指令,并且所述仪器化图形指令是与所述标识的图形指令相关联地存储的,并且其中将仪器化图形指令存储在所述图形缓冲器上包括存储用于发起收集图形简档信息的中断生成指令并且存储用于使所述一个或多个图形处理器暂停执行进一步图形指令的事件等待指令;以及
由所述计算系统从所述一个或多个图形处理器处收集图形简档信息。
14.如权利要求13所述的方法,其中,将仪器化图形指令存储在所述图形缓冲器上包括与标识的图形指令相关联地存储时间戳存储指令。
15.一种用于执行指令的设备,包括多个装置,每个装置用于执行如权利要求13-14中任一项所述的方法的相应步骤。
CN201480083445.9A 2014-12-15 2014-12-15 图形指令的仪器化 Active CN107003828B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/093867 WO2016095091A1 (en) 2014-12-15 2014-12-15 Instrumentation of graphics instructions

Publications (2)

Publication Number Publication Date
CN107003828A CN107003828A (zh) 2017-08-01
CN107003828B true CN107003828B (zh) 2021-05-14

Family

ID=56125558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480083445.9A Active CN107003828B (zh) 2014-12-15 2014-12-15 图形指令的仪器化

Country Status (4)

Country Link
US (1) US9691123B2 (zh)
EP (1) EP3234764B1 (zh)
CN (1) CN107003828B (zh)
WO (1) WO2016095091A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580108B2 (en) 2015-12-22 2020-03-03 Intel Corporation Method and apparatus for best effort quality of service (QoS) scheduling in a graphics processing architecture
US10600141B2 (en) * 2016-09-23 2020-03-24 Nvidia Corporation Monitoring execution in a graphics processing unit
US11120521B2 (en) * 2018-12-28 2021-09-14 Intel Corporation Techniques for graphics processing unit profiling using binary instrumentation
US10922779B2 (en) * 2018-12-28 2021-02-16 Intel Corporation Techniques for multi-mode graphics processing unit profiling
US10949330B2 (en) * 2019-03-08 2021-03-16 Intel Corporation Binary instrumentation to trace graphics processor code

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912926A (zh) * 2005-11-10 2007-02-14 威盛电子股份有限公司 可中断图形处理单元处理多个程序的方法和图形处理单元
CN101449577A (zh) * 2006-05-19 2009-06-03 安布克斯英国有限公司 环境体验指令生成
CN101714091A (zh) * 2008-09-30 2010-05-26 英特尔公司 用于在操作系统初始化期间显示平台图形的方法和系统
CN102105868A (zh) * 2008-07-25 2011-06-22 高通股份有限公司 在图形图像的视觉创建期间的性能分析

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6204864B1 (en) * 1995-06-07 2001-03-20 Seiko Epson Corporation Apparatus and method having improved memory controller request handler
US7770155B2 (en) 2005-11-03 2010-08-03 International Business Machines Corporation Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program
US9117015B2 (en) 2008-12-23 2015-08-25 Roche Diagnostics Operations, Inc. Management method and system for implementation, execution, data collection, and data analysis of a structured collection procedure which runs on a collection device
CN102498724B (zh) * 2009-09-16 2016-02-17 三菱电机株式会社 图像构筑装置
US8850404B2 (en) * 2009-12-23 2014-09-30 Intel Corporation Relational modeling for performance analysis of multi-core processors using virtual tasks
US20120023483A1 (en) * 2010-07-20 2012-01-26 Dan Welchman System and method for use in indicating execution of application code
US8928677B2 (en) * 2012-01-24 2015-01-06 Nvidia Corporation Low latency concurrent computation
US9442824B2 (en) * 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9519568B2 (en) * 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912926A (zh) * 2005-11-10 2007-02-14 威盛电子股份有限公司 可中断图形处理单元处理多个程序的方法和图形处理单元
CN101449577A (zh) * 2006-05-19 2009-06-03 安布克斯英国有限公司 环境体验指令生成
CN102105868A (zh) * 2008-07-25 2011-06-22 高通股份有限公司 在图形图像的视觉创建期间的性能分析
CN101714091A (zh) * 2008-09-30 2010-05-26 英特尔公司 用于在操作系统初始化期间显示平台图形的方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Anytime Algorithms for GPU Architectures;Mangharam et al.;《Dec. 2011,32nd IEEE Real-Time Systems Symposium》;20111231;47-56 *
Phase-Based Profiling in GPGPU Kernels;Dietrich et al.;《Dec. 2012 41st International Conference on Parallel Processing Workshops》;20120910;414-423 *

Also Published As

Publication number Publication date
US20160358304A1 (en) 2016-12-08
US9691123B2 (en) 2017-06-27
EP3234764A1 (en) 2017-10-25
CN107003828A (zh) 2017-08-01
EP3234764A4 (en) 2018-05-30
EP3234764B1 (en) 2019-10-02
WO2016095091A1 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN107003828B (zh) 图形指令的仪器化
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
US9122780B2 (en) Monitoring resource usage by a virtual machine
US8612937B2 (en) Synchronously debugging a software program using a plurality of virtual machines
EP1870810A2 (en) Kernel-aware debugging system, medium, and method
CN105446795B (zh) 虚拟机操作中的并行化
EP3607441B1 (en) Virtual machine execution tracing
EP3103014B1 (en) Removal of idle time in virtual machine operation
US9355003B2 (en) Capturing trace information using annotated trace output
KR20160132856A (ko) 사용자 모드 크래시 리포트를 위한 프레임워크
CN107918555B (zh) 基于物理主机的用于处理数据的方法和装置
WO2022078375A1 (zh) 一种芯片系统、处理虚拟中断的方法及相应装置
US20160378636A1 (en) Software-Initiated Trace Integrated with Hardware Trace
US20140007090A1 (en) Simultaneous probing of multiple software modules of a computer system
US10409636B2 (en) Apparatus and method to correct an execution time of a program executed by a virtual machine
US10962593B2 (en) System on chip and operating method thereof
US9798562B2 (en) Facilitation of guest application display from host operating system
KR20170093121A (ko) 컴퓨팅 디바이스에서의 동기화
US10061722B2 (en) Method to handle concurrent fatal events in a multicore execution environment
CN106095631B (zh) 一种基于有限状态机实现的多周期非流水线cpu动态调试方法
WO2022120790A1 (en) Methods and apparatus to mitigate locks in real-time computing environments
JP2013196241A (ja) 情報処理装置およびログ取得方法
CN117917646A (zh) 进程管控方法、装置、电子设备及存储介质
CN112416695A (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