Skip to content

Conversation

@swahtz
Copy link
Contributor

@swahtz swahtz commented Jan 1, 2026

When profiling sparse rasterization in functions like sparseRenderTopContributingGaussianIds, I was noticing that the projection phase, specifically the gaussian tile intersection, dominated the runtime. However, these intersections were being computed for all tiles when we only eventually rasterize a small number of them. I went back and plumbed dispatchGaussianSparseTileIntersection which had been written back in February of 2025 and this has provided a 7x speedup for the tile intersection cost and a 4x speedup to sparseRenderTopContributingGaussianIds overall.

The most significant downstream change is that now tileOffsets can be either a tensor of dimension 3 [C, numTilesH, numTilesW] in the usual dense rendering case or [active_tiles + 1] in the sparse case. This just necessitated changing some functions that relied on tileOffsets's sizes to infer any of those quantities to get them from elsewhere.

swahtz added 7 commits January 1, 2026 13:10
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
…hecks

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Swap out torch cumsum for CUB.

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
…r PR

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
…seTileIntersection to be more consistent with dispatchGaussianSparseRasterize* functions

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
@swahtz swahtz requested a review from a team as a code owner January 1, 2026 04:30
@swahtz swahtz requested review from harrism and matthewdcong January 1, 2026 04:30
@swahtz swahtz added the Gaussian Splatting Issues related to Gaussian splattng in the core library label Jan 1, 2026
Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
Copy link
Contributor

@harrism harrism left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome! Thanks for plumbing this in. Perhaps before merging change the title to not use "pipeline" since that confused me (I interpreted it to mean pipeline parallelism as in overlap multiple stages of an algorithm when processing independent inputs).

@swahtz swahtz changed the title Pipeline Sparse Gaussian TileIntersection Plumb Sparse Gaussian TileIntersection Jan 13, 2026
@harrism harrism added the enhancement New feature or request label Jan 13, 2026
@swahtz swahtz merged commit 402c74a into openvdb:main Jan 13, 2026
32 checks passed
@swahtz swahtz deleted the sparse-tile-intersection branch January 13, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Gaussian Splatting Issues related to Gaussian splattng in the core library

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants