Agglomerative treelet restructuring for bounding volume hierarchies

US9817919B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9817919-B2
Application numberUS-201314065321-A
CountryUS
Kind codeB2
Filing dateOct 28, 2013
Priority dateJun 10, 2013
Publication dateNov 14, 2017
Grant dateNov 14, 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.

A system, method, and computer program product are provided for modifying a hierarchical tree data structure. An initial hierarchical tree data structure is received, and treelets of node neighborhoods are formed. A processor restructures the treelets using agglomerative clustering to produce an optimized hierarchical tree data structure that includes at least one restructured treelet, where each restructured treelet includes at least one internal node.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving, by a parallel processing unit that is configured to execute threads in a group of threads in parallel, an initial hierarchical tree data structure; forming treelets of node neighborhoods; and restructuring, by the parallel processing unit executing the threads in parallel, a first treelet of the treelets to produce a restructured hierarchical tree data structure including at least one restructured treelet, wherein the restructuring comprises: merging a portion of treelet nodes within the first treelet to produce internal treelet nodes; computing a first surface area cost of the internal treelet nodes; and before merging remaining treelet nodes within the first treelet, estimating a second surface area cost of additional internal treelet nodes to be produced by merging the remaining treelet nodes. 2. The method of claim 1 , wherein the restructuring further comprises: initializing a set of nodes yet to be merged within the portion of treelet nodes to include n treelet leaf nodes; merging, in parallel, two or more pairs of the nodes in the set to generate at least a portion of the internal treelet nodes; and removing the two or more pairs of the nodes from the set. 3. The method of claim 2 , wherein the restructuring further comprises: before the merging, adding at least one of the portion of the internal treelet nodes to the set of nodes; and repeating the merging, removing, and adding until less than a pre-determined number of nodes remain in the set of nodes yet to be merged. 4. The method of claim 1 , wherein the restructuring further comprises: constructing a restructured treelet corresponding to a second treelet of the treelets; and replacing the second treelet with the restructured treelet if a cost function indicates that the restructured treelet improves the hierarchical tree data structure. 5. The method of claim 1 , wherein the restructuring further comprises reusing treelet leaf nodes of the first treelet to produce a restructured treelet having a different depth-first order of the treelet leaf nodes than the first treelet. 6. The method of claim 1 , wherein the initial hierarchical tree data structure is a bounding volume hierarchy tree data structure. 7. The method of claim 1 , wherein the restructuring of the first treelet is performed in parallel by allocating one of the threads to each treelet node in the portion of treelet nodes. 8. The method of claim 1 , further comprising constructing the initial hierarchical tree data structure using a construction technique that produces an initial hierarchical tree data structure having three or more nodes. 9. The method of claim 1 , further comprising: restructuring the at least one restructured treelet to produce at least one additional restructured treelet; and for each treelet root, selecting either a restructured treelet from the at least one restructured treelet or a corresponding restructured treelet from the at least one additional restructured treelet. 10. The method of claim 1 , further comprising: restructuring a second treelet of the treelets using agglomerative clustering to produce a second restructured treelet; using a combination of the first treelet and the second treelet. 11. The method of claim 1 , further comprising: using the hierarchical tree data structure to perform intersection tests; forming second treelets of node neighborhoods; and restructuring the second treelets. 12. A system comprising: a memory storing a initial hierarchical tree data structure; and a parallel processing unit that is coupled to the memory and executes threads in a group of threads in parallel and is configured to: receive the initial hierarchical tree data structure; form treelets of node neighborhoods; and restructure a first treelet of the treelets to produce a restructured hierarchical tree data structure by executing the threads in parallel, wherein the restructuring comprises: merging a portion of treelet nodes within the first treelet to produce internal treelet nodes; computing a first surface area cost of the internal treelet nodes; and before merging remaining treelet nodes within the first treelet, estimating a second surface area cost of additional internal treelet nodes to be produced by merging the remaining treelet nodes. 13. The system of claim 12 , wherein the restructuring of the first treelet is performed in parallel by allocating one of the threads to each treelet node in the portion of treelet nodes. 14. A non-transitory computer-readable storage medium storing instructions that, when executed by a parallel processing unit, cause the parallel processing unit to modify a hierarchical tree data structure, comprising: receiving, by a parallel processing unit that is configured to execute threads in a group of threads in parallel, an initial hierarchical tree data structure; forming treelets of node neighborhoods; and restructuring a first treelet of the treelets to produce a restructured hierarchical tree data structure by executing the threads in parallel, wherein the restructuring comprises: merging a portion of treelet nodes within the first treelet to produce internal treelet nodes; computing a first surface area cost of the internal treelet nodes; and before merging remaining treelet nodes within the first treelet, estimating a second surface area cost of additional internal treelet nodes to be produced by merging the remaining treelet nodes.

Assignees

Inventors

Classifications

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 US9817919B2 cover?
A system, method, and computer program product are provided for modifying a hierarchical tree data structure. An initial hierarchical tree data structure is received, and treelets of node neighborhoods are formed. A processor restructures the treelets using agglomerative clustering to produce an optimized hierarchical tree data structure that includes at least one restructured treelet, where ea…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/9027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 14 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).