Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices

US2016364828A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016364828-A1
Application numberUS-201514738679-A
CountryUS
Kind codeA1
Filing dateJun 12, 2015
Priority dateJun 12, 2015
Publication dateDec 15, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A mechanism is described for facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance on computing devices. A method of embodiments, as described herein, includes detecting a command stream associated with an application, where the command stream includes dispatches. The method may further include evaluating processing parameters relating to each of the dispatches, where evaluating further includes associating a first plan with one or more of the dispatches to transform the command stream into a transformed command stream. The method may further include associating, based on the first plan, a second plan to the one or more of the dispatches, where the second plan represents the transformed command stream. The method may further include executing the second plan, where execution of the second plan includes processing the transformed command stream in lieu of the command stream.

First claim

Opening claim text (preview).

What is claimed is: 1 . An apparatus comprising: reception/detection logic to detect a command stream associated with an application, wherein the command stream includes dispatches; evaluation logic to evaluate processing parameters relating to each of the dispatches, wherein the evaluation logic is further to associate a first plan with one or more of the dispatches to transform the command stream into a transformed command stream; building/mapping logic to associate, based on the first plan, a second plan to the one or more of the dispatches, wherein the second plan represents the transformed command stream; and execution/application logic to execute the second plan, wherein execution of the second plan includes processing the transformed command stream in lieu of the command stream. 2 . The apparatus of claim 1 , wherein the first plan comprises an optimization plan, and wherein the second plan comprises an intermediary plan. 3 . The apparatus of claim 1 , wherein the command stream issued by the application is received at a graphics driver of a graphics processing unit (GPU), and wherein the transformed command stream is executed at the GPU via the graphics driver, wherein the application represents a workload having a plurality of frames, and wherein a dispatch represents a work unit of the workload such that the work unit represents a portion of an image represented a corresponding frame. 4 . The apparatus of claim 1 , wherein the command stream corresponds to a kernel of the application, wherein the first plan is further to transform the kernel into a transformed kernel having instructions corresponding to the transformed command stream. 5 . The apparatus of claim 1 , wherein the processing parameters comprise one or more characteristics relating to execution of the command stream, wherein the one or more characteristics include at least one of size of the dispatches, processing order of the dispatches, number of threads in a group of threads associated with each dispatch, number of groups of threads associated with each dispatch, memory usage, cache usage, bottlenecking locations or reasons, amounts and types and frequencies of hardware allocation, compression format types, shader constraints, and shader execution dispatch width. 6 . The apparatus of claim 1 , wherein transforming the command stream into the transformed command stream comprises at least one of changing processing orders of the dispatches, resizing the dispatches, building dependency graphs relating to the dispatches, and mapping one or more of the dispatches from a main memory to a local cache, wherein mapping includes remapping read commands or write commands associated with the one or more of the dispatches from the main memory to the local cache. 7 . The apparatus of claim 6 , wherein resizing the dispatches comprises increasing a number of the dispatches by merging smaller of the dispatches into bigger dispatches, or reducing the number of the dispatches by breaking bigger of the dispatches into smaller dispatches. 8 . The apparatus of claim 1 , further comprising a database to store one or more of the command stream, the transformed command stream, the first plan, and the second plan, wherein the database includes a Cloud-based storage accessible over one or more networks. 9 . A method comprising: detecting a command stream associated with an application, wherein the command stream includes dispatches; evaluating processing parameters relating to each of the dispatches, wherein evaluating further includes associating a first plan with one or more of the dispatches to transform the command stream into a transformed command stream; associating, based on the first plan, a second plan to the one or more of the dispatches, wherein the second plan represents the transformed command stream; and executing the second plan, wherein execution of the second plan includes processing the transformed command stream in lieu of the command stream. 10 . The method of claim 9 , wherein the first plan comprises an optimization plan, and wherein the second plan comprises an intermediary plan. 11 . The method of claim 9 , wherein the command stream issued by the application is received at a graphics driver of a graphics processing unit (GPU), and wherein the transformed command stream is executed at the GPU via the graphics driver, wherein the application represents a workload having a plurality of frames, and wherein a dispatch represents a work unit of the workload such that the work unit represents a portion of an image represented a corresponding frame. 12 . The method of claim 9 , wherein the command stream corresponds to a kernel of the application, wherein the first plan is further to transform the kernel into a transformed kernel having instructions corresponding to the transformed command stream. 13 . The method of claim 9 , wherein the processing parameters comprise one or more characteristics relating to execution of the command stream, wherein the one or more characteristics include at least one of size of the dispatches, processing order of the dispatches, number of threads in a group of threads associated with each dispatch, number of groups of threads associated with each dispatch, memory usage, cache usage, bottlenecking locations or reasons, amounts and types and frequencies of hardware allocation, compression format types, shader constraints, and shader execution dispatch width. 14 . The method of claim 9 , wherein transforming the command stream into the transformed command stream comprises at least one of changing processing orders of the dispatches, resizing the dispatches, building dependency graphs relating to the dispatches, and mapping one or more of the dispatches from a main memory to a local cache, wherein mapping includes remapping read commands or write commands associated with the one or more of the dispatches from the main memory to the local cache. 15 . The method of claim 14 , wherein resizing the dispatches comprises increasing a number of the dispatches by merging smaller of the dispatches into bigger dispatches, or reducing the number of the dispatches by breaking bigger of the dispatches into smaller dispatches. 16 . The method of claim 9 , further comprising storing, at a database, one or more of the command stream, the transformed command stream, the first plan, and the second plan, wherein the database includes a Cloud-based storage accessible over one or more networks. 17 . At least one machine-readable medium comprising a plurality of instructions, executed on a computing device, to facilitate the computing device to perform one or more operations comprising: detecting a command stream associated with an application, wherein the command stream includes dispatches; evaluating processing parameters relating to each of the dispatches, wherein evaluating further includes associating a first plan with one or more of the dispatches to transform the command stream into a transformed command stream; associating, based on the first plan, a second plan to the one or more of the dispatches, wherein the second plan represents the transformed command stream; and executing the second plan, wherein execution of the second plan includes processing the transformed command stream in lieu of the command stream. 18 . The machine-readable medium of claim 17 , wherein the first plan comprises an optimization plan, and wherein the second plan comprises an intermediary plan. 19 . The machine-readable medium of claim 17 , wher

Assignees

Inventors

Classifications

  • of compressed or encrypted instructions · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016364828A1 cover?
A mechanism is described for facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance on computing devices. A method of embodiments, as described herein, includes detecting a command stream associated with an application, where the command stream includes dispatches. The method may further include evaluating processing parameters relating to …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 15 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).