웹 브라우저용 고성능 가우시안 스플래팅 엔진 WebSplatter
초록
WebSplatter는 WebGPU 기반의 엔드‑투‑엔드 파이프라인으로, 전역 원자 연산이 없는 환경에서도 대기‑프리 계층형 기수 정렬을 구현하고, 불투명도 기반 화면‑공간 컬링을 통해 스플랫의 과다 그리기를 최소화한다. 이를 통해 다양한 데스크톱·모바일 브라우저에서 기존 웹 기반 3D Gaussian Splatting 구현 대비 1.2배~4.5배의 속도 향상과 메모리 사용량 감소를 달성한다.
상세 분석
WebSplatter는 현재 웹 생태계에서 가장 큰 제약 중 하나인 WebGPU 표준이 제공하지 않는 전역 원자 연산을 회피하기 위해 ‘대기‑프리(wait‑free)’ 계층형 기수 정렬을 설계하였다. 기존 GPU 기반 정렬 알고리즘은 워크그룹 간 스핀‑웨이트와 전역 플래그를 이용해 동기화를 수행하지만, 브라우저는 워크그룹 스케줄링 순서를 보장하지 않으며, 이러한 패턴은 모바일 SoC에서 심각한 성능 저하와 심지어 데드락을 유발한다. WebSplatter는 Blelloch 스캔을 계층적으로 적용해 각 워크그룹 내부에서만 배리어를 사용하고, 워크그룹 간에는 전역 프리픽스와 베이스 오프셋을 사전 계산한 뒤 한 번의 스캔 단계만 수행한다. 이 설계는 O(N) 작업량과 O(N/wg) 보조 메모리 사용을 유지하면서도 모든 디바이스에서 결정론적이고 교착 상태가 없는 정렬을 보장한다.
또 다른 핵심 기법은 ‘불투명도‑인식(Opacity‑Aware) 화면‑공간 컬링’이다. 3D Gaussian은 2D 화면에 투영될 때 타원 형태의 바운딩 박스를 가진다. WebSplatter는 프리‑프로세싱 단계에서 각 Gaussian을 2D 타원으로 투영하고, 타원의 주요·보조 축을 16‑bit 부동소수점 두 개로 압축해 32‑bit 정수 하나에 저장한다. 이때 바운딩 박스가 뷰포트와 겹치지 않으면 즉시 폐기하고, 겹치는 경우에도 불투명도와 깊이 정보를 함께 저장한다. 이렇게 압축된 데이터는 이후 레스터화 단계에서 GPU가 직접 바운딩 박스를 기반으로 최소한의 픽셀만 처리하도록 하여 오버드로우를 크게 감소시킨다. 특히, 알파 값이 1/255 이하인 스플랫은 완전히 버려져 메모리 대역폭과 연산량을 절감한다.
WebSplatter는 전체 파이프라인을 ‘컴퓨트‑렌더 하이브리드’ 구조로 구성한다. 프리‑프로세싱(컬링·색상 계산) → 정렬(기수 정렬) → 레스터화(스플랫 그리기) 순서이며, 각 단계는 독립적인 Compute Pass 혹은 Render Pass로 구현되어 WebGPU의 파이프라인 바인딩 모델에 완벽히 맞는다. 이 설계는 GPU 전용 메모리 내에서 모든 연산이 이루어지므로 CPU‑GPU 간 데이터 전송 오버헤드가 최소화된다.
성능 평가에서는 고성능 데스크톱 GPU(NVIDIA RTX 3080)와 모바일 SoC(Apple M1, Qualcomm Adreno 660)에서 각각 1.18×~4.5×의 속도 향상을 보고했으며, 메모리 피크 사용량도 기존 WebGPU 포트 대비 30 % 이상 감소했다. 특히 메모리 제한이 엄격한 모바일 환경에서 크래시 없이 1 M‑스플랫 씬을 렌더링할 수 있었다. 이러한 결과는 WebSplatter가 웹 기반 3D Gaussian Splatting의 실시간 인터랙티브 응용에 충분히 실용적임을 입증한다.
요약하면, WebSplatter는 전역 원자 부재라는 WebGPU 고유의 제약을 ‘대기‑프리 계층형 기수 정렬’과 ‘불투명도‑인식 컬링’이라는 두 가지 혁신적인 기술로 극복하고, 다양한 하드웨어에서 일관된 성능과 안정성을 제공하는 최초의 엔드‑투‑엔드 3D Gaussian Splatting 프레임워크이다.
댓글 및 학술 토론
Loading comments...
의견 남기기