On Scaling Up 3D Gaussian Splatting Training
作者: Hexu Zhao, Haoyang Weng, Daohan Lu, Ang Li, Jinyang Li, Aurojit Panda, Saining Xie
分类: cs.CV
发布日期: 2024-06-26 (更新: 2025-11-07)
备注: ICLR 2025 Oral; Homepage: https://daohanlu.github.io/scaling-up-3dgs/
🔗 代码/项目: GITHUB
💡 一句话要点
Grendel:提出一种可扩展的3D高斯溅射训练分布式系统,解决高分辨率和大规模场景重建的内存瓶颈。
🎯 匹配领域: 支柱三:空间感知与语义 (Perception & Semantics)
关键词: 3D高斯溅射 分布式训练 大规模场景重建 并行计算 稀疏通信
📋 核心要点
- 现有3DGS训练受限于单GPU内存,无法有效处理高分辨率和大规模场景重建任务。
- Grendel通过分布式系统,在多GPU上划分3DGS参数并并行计算,实现可扩展训练。
- 实验表明,Grendel通过扩展3DGS参数,提升了大规模高分辨率场景的渲染质量。
📝 摘要(中文)
3D高斯溅射(3DGS)因其卓越的视觉质量和渲染速度,在3D重建领域日益流行。然而,目前的3DGS训练通常在单个GPU上进行,由于内存限制,这限制了其处理高分辨率和大规模3D重建任务的能力。我们介绍了Grendel,一个分布式系统,旨在划分3DGS参数并在多个GPU上并行计算。由于每个高斯函数影响渲染像素的一个小的、动态的子集,Grendel采用稀疏的全连接通信来将必要的高斯函数传输到像素分区,并执行动态负载平衡。与现有的每次训练使用一个相机视图图像的3DGS系统不同,Grendel支持使用多个视图进行批量训练。我们探索了各种优化超参数缩放策略,发现一个简单的sqrt(batch size)缩放规则非常有效。使用大规模、高分辨率场景的评估表明,Grendel通过在多个GPU上扩展3DGS参数来提高渲染质量。在Rubble数据集上,通过在16个GPU上分布4040万个高斯函数,我们实现了27.28的测试PSNR,而使用单个GPU上的1120万个高斯函数,PSNR为26.28。Grendel是一个开源项目,可在https://github.com/nyu-systems/Grendel-GS 获取。
🔬 方法详解
问题定义:现有的3D高斯溅射(3DGS)训练方法主要依赖于单GPU,这限制了其处理大规模、高分辨率场景的能力。单GPU的内存容量成为瓶颈,阻碍了模型参数的扩展和训练数据的增加,从而影响了重建质量。
核心思路:Grendel的核心思路是将3DGS的参数(例如高斯函数的属性)划分到多个GPU上,并通过并行计算来加速训练过程。为了解决高斯函数影响像素的动态性和稀疏性问题,采用了稀疏全连接通信和动态负载均衡策略。
技术框架:Grendel的整体框架包含以下几个主要模块:1) 参数划分模块:将3DGS的参数(高斯函数)分配到不同的GPU上。2) 渲染模块:每个GPU负责渲染一部分像素。3) 通信模块:采用稀疏全连接通信,将每个像素所需的高斯函数信息传递到对应的GPU。4) 优化模块:在每个GPU上进行局部优化,并通过同步梯度来更新全局参数。5) 负载均衡模块:动态调整每个GPU上的高斯函数数量,以平衡计算负载。
关键创新:Grendel的关键创新在于其分布式训练架构,特别是稀疏全连接通信和动态负载均衡策略。与传统的单GPU训练相比,Grendel能够利用多GPU的并行计算能力,显著提高训练速度和模型容量。与现有的分布式训练方法相比,Grendel针对3DGS的特性进行了优化,例如高斯函数影响像素的动态性和稀疏性。此外,Grendel还支持多视角批量训练,进一步提高了训练效率。
关键设计:Grendel的关键设计包括:1) 稀疏全连接通信:只传输每个像素所需的高斯函数信息,减少通信开销。2) 动态负载均衡:根据每个GPU的计算负载,动态调整其上的高斯函数数量。3) 超参数缩放:采用sqrt(batch size)缩放规则来调整优化超参数,以适应多GPU训练。4) 损失函数:使用标准的3DGS损失函数,包括L1损失、D-SSIM损失等。
🖼️ 关键图片
📊 实验亮点
Grendel在Rubble数据集上取得了显著的性能提升。通过在16个GPU上分布4040万个高斯函数,Grendel实现了27.28的测试PSNR,相比之下,使用单个GPU上的1120万个高斯函数,PSNR为26.28。这表明Grendel能够通过扩展模型容量来提高渲染质量。
🎯 应用场景
Grendel的应用场景广泛,包括城市级别的3D重建、大规模场景的虚拟现实/增强现实应用、以及高精度地图的生成等。通过扩展3DGS的训练能力,Grendel能够处理更大规模、更高分辨率的3D数据,从而提升相关应用的真实感和实用性。未来,Grendel有望推动3D重建技术在自动驾驶、机器人导航、游戏开发等领域的应用。
📄 摘要(原文)
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 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