Method for programmable timeouts of tree traversal mechanisms in hardware

US10885698B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10885698-B2
Application numberUS-201816101232-A
CountryUS
Kind codeB2
Filing dateAug 10, 2018
Priority dateAug 10, 2018
Publication dateJan 5, 2021
Grant dateJan 5, 2021

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.

In a ray tracer, to prevent any long-running query from hanging the graphics processing unit, a traversal coprocessor provides a preemption mechanism that will allow rays to stop processing or time out early. The example non-limiting implementations described herein provide such a preemption mechanism, including a forward progress guarantee, and additional programmable timeout options that can be time or cycle based. Those programmable options provide a means for quality of service timing guarantees for applications such as virtual reality (VR) that have strict timing requirements.

First claim

Opening claim text (preview).

The invention claimed is: 1. A ray tracing device comprising: traversal hardware configured to receive, from a processor, a first query including first ray information and a second query including second ray information, in response to the first query, traverse an acceleration data structure to determine bounding volumes or geometric primitives that the first ray intersects and in response to the second query, traverse the acceleration data structure to determine bounding volumes and/or or geometric primitives that the second ray intersects; and a programmable timeout circuit configured to: (a) simultaneously monitor how much the traversal hardware is used to traverse the acceleration data structure for the first ray and how much the traversal hardware is used to traverse the acceleration data structure for the second ray, (b) interrupt the traversal hardware in traversing the acceleration data structure for the first ray if an amount the traversal hardware is used in traversing the acceleration data structure for the first ray exceeds a first threshold value programmable for the first ray without interrupting the traversal hardware in traversing the acceleration data structure for the second ray, and (c) interrupt the traversal hardware in traversing the acceleration data structure for the second ray if an amount the traversal hardware is used in traversing the acceleration data structure for the second ray exceeds a second threshold value programmable for the second ray without interrupting the traversal hardware in traversing the acceleration data structure for the first ray. 2. The ray tracing device of claim 1 wherein the programmable timeout circuit is work-based. 3. The ray tracing device of claim 1 wherein the programmable timeout circuit is cycle-based. 4. The ray tracing device of claim 1 wherein the programmable timeout circuit is time-based. 5. The ray tracing device of claim 1 wherein the programmable timeout circuit is epoch-based. 6. The ray tracing device of claim 1 wherein monitoring how much the traversal hardware is used comprises counting the number of certain traversal operations the hardware performs for the first or second ray. 7. The ray tracing device of claim 6 wherein the certain traversal operations comprise leaf node traversals. 8. The ray tracing device of claim 1 wherein the traversal hardware is configured to traverse the acceleration data structure to determine bounding volumes or geometric primitives that the first ray intersects at least partially in parallel with traversing the acceleration data structure to determine bounding volumes or geometric primitives that the second ray intersects. 9. A method implemented by a hardware-based traversal coprocessor coupled to a processor, the method comprising: receiving from the processor a first query including first ray information and a second query including second ray information; in response to receiving the first query, traversing an acceleration data structure to determine bounding volumes or geometric primitives that the first ray intersects; in response to receiving the second query, traversing the acceleration data structure to determine bounding volumes or geometric primitives that second first ray intersects; simultaneously monitoring how much the traversal coprocessor is used to traverse the acceleration data structure for the first ray and how much the traversal coprocessor is used to traverse the acceleration data structure for the second ray; interrupting the traversal coprocessor in traversing the acceleration data structure for the first ray if an amount the traversal coprocessor is used in traversing the acceleration data structure for the first ray exceeds a first threshold value programmable for the first ray without interrupting the traversal hardware in traversing the acceleration data structure for the second ray; and interrupting the traversal coprocessor in traversing the acceleration data structure for the second ray if an amount the traversal coprocessor is used in traversing the acceleration data structure for the second ray exceeds a second threshold value programmable for the second ray without interrupting the traversal hardware in traversing the acceleration data structure for the first ray. 10. The method of claim 9 wherein the amount the traversal coprocessor is used is work-based. 11. The method of claim 9 wherein the amount the traversal coprocessor is used is cycle-based. 12. The method of claim 9 wherein the amount the traversal coprocessor is used is time-based. 13. The method of claim 9 wherein the amount the traversal coprocessor is used is epoch-based. 14. The method of claim 9 wherein monitoring how much the traversal coprocessor is used comprises counting a number of certain traversal operations the coprocessor performs for the ray. 15. The method of claim 14 wherein the certain traversal operations comprise leaf node traversals.

Assignees

Inventors

Classifications

  • Combinations of networks · CPC title

  • Tree description, e.g. octree, quadtree · CPC title

  • G06T15/06Primary

    Ray-tracing · CPC title

  • G06T1/20Primary

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

  • Bounding box · 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 US10885698B2 cover?
In a ray tracer, to prevent any long-running query from hanging the graphics processing unit, a traversal coprocessor provides a preemption mechanism that will allow rays to stop processing or time out early. The example non-limiting implementations described herein provide such a preemption mechanism, including a forward progress guarantee, and additional programmable timeout options that can …
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T15/06. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2021 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).