Skip to content

Reduce memory pressure for Gaussian tile intersections - #839

Merged
matthewdcong merged 2 commits into
openvdb:mainfrom
matthewdcong:block_gaussian_offsets
Oct 30, 2026
Merged

matthewdcong merged 2 commits into
openvdb:mainfrom
matthewdcong:block_gaussian_offsets

Conversation

@matthewdcong

@matthewdcong matthewdcong commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Tile intersection currently stores and scans a count per projected Gaussian, with a separate buffer on each GPU in mGPU. This PR reduces these buffers to one count per block and reconstructs per-Gaussian offsets using a block-local scan during intersection emission. This reduces temporary storage and global scan size for both CUDA and mGPU while providing identical results. The reduced global memory reads also speed up the kernel by 32% reducing single GPU training time end to end by 2-3%.

Scan one count per Gaussian block and reconstruct per-Gaussian offsets during emission on CUDA and multi-GPU paths.

Signed-off-by: Matthew Cong <mcong@nvidia.com>
@matthewdcong
matthewdcong requested a review from a team as a code owner October 29, 2026 14:03

@swahtz swahtz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good. I saw two things worth addressing that are not correctness issues but might help slightly with performance or reduce likelihood of a future bug.

Signed-off-by: Matthew Cong <mcong@nvidia.com>
@matthewdcong
matthewdcong force-pushed the block_gaussian_offsets branch from 31e79a8 to 48c1a18 Compare October 30, 2026 15:41
@matthewdcong
matthewdcong enabled auto-merge (squash) October 30, 2026 16:02
@matthewdcong
matthewdcong merged commit 64bc09b into openvdb:main Oct 30, 2026
44 checks passed
@matthewdcong
matthewdcong deleted the block_gaussian_offsets branch October 30, 2026 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants