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.