3D Gaussian Splatting这个技术这两年火得不行。简单来说,就是给定一组带位置和方向的图片,系统能训练出一个由大量3D高斯体组成的场景表示,然后用这个表示来渲染从未见过的新视角。
跟其他方法比,3DGS渲染速度快,画面质量还不差,所以在3D建模、数字孪生、影视制作、VR/AR和机器人视觉重建这些领域都开始用起来了。
但问题也很明显,场景越大越复杂,需要的高斯体就越多,显存占用也跟着涨。GPU显存本来就不富裕,这一下就成了瓶颈。
最近谢赛宁团队提出的CLM系统,就是专门来解决这个问题的。
3DGS的渲染质量好不好,取决于训练出来的场景表示精不精确。捕捉大面积或者细节多的场景,需要更多高斯体。
![]()
顶尖的3DGS实现都跑在GPU上,但GPU显存真不够用。要处理那种高分辨率的大场景,显存容量就成了拦路虎。
2025年11月初,谢赛宁团队发表了一篇论文,题目是《CLM: Removing the GPU Memory Barrier for 3D Gaussian Splatting》。
这个系统允许3DGS使用单块消费级GPU,比如RTX 4090,就能渲染大型场景。论文地址在arxiv上,编号是2511.04951v1。
CLM的设计基于一个很简单的观察:3DGS的计算本质上是稀疏的。什么意思呢?就是每次训练迭代,只会访问场景里一小部分高斯体。
既然这样那就只把这一小部分加载到GPU内存里,其余的放在CPU内存里就行了。CPU内存可比GPU显存大多了。
![]()
但这个想法虽然简单,实现起来可不容易。GPU和CPU之间传数据本身就有开销,如果处理不好,性能会掉得很厉害。
谢赛宁团队基于对3DGS内存访问模式的深入理解,设计了一套新颖的卸载策略。这套策略利用了3DGS训练流水线的四个特点。
第一个特点是访问集可以提前计算。每个视角,也就是每张训练图像,会访问哪些高斯体,这个可以提前算出来。这样就能让加载下一次迭代需要的高斯体,跟上一次迭代的计算同时进行,减少等待时间。
第二个特点是重叠缓存。不同视角访问的高斯体之间,有大量重叠。团队把这些重叠的高斯体缓存起来,就不用每次都重新传输了,大大减少了通信量。
第三个特点是空间局部性。训练过程表现出空间局部性,同一区域的视角倾向于访问相同的高斯体。团队根据这个特点,仔细安排训练迭代的顺序,最大化重叠访问,最小化总体通信量。
![]()
第四个特点是重叠计算。进一步利用空间局部性,让梯度计算和大部分高斯参数更新可以重叠进行。
评估结果显示,CLM可以在单个RTX 4090上渲染一个需要1.02亿个高斯体的大型场景,重建质量达到顶尖水平。
更重要的是当渲染那些可以装入基线系统GPU显存的小场景时,CLM相比没有卸载的基线系统,性能开销并不大。
团队是怎么做到的呢?他们把部分高斯点参数存储在固定页主内存中,需要时动态加载到GPU内存。同时充分利用3DGS的几个独特特性,显著降低卸载带来的通信开销。
3DGS的计算过程是稀疏的,在渲染时,不管是训练阶段还是推理阶段,只有场景中一小部分高斯点会被实际使用。
原因很简单,每个视角对应一个相机位姿,只有位于相机视锥体内的高斯点,才可能对最终渲染图像产生贡献。实验发现,在大场景中,单个视角访问的高斯点数量占比通常不到1%。
![]()
团队利用这种稀疏性,通过3DGS的视锥剔除逻辑,提前识别出每个视角所需的高斯点子集,并仅将这些必要的高斯点传输至GPU,从而显著降低内存占用与数据传输量。
同一场景的不同视角,其稀疏模式虽不同,但存在重叠。团队利用这种空间局部性,优化CPU与GPU之间的数据传输。
microbatch调度优化是个关键技术。提前计算每个microbatch的稀疏模式,并合理安排它们的处理顺序,使得相邻批次之间的访问模式尽可能重叠,从而提高缓存命中率。
GPU缓存机制也很重要,将连续microbatch中频繁访问的高斯点保存在GPU缓存中,减少重复的数据传输,显著降低通信开销。
在传统3DGS实现中,所有高斯点参数被存储在单个张量中,并且在GPU上执行视锥剔除以确定某个视角的稀疏模式。
但这种做法要求所有高斯点都预先加载到GPU内存,这跟只加载必要高斯点的设计目标相冲突。团队通过仅使用部分高斯信息来预估稀疏模式,避免了不必要的GPU内存占用。
![]()
CLM的核心思路是,通过将高斯参数和部分优化器计算卸载到CPU端,来扩展有效的GPU显存容量。
同时基于3DGS稀疏性和空间局部性的观察结果,最大限度地减少GPU-CPU通信与CPU计算的开销。目前CLM的实现基于CUDA,但其设计与渲染后端无关,也可移植到Vulkan平台。
具体训练流程是这样的。首先,CLM选取一批训练图像及其对应视角,使用视锥剔除计算出每个视角所需的高斯集合,称为视锥内高斯。
接着将一个batch划分为多个microbatch,以便在训练中启用流水线执行。更重要的是,CLM根据视锥剔除的输出结果,优化microbatch的执行顺序,以最大化空间局部性。最后,每个microbatch在流水线中执行,使得通信与计算能够重叠进行。
处理microbatch时,CLM会将所需的视锥内高斯加载到GPU内存,通过高斯缓存机制避免重复加载连续microbatch中共享的高斯点。之后GPU执行前向与反向传播,梯度被传回CPU,而一个并行CPU线程执行Adam优化器,更新高斯参数。
加载microbatch i的视锥高斯时,与microbatch i-1的GPU反向计算重叠。传输microbatch i的梯度时,与microbatch i+1的GPU前向计算重叠。
对于那些在某个microbatch中最后被更新的高斯点,CLM会在CPU上完成其对应的Adam更新,并与后续microbatch的GPU前向/反向计算并行执行。
![]()
经过一系列实验评估,CLM具备更大规模的模型训练能力。通过将部分计算与数据卸载至CPU,CLM使得3DGS的可训练模型规模相比纯GPU训练基线提升了最高6.1倍。
更高的重建质量,CLM能够训练更大的模型,从而提升场景重建精度。更低的通信与卸载开销。
这个技术的意义不只是让大场景渲染成为可能。从更大的角度看,它降低了使用3DGS技术的门槛。
以前要处理大场景,要么用多块GPU,成本高昂,要么降低场景表示的保真度,牺牲渲染质量。现在有了CLM,用单块消费级GPU就能搞定,这对于中小团队和个人开发者来说,意义重大。
RTX 4090这样的消费级显卡,售价虽然不便宜,但跟专业级GPU比起来,已经算是相当亲民了。
2025年1月CES上,英伟达发布了新一代RTX 50系列,RTX 5090的AI算力达到2375 TOPS,性能是RTX 4090的两倍。但RTX 4090目前仍然是性价比很高的选择,尤其是在二手市场。
3DGS技术的应用场景非常广泛。在影视制作领域,可以用来快速生成场景的不同视角,减少拍摄成本。在VR/AR领域,可以用来创建高质量的虚拟环境。
![]()
在机器人视觉重建领域,可以帮助机器人更好地理解周围环境。在数字孪生领域,可以用来创建物理世界的数字副本。
NVIDIA在2025年5月还推出了3DGUT技术,这是基于3DGS框架的一个增强版本,集成到了开源的gsplat库中。
3DGUT用Unscented Transform替换了传统的Elliptical Weighted Average splatting,能够处理鱼眼镜头畸变和卷帘快门效应等复杂相机模型,而且不牺牲渲染速度。这些技术进展都在推动3DGS走向实用化。
2025年,SIGGRAPH Asia还专门举办了3D Gaussian Splatting Challenge,这个比赛关注的就是如何在真实设备上高效运行3DGS。可见这个技术已经从学术研究走向实际应用,行业对它的关注度越来越高。
CLM系统的出现,打破了3DGS一直以来的显存瓶颈。用单块消费级GPU就能处理1亿个高斯体的大场景,这在以前是不可想象的。
这个突破不仅仅是技术上的进步,更重要的是降低了使用门槛,让更多人能够用上这项技术。
随着3DGS相关技术的不断成熟,我们有理由期待它在更多领域发挥作用,创造出更多令人惊艳的应用。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.