SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2406.18533 · ICLR · 2025

On Scaling Up 3D Gaussian Splatting Training

Ang Li, Saining Xie, Jinyang Li, Aurojit Panda, Hexu Zhao, Haoyang Weng, Daohan Lu

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 15 functions out of this paper's own repositories and ran 11 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
nyu-systems/grendel-gs canonical 9 of 12
nyu-systems/Grendel-GS canonical 2 of 3
FunctionStatusWhere it lives
extract_data_from_list_by_iteration Ran nyu-systems/grendel-gs/analyze_statistic.py
code served (permissive licence) · get_code("de64974a9b0e5a6e")
gaussian Ran nyu-systems/grendel-gs/utils/loss_utils.py
code served (permissive licence) · get_code("c56b7ef16f309a45")
get_sparse_ids Ran nyu-systems/grendel-gs/scene/gaussian_model.py
code served (permissive licence) · get_code("0e227be86333f793")
get_suffix_in_folder Ran nyu-systems/Grendel-GS/examples/mip360/analyze_results.py
code served (permissive licence) · get_code("09cc5d1fc556fd75")
get_suffix_in_folder Ran nyu-systems/grendel-gs/analyze.py
code served (permissive licence) · get_code("caffb775ed8f26f5")
get_suffix_in_folder Ran nyu-systems/grendel-gs/analyze_statistic.py
code served (permissive licence) · get_code("75db674c376d6b94")
get_test_psnr_at_iterations Ran nyu-systems/Grendel-GS/examples/mip360/analyze_results.py
code served (permissive licence) · get_code("bb6cf981751aceff")
get_touched_tile_rect Ran nyu-systems/grendel-gs/gaussian_renderer/loss_distribution.py
code served (permissive licence) · get_code("a269001c6b211066")
l1_loss Ran nyu-systems/grendel-gs/utils/loss_utils.py
code served (permissive licence) · get_code("ac0e42d6fbcfbbe6")
l2_loss Ran nyu-systems/grendel-gs/utils/loss_utils.py
code served (permissive licence) · get_code("8c3b0f873ba11813")
readImages Ran nyu-systems/grendel-gs/metrics.py
code served (permissive licence) · get_code("3a23e82389fcee75")
get_n3dgs_list_from_log Not yet run nyu-systems/grendel-gs/analyze.py
code served (permissive licence) · get_code("e9c443ad173f5083")
get_n3dgs_list_per_rank_from_log Not yet run nyu-systems/grendel-gs/analyze.py
code served (permissive licence) · get_code("b29a042c599e4a3c")
get_running_time_at_iterations Not yet run nyu-systems/Grendel-GS/examples/mip360/analyze_results.py
code served (permissive licence) · get_code("f3e3ea18903f6696")
read_file Not yet run nyu-systems/grendel-gs/analyze_statistic.py
code served (permissive licence) · get_code("93438892eb42697d")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

3D Gaussian Splatting (3DGS) is increasingly popular for 3D reconstruction due to its superior visual quality and rendering speed. However, 3DGS training currently occurs on a single GPU, limiting its ability to handle high-resolution and large-scale 3D reconstruction tasks due to memory constraints. We introduce Grendel, a distributed system designed to partition 3DGS parameters and parallelize computation across multiple GPUs. As each Gaussian affects a small, dynamic subset of rendered pixels, Grendel employs sparse all-to-all communication to transfer the necessary Gaussians to pixel partitions and performs dynamic load balancing. Unlike existing 3DGS systems that train using one camera view image at a time, Grendel supports batched training with multiple views. We explore various optimization hyperparameter scaling strategies and find that a simple sqrt(batch_size) scaling rule is highly effective. Evaluations using large-scale, high-resolution scenes show that Grendel enhances rendering quality by scaling up 3DGS parameters across multiple GPUs. On the 4K "Rubble" dataset, we achieve a test PSNR of 27.28 by distributing 40.4 million Gaussians across 16 GPUs, compared to a PSNR of 26.28 using 11.2 million Gaussians on a single GPU. Grendel is an open-source project available at: https://github.com/ nyu-systems/Grendel-GS

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2406.18533")
get_code_for_paper("2406.18533")
have("2406.18533")

Connect an agent — have() is free.