IP Library Granted Patent US 9,922,396
Granted Patent B2
US 9,922,396 · App. 15/157,667 · Granted Mar 20, 2018

Reduction of BVH-node bandwidth with incremental traversal

Inventors: Gabor Liktor (San Francisco, CA); Karthik Vaidyanathan (Berkeley, CA)
Assignee: Intel Corporation
G06T1/20G06F12/0871G06T15/06G06F2212/1016G06F2212/302G06F2212/401
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 9,922,396
App. No.
15/157,667
Granted
Mar 20, 2018
Kind
B2
Abstract

Incremental encoding of Bounding Volume Hierarchies (BVH) enables coarse quantization of bounding volumes, significantly reducing their memory footprint. However, reducing the size of the BVH alone does not yield a comparable reduction in memory bandwidth in some embodiments. While the bounding volumes of the BVH nodes can be aggressively quantized, the size of the child node pointers remains a significant overhead. A two-level clustering method introduces a memory layout and node addressing scheme, which allows the reordering of BVH nodes to reduce their memory footprint in hardware ray tracing systems using reduced precision ray traversal.

Claims (32)

1. A method comprising:

implementing reduced precision ray traversal for a bounding volume-node hierarchy in a graphics processor by using address clustering;

and

connecting two address clusters by adding a glue node between the two address clusters.

2. The method of claim 1 including generating low resolution child pointers between clustered nodes.

3. The method of claim 1 including performing cache aware node reordering within each cluster.

4. The method of claim 1 including only loading glue nodes when traversing between the two address clusters.

5. The method of claim 1 including merging child nodes in a cluster until the cluster is full.

6. The method of claim 1 including moving full clusters that match a cache line size to the beginning of an address cluster.

7. The method of claim 1 including storing cache clusters in a multi-level ordered depth-first layout.

8. The method of claim 1 including processing nodes using a traversal unit that traverses one ray per thread and storing a traversal state for the ray.

9. One or more non-transitory computer readable media storing instructions to perform a sequence comprising:

implementing reduced precision ray traversal for a bounding volume-node hierarchy in a graphics processor by using address clustering;

and

connecting two address clusters by adding a glue node between the two address clusters.

10. The media of claim 9 , further storing instructions to perform a sequence including generating low resolution child pointers between clustered nodes.

11. The media of claim 9 , further storing instructions to perform a sequence including performing cache aware node reordering within each cluster.

12. The media of claim 9 , further storing instructions to perform a sequence including only loading glue nodes when traversing between the two address clusters.

13. The media of claim 9 , further storing instructions to perform a sequence including merging child nodes in a cluster until the cluster is full.

14. The media of claim 9 , further storing instructions to perform a sequence including moving full clusters that match a cache line size to the beginning of an address cluster.

15. The media of claim 9 , further storing instructions to perform a sequence including storing cache clusters in a multi-level ordered depth-first layout.

16. The media of claim 9 , further storing instructions to perform a sequence including processing nodes using a traversal unit that traverses one ray per thread and storing a traversal state for the ray.

17. An apparatus comprising:

a processor to implement reduced precision ray traversal for a bounding volume-node hierarchy, by using address clustering, connect two address clusters by adding a glue node between the two address clusters; and

a memory coupled to said processor.

18. The apparatus of claim 17 , said processor to generate low resolution child pointers between clustered nodes.

19. The apparatus of claim 17 , said processor to perform cache aware node reordering within each cluster.

20. The apparatus of claim 17 , said processor to only load glue nodes when traversing between the two address clusters.

21. The apparatus of claim 17 , said processor to merge child nodes in a cluster until the cluster is full.

22. The apparatus of claim 17 , said processor to move full clusters that match a cache line size to the beginning of an address cluster.

23. The apparatus of claim 17 , said processor to store cache clusters in a multi-level ordered depth-first layout.

24. The apparatus of claim 17 , said processor to process nodes using a traversal unit that traverses one ray per thread and storing a traversal state for the ray.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: LIKTOR, GABOR; VAIDYANATHAN, KARTHIK
To: INTEL CORPORATION
Reel/Frame 038633/0968 →
Continuity (2)
Provisional Application 62317691 · Apr 4, 2016
Related Publication 20170287100A1 · Oct 5, 2017