--- id: P-REINFORCE-AUTO-166181 category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - WebSplatter (3D Gaussian Splatting)" --- # [[WebSplatter (3D Gaussian Splatting)|WebSplatter (3D Gaussian Splatting)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > WebSplatter๋Š” ์ด๊ธฐ์ข… ์›น ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•ด WebGPU๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋œ ์—”๋“œํˆฌ์—”๋“œ(end-to-end) 3D ๊ฐ€์šฐ์‹œ์•ˆ ์Šคํ”Œ๋ž˜ํŒ…(3D Gaussian Splatting, 3DGS) ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด WebGL ๊ธฐ๋ฐ˜ ๋ฐฉ์‹์ด ๊ฒช๋Š” CPU ์ •๋ ฌ์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊นŠ์ด ์ •๋ ฌ๊ณผ ๋ทฐ ์ ์‘ํ˜• ํ‰๊ฐ€๋ฅผ ๋ชจ๋‘ GPU ์ปดํ“จํŠธ ์…ฐ์ด๋”๋กœ ์ด๋™์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ์›์ž์„ฑ(global atomics)์ด ๋ถ€์กฑํ•œ WebGPU์˜ ํ•œ๊ณ„๋ฅผ ์šฐํšŒํ•˜๋Š” '๋Œ€๊ธฐ ์—†๋Š” ๊ณ„์ธต์  ๊ธฐ์ˆ˜ ์ •๋ ฌ(wait-free hierarchical radix sort)'๊ณผ ๋ถˆํˆฌ๋ช…๋„ ์ธ์‹ ๊ธฐํ•˜ํ•™ ์ปฌ๋ง์„ ๋„์ž…ํ•˜์—ฌ ๊ธฐ์กด ์›น ๋ทฐ์–ด ๋Œ€๋น„ 1.18๋ฐฐ์—์„œ 4.5๋ฐฐ์˜ ๋ Œ๋”๋ง ์†๋„ ํ–ฅ์ƒ๊ณผ ๋›ฐ์–ด๋‚œ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์„ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค [1-3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **3D ๊ฐ€์šฐ์‹œ์•ˆ ์Šคํ”Œ๋ž˜ํŒ…๊ณผ ๊ธฐ์กด ์›น ๋ Œ๋”๋ง์˜ ํ•œ๊ณ„** 3DGS ๊ธฐ๋ฒ•์€ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํƒ€์›์ฒด๋ฅผ ์นด๋ฉ”๋ผ์™€์˜ ๊นŠ์ด์— ๋”ฐ๋ผ ๋งค ํ”„๋ ˆ์ž„ ๋’ค์—์„œ ์•ž์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [4, 5]. ๊ธฐ์กด WebGL ๊ธฐ๋ฐ˜ ๊ตฌํ˜„์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ •๋ ฌ์„ CPU(JavaScript ๋˜๋Š” WebAssembly)๋กœ ์˜คํ”„๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์‹œ ๋Œ€๊ทœ๋ชจ ๋ฒ„ํผ ์ „์†ก์„ ํ†ตํ•ด GPU๋กœ ์—…๋กœ๋“œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ฌ๊ฐํ•œ ๋™๊ธฐํ™” ๋ณ‘๋ชฉ ํ˜„์ƒ๊ณผ ํ™•์žฅ์„ฑ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค [1, 6, 7]. - **ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ปดํ“จํŠธ-๋ Œ๋” ํŒŒ์ดํ”„๋ผ์ธ (Hybrid Compute-Render Pipeline)** WebSplatter๋Š” ์ด๊ธฐ์ข… ๋””๋ฐ”์ด์Šค์—์„œ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋Œ์–ด๋‚ด๊ธฐ ์œ„ํ•ด ์„ธ ๋‹จ๊ณ„์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [8]. - **์‚ฌ์ „ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„ (Pre-processing Stage):** ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ทฐํฌํŠธ๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฐ€์šฐ์‹œ์•ˆ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ์ปฌ๋ง(Bounding Box Culling)๊ณผ ์‹œ์  ์ข…์†์  ์ƒ‰์ƒ ๊ณ„์‚ฐ(View-Dependent Color Calculation)์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [9, 10]. ์ด๋•Œ ๊ณ„์‚ฐ๋œ ์ƒ‰์ƒ ๋ฐ ๋ถˆํˆฌ๋ช…๋„ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ 32๋น„ํŠธ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜๋กœ ์••์ถ•ํ•˜์—ฌ ์ดํ›„ ๋ž˜์Šคํ„ฐํ™” ๋‹จ๊ณ„์—์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ์š”๊ตฌ๋Ÿ‰์„ ๋Œ€ํญ ์ค„์ž…๋‹ˆ๋‹ค [10, 11]. - **์ •๋ ฌ ๋‹จ๊ณ„ (Sort Stage):** WebGPU ํ™˜๊ฒฝ์€ ํ•˜๋“œ์›จ์–ด๋ณ„ ์ž‘์—… ๊ทธ๋ฃน ์Šค์ผ€์ค„๋ง ์ˆœ์„œ๋‚˜ ์„ธ๋ฐ€ํ•œ ๊ธ€๋กœ๋ฒŒ ์›์ž์  ์—ฐ์‚ฐ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์•„, ๊ธฐ์กด์— ๋งŽ์ด ์“ฐ์ด๋Š” ์Šคํ•€ ๋Œ€๊ธฐ(spin-wait) ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์„ ๋‚ญ๋น„ํ•˜๋Š” ๋ฐ”์œ ๋Œ€๊ธฐ(busy-wait) ์ƒํƒœ์— ๋น ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [12, 13]. WebSplatter๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด '๋Œ€๊ธฐ ์—†๋Š” ๊ณ„์ธต์  Blelloch ์Šค์บ”(wait-free hierarchical Blelloch scan)' ๋ฐฉ์‹์— ๊ธฐ๋ฐ˜ํ•œ GPU ๊ธฐ์ˆ˜ ์ •๋ ฌ(Radix Sort) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [14, 15]. - **๋ž˜์Šคํ„ฐํ™” ๋‹จ๊ณ„ (Rasterization Stage):** ๋ชจ๋ฐ”์ผ ๋“ฑ ๋Œ€์—ญํญ์ด ์ œํ•œ๋œ ๊ธฐ๊ธฐ์—์„œ ๋ณ‘๋ชฉ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํƒ€์ผ ๊ธฐ๋ฐ˜ ๋ž˜์Šคํ„ฐ๋ผ์ด์ € ๋Œ€์‹ , ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๋ฒ„ํ…์Šค ๋ฐ ํ”„๋ž˜๊ทธ๋จผํŠธ ์…ฐ์ด๋” ํŒŒ์ดํ”„๋ผ์ธ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค [16]. ๊ฐ€์šฐ์‹œ์•ˆ์˜ ํ”ผํฌ ๋ถˆํˆฌ๋ช…๋„(peak opacity)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ์ฟผ๋“œ(quad)์˜ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ํ”„๋ž˜๊ทธ๋จผํŠธ ์ฒ˜๋ฆฌ(์˜ค๋ฒ„๋“œ๋กœ์šฐ)๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค [17-19]. - **์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ (๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ)** WebSplatter๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฐ์Šคํฌํ†ฑ(RTX 3070)๋ถ€ํ„ฐ Apple M์‹œ๋ฆฌ์ฆˆ ์นฉ, ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ด๊ธฐ์ข… ์žฅ์น˜์—์„œ ์ผ๊ด€๋œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค [20-22]. ๊ธฐ์กด์˜ ๊ฐ€์žฅ ์šฐ์ˆ˜ํ•œ WebGPU ๋ทฐ์–ด ๋Œ€๋น„ ์ตœ๋Œ€ 57%๊นŒ์ง€ ํ”ผํฌ GPU ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์—ฌ, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ทน๋„๋กœ ์ œํ•œ๋œ ๋ชจ๋ฐ”์ผ ์Šค๋งˆํŠธํฐ ํ™˜๊ฒฝ์—์„œ๋„ ๋ธŒ๋ผ์šฐ์ € ์ถฉ๋Œ(out-of-memory crash) ์—†์ด ์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋ง์„ ์•ˆ์ •์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [23, 24]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[WebGPU|WebGPU]], [[3D_Gaussian_Splatting|3D Gaussian Splatting]], [[Compute Shaders|Compute Shaders]], [[Radix Sort|Radix Sort]] - **Projects/Contexts:** Web-Based 3D Rendering, Generative 3D Modeling - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด ๊ธฐ์กด WebGL ๋ทฐ์–ด๋Š” CPU ์ •๋ ฌ๋กœ ์ธํ•ด ๋Œ€๊ทœ๋ชจ ์žฅ๋ฉด์—์„œ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•˜๊ณ , ๋‹จ์ˆœ ๋„ค์ดํ‹ฐ๋ธŒ GPU ํฌํŒ… ๋ฐฉ์‹์˜ WebGPU ๋ทฐ์–ด๋“ค์€ '์Šคํ•€ ๋Œ€๊ธฐ(spin-wait)' ๊ตฌํ˜„์œผ๋กœ ์ธํ•ด ์Šค์ผ€์ค„๋ง ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š” ํ•˜๋“œ์›จ์–ด(์˜ˆ: Apple M1)์—์„œ ๋งค์šฐ ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜(busy-wait)๋ฅผ ๊ฒช์Šต๋‹ˆ๋‹ค. WebSplatter๋Š” ์ž์ฒด์ ์ธ '๋Œ€๊ธฐ ์—†๋Š” ๊ธฐ์ˆ˜ ์ •๋ ฌ(wait-free radix sort)' ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์™„๋ฒฝํžˆ ํšŒํ”ผํ•˜์˜€์œผ๋ฉฐ, ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ๊ธฐ์กด WebGPU ๋Œ€๋น„ 4.5๋ฐฐ ์ด์ƒ์˜ ์†๋„ ํ–ฅ์ƒ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค [22, 25]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/WebSplatter (3D Gaussian Splatting).md ---