Method and system for distributed shader optimization

US9727339B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9727339-B2
Application numberUS-201313945230-A
CountryUS
Kind codeB2
Filing dateJul 18, 2013
Priority dateJul 18, 2013
Publication dateAug 8, 2017
Grant dateAug 8, 2017

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.

Embodiments of the present invention are operable to communicate a list of important shaders and their current best-known compilations to remote client devices over a communications network. Client devices are allowed to produce modified shader compilations by varying optimizations. If a client device produces a modified compilation that beats an important shader's current best-known compilation, embodiments of the present invention can communicate this new best-known shader compilation back to a host computer system. Furthermore, embodiments of the present invention may periodically broadcast the new best-known shader compilation back to client devices for possible further optimization or for efficient rendering operations using the best-known shader compilation.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of optimizing shader code, said method comprising: a client device performing optimization procedures on a shader to produce a modified shader compilation result, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; comparing said modified shader compilation result to said current best-known shader compilation result to determine if said modified shader compilation result has a reduced compile time than said current best-known shader compilation result associated with said shader; and provided said modified shader compilation result has a reduced compile time than said current best-known shader compilation result, communicating said modified shader compilation result to a remote device over a communication network for said remote device to communicate said modified shader compilation result to said plurality of client devices as a new best-known shader compilation result. 2. The method as described in claim 1 , wherein said performing further comprises using a plurality of different optimization passes on said shader with a plurality of corresponding optimization parameters. 3. The method as described in claim 1 , wherein said performing further comprises heuristically determining an order for executing optimization passes on said shader. 4. The method as described in claim 1 , wherein said performing further comprises performing said optimization procedures responsive to receiving a communication from said remote device over said communications network concerning said shader. 5. The method as described in claim 1 , wherein said comparing further comprises comparing shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent shader compile times. 6. The method as described in claim 1 , wherein said modified shader compilation result comprises shader latency scores. 7. The method as described in claim 6 , wherein said modified shader compilation result further comprises a set of optimization parameters and an order for executing optimization passes on said shader. 8. A system for optimizing shader code, said system comprising: a memory; a processor coupled to said memory and configured to: receive a modified shader compilation result concerning a shader from a remote client device over a communication network, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; compare said modified shader compilation result to said current best-known shader compilation result to determine a new best-known shader compilation result associated with said shader provided said modified shader compilation result has a reduced compile time than said current best-known shader compilation result; and communicate said modified shader compilation result to a plurality of remote devices over said communication network, wherein said modified shader compilation result is said new best-known shader compilation result associated with said shader. 9. The system as described in claim 8 , wherein said modified shader compilation result further comprises a shader latency score. 10. The system as described in claim 9 , wherein said modified shader compilation result further comprises a set of optimization parameters and an order for executing optimization passes. 11. The system as described in claim 8 , wherein said processor is further configured to compare shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent compile times. 12. The system as described in claim 8 , wherein said modified shader compilation result comprises optimization parameters, an order for executing optimization passes on said shader, and a binary executable. 13. The system as described in claim 8 , wherein said modified shader compilation result comprises a shader latency score and a binary executable. 14. The system as described in claim 8 , wherein said processor is further configured to communicate a request for said plurality of client devices to optimize said modified shader compilation result. 15. A method of optimizing shader code, said method comprising: receiving a modified shader compilation result concerning a shader from a remote client device over a communication network, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; comparing said modified shader compilation result to said current best-known shader compilation result to determine a new best-known shader compilation result associated with said shader based on said modified shader compilation result having a reduced compile time compared to said current best-known shader compilation result; and provided said modified shader compilation result is said new best-known shader compilation result associated with said shader, communicating said modified shader compilation result to a plurality of remote client devices over said communication network. 16. The method as described in claim 15 , wherein said modified shader compilation result comprises a shader latency score. 17. The method as described in claim 16 , wherein said shader latency score is based on a number of clock cycles used to compile said shader. 18. The method as described in claim 15 , wherein said modified shader compilation result comprises a set of optimization parameters and an order for executing optimization passes. 19. The method as described in claim 15 , wherein said comparing further comprises comparing shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent shader compile times. 20. The method as described in claim 15 , wherein said modified shader compilation result comprises optimization parameters, an order for executing optimization passes on said shader, and a binary executable. 21. The method as described in claim 15 , wherein said modified shader compilation result comprises a shader latency score and a binary executable. 22. The method as described in claim 15 , wherein said communicating further comprises communicating a request for said plurality of remote client devices to optimize said modified shader compilation result.

Assignees

Inventors

Classifications

  • G06F8/443Primary

    Optimisation · CPC title

  • Encoding · CPC title

  • G06F9/38Primary

    Concurrent instruction execution, e.g. pipeline or look ahead · 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 US9727339B2 cover?
Embodiments of the present invention are operable to communicate a list of important shaders and their current best-known compilations to remote client devices over a communications network. Client devices are allowed to produce modified shader compilations by varying optimizations. If a client device produces a modified compilation that beats an important shader's current best-known compilatio…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/443. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).