FlashGS: Efficient 3D Gaussian Splatting for Large-scale and High-resolution Rendering

Guofeng Feng,Siyan Chen,Rong Fu,Zimu Liao,Yi Wang,Tao Liu,Zhilin Pei,Hengjie Li,Xingcheng Zhang,Bo Dai
2024-08-19
Abstract:This work introduces FlashGS, an open-source CUDA Python library, designed to facilitate the efficient differentiable rasterization of 3D Gaussian Splatting through algorithmic and kernel-level optimizations. FlashGS is developed based on the observations from a comprehensive analysis of the rendering process to enhance computational efficiency and bring the technique to wide adoption. The paper includes a suite of optimization strategies, encompassing redundancy elimination, efficient pipelining, refined control and scheduling mechanisms, and memory access optimizations, all of which are meticulously integrated to amplify the performance of the rasterization process. An extensive evaluation of FlashGS' performance has been conducted across a diverse spectrum of synthetic and real-world large-scale scenes, encompassing a variety of image resolutions. The empirical findings demonstrate that FlashGS consistently achieves an average 4x acceleration over mobile consumer GPUs, coupled with reduced memory consumption. These results underscore the superior performance and resource optimization capabilities of FlashGS, positioning it as a formidable tool in the domain of 3D rendering.
Computer Vision and Pattern Recognition
What problem does this paper attempt to address?
### Problems the paper attempts to solve The paper "FlashGS: Efficient Large - scale High - resolution 3D Gaussian Point Rendering" aims to solve the problems of low computational efficiency and excessive memory consumption encountered by existing 3D Gaussian point rendering techniques in large - scale and high - resolution scenarios. Specifically: 1. **Low computational efficiency**: - When dealing with large - scale or high - resolution scenarios, current 3D Gaussian point rendering techniques are difficult to achieve real - time rendering due to the huge amount of computation. Especially in city - level scenarios or high - quality scenarios recorded by consumer - grade GPS receivers, the limited computing resources cannot support efficient real - time rendering. - Existing optimization methods, such as compression and pruning, can reduce part of the computation amount, but fail to significantly improve performance. 2. **Excessive memory consumption**: - In large - scale and high - resolution scenarios, the number of generated Gaussian points may reach millions or even more, putting great pressure on memory units. Existing optimization methods mainly focus on memory usage, but fail to fundamentally solve the bottleneck problems of computation and memory access. ### Solutions To address the above problems, the paper proposes FlashGS, an efficient 3D Gaussian point rendering library based on CUDA. FlashGS improves rendering performance through the following optimization strategies: 1. **Accurate intersection algorithm**: - An accurate intersection algorithm is introduced, which reduces the computation of invalid Gaussian points, thereby reducing the computational and memory access burdens in the subsequent sorting and rendering processes. - Considering the opacity of Gaussian points, the effective range of the ellipse is adjusted to further reduce computational redundancy. 2. **Optimized pipeline design**: - The rendering process is reorganized and optimized to balance the computational and memory access loads at different stages and avoid resource bottlenecks in a single stage. - By combining the accurate intersection algorithm and memory access operations, efficient utilization of computation and memory access is achieved. 3. **System - level optimization**: - FlashGS is systematically implemented on the GPU, including computational optimization, memory management optimization, and scheduling optimization. - Through a multi - step pre - fetch execution pipeline, computational and memory access operations are overlapped to improve overall performance. ### Experimental results The experimental results show that FlashGS performs excellently in a variety of synthetic and real - world large - scale scenarios, with an average speed - up 4 times higher than that of mobile consumer - grade GPUs, while reducing memory consumption by 49%. These results prove the superior performance and resource optimization ability of FlashGS in large - scale and high - resolution scenarios. ### Main contributions 1. **In - depth analysis and optimization**: - The original 3D Gaussian point rendering algorithm is thoroughly studied, and the main challenges and performance bottlenecks in large - scale and high - resolution scenarios are identified. - A new algorithm FlashGS is proposed, including an accurate redundancy elimination algorithm and an efficient rendering execution process. 2. **System - level implementation**: - FlashGS is systematically implemented on the GPU, including comprehensive optimization of computation, memory management, and scheduling. - Through testing on representative data sets, it is shown that FlashGS significantly improves the rendering speed while maintaining high image quality and low memory usage. Through these innovations, FlashGS provides a powerful tool for efficient rendering in large - scale and high - resolution scenarios and promotes the development of 3D rendering technology.