Ang Li, Saining Xie, Jinyang Li, Aurojit Panda, Hexu Zhao, Haoyang Weng, Daohan Lu
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.
| Repository | Role | Ran |
|---|---|---|
| nyu-systems/grendel-gs | canonical | 9 of 12 |
| nyu-systems/Grendel-GS | canonical | 2 of 3 |
| Function | Status | Where 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") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
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
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.