IP Library › Granted Patent US 11,928,772
Granted Patent B2
US 11,928,772 · App. 17/889,545 · Granted Mar 12, 2024

Method for forward progress and programmable timeouts of tree traversal mechanisms in hardware

Inventors: Greg Muthler (Chapel Hill, NC); Ronald Charles Babich, Jr. (Murrysville, PA); William Parsons Newhall, Jr. (Woodside, CA); Peter Nelson (San Francisco, CA); James Robertson (Austin, TX); John Burgess (Austin, TX)
Assignee: NVIDIA Corporation
G06T15/06G06F9/3877G06N5/046G06T1/20G06T1/60G06T17/005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,928,772
App. No.
17/889,545
Granted
Mar 12, 2024
Kind
B2
Abstract

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.

Claims (30)

1. A ray tracing device comprising:

traversal hardware configured to receive a plurality of queries including ray information and traverse an acceleration data structure to determine bounding volumes or geometric primitives intersected by a plurality of rays identified by the ray information; and

a programmable timeout circuit configured to monitor, for each of the plurality of rays, how much the traversal hardware is used to traverse the acceleration data structure by the respective ray and interrupt traversal of the acceleration data structure for one or more of the plurality of rays that are determined to exceed a use threshold without interrupting traversal of the acceleration data structure for one or more other rays of the plurality of rays.

2. The ray tracing device of claim 1 , wherein the plurality of queries are received from a processor and the traversal hardware is configured to return intersection results including bounding volumes or the geometric primitives determined to be intersected by one or more of the rays.

3. The ray tracing device of claim 1 , further comprising a plurality of counters associated with the plurality of rays, each of the counters is configured to count a number of traversal steps performed for the respective ray.

4. The ray tracing device of claim 3 , wherein a ray is determined to exceed the threshold programmed for the ray based on the number of traversal steps counted by the counter exceeding the threshold programmed for the ray.

5. The ray tracing device of claim 1 , wherein the programmable timeout circuit is work-based.

6. The ray tracing device of claim 1 , wherein the programmable timeout circuit is cycle-based.

7. The ray tracing device of claim 1 , wherein the programmable timeout circuit is time-based.

8. The ray tracing device of claim 1 , wherein the programmable timeout circuit is epoch-based.

9. The ray tracing device of claim 1 , wherein monitoring how much the traversal hardware is used comprises counting a number of leaf nodes traversals.

10. 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 plurality of rays intersect in parallel.

11. The ray tracing device of claim 1 , wherein a threshold programmed for at least one of the rays is different from a threshold programmed for one or more other rays.

12. The ray tracing device of claim 1 , wherein the threshold programmed for the respective ray is set to a value that is lower than a second threshold programmed for a completed query based on a number of traversal steps performed in the completed query being less than the second threshold.

13. The ray tracing device of claim 1 , wherein the threshold programmed for the respective ray is set based on a number of traversal steps performed in a completed query.

14. The ray tracing device of claim 1 , wherein monitoring how much the traversal hardware is used comprises separately counting different kinds of traversals of the acceleration data structure by the ray.

15. A method implemented by a hardware-based traversal co-processor, the method comprising:

receiving a plurality of queries including ray information;

traversing, using the hardware-based traversal co-processor, an acceleration data structure for a plurality of rays identified by the ray information to determine bounding volumes or geometric primitives intersected by the plurality of rays;

monitoring, for each of the plurality of rays, how much the hardware-based traversal co-processor is used to traverse the acceleration data structure by the respective ray; and

interrupting traversal of the acceleration data structure for one or more of the rays of the plurality of rays that are determined to exceed a use threshold without interrupting transversal of the acceleration data structure for one or more other rays of the plurality of rays.

16. The method of claim 15 , wherein the plurality of queries are received from a processor and intersection results including bounding volumes or the geometric primitives determined to be intersected by one or more of the rays are returned to the processor.

17. The method of claim 15 , further comprising counting, using a plurality of counters, a number of traversal steps performed by each of the plurality of rays.

18. The method of claim 17 , wherein a ray is determined to exceed the threshold programmed for the ray based on the number of traversal steps counted by the counter exceeding the threshold programmed for the ray.

19. The method of claim 15 , wherein the amount the traversal co-processor is used is work-based.

20. The method of claim 15 , wherein the amount the traversal co-processor is used is cycle-based.

21. The method of claim 15 , wherein the amount the traversal co-processor is used is time-based.

22. The method of claim 15 , wherein the amount the traversal co-processor is used is epoch-based.

23. The method of claim 15 , wherein monitoring how much the traversal co-processor is used comprises counting a number of leaf nodes traversals.

24. The method of claim 15 , wherein a threshold programmed for at least one of the rays is different from a threshold programmed for one or more other rays.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2024
From: MUTHLER, GREG; BABICH, RONALD C.; NEWHALL, WILLIAM P.; NELSON, PETER; ROBERTSON, JIM; BURGESS, JOHN
To: NVIDIA CORPORATION
Reel/Frame 066216/0326 →
Continuity (3)
Continuation 17111844 · Dec 4, 2020
Continuation 16101232 · Aug 10, 2018
Related Publication 20220392148A1 · Dec 8, 2022