--- id: wiki-2026-0508-gpu-driven-rendering title: GPU driven Rendering category: 10_Wiki/Topics_Art status: needs_review canonical_id: self aliases: [P-REINFORCE-AUTO-C35A51] duplicate_of: none source_trust_level: A confidence_score: 0.9 tags: [auto-reinforced] raw_sources: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - GPU-driven Rendering" inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[GPU-driven Rendering]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > GPU-driven Rendering(GPU ์ฃผ๋„ ๋ Œ๋”๋ง)์€ CPU๊ฐ€ ๋ Œ๋”๋งํ•  ๊ฐ์ฒด๋ฅผ ํŒ๋ณ„ํ•˜๊ณ  ๋ช…๋ นํ•˜๋Š” ๋Œ€์‹ , GPU๊ฐ€ ๋ฌด์—‡์„ ๋ Œ๋”๋งํ• ์ง€ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜๋Š” ํ˜„๋Œ€์ ์ธ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค [1, 2]. ์ฃผ๋กœ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shader)๋ฅผ ํ™œ์šฉํ•ด ๊ฐ์ฒด์˜ ๊ฐ€์‹œ์„ฑ์„ GPU ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ํ‰๊ฐ€ํ•œ ํ›„, ๊ฐ„์ ‘ ๊ทธ๋ฆฌ๊ธฐ(Indirect Draw) ๋ช…๋ น์„ ํ†ตํ•ด ํ™”๋ฉด์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค [1, 3]. ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด CPU์™€ GPU ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ํ†ต์‹  ๋ณ‘๋ชฉ์ด ์ œ๊ฑฐ๋˜์–ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ทน๋„๋กœ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๊ฐ€์‹œ์„ฑ ํŒ๋‹จ์˜ GPU ์ด๊ด€ (Culling in Compute Shaders):** ๊ธฐ์กด์˜ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์—์„œ๋Š” CPU๊ฐ€ ์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง(Frustum Culling)์ด๋‚˜ ๊ฐ€๋ฆผ ํ˜„์ƒ(Occlusion)์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค [2, 3]. GPU-driven Rendering์—์„œ๋Š” ์ด ์—ญํ• ์„ GPU์˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”๋กœ ๋„˜๊ฒจ, GPU๊ฐ€ ์ง์ ‘ ๋ชจ๋“  ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค์˜ ๊ฐ€์‹œ์„ฑ์„ ํŒ๋ณ„ํ•˜๊ณ  ํ™”๋ฉด์— ๋ณด์ผ ๊ฐ์ฒด์˜ ๋ Œ๋”๋ง ๋ช…๋ น๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค [2, 3]. - **๊ฐ„์ ‘ ๊ทธ๋ฆฌ๊ธฐ (Indirect Draws) ํ™œ์šฉ:** ์ปดํ“จํŠธ ์…ฐ์ด๋”๊ฐ€ ๊ฐ€์‹œ์„ฑ ํ‰๊ฐ€๋ฅผ ๋งˆ์น˜๋ฉด, ๊ทธ ๊ฒฐ๊ณผ์™€ ๋ Œ๋”๋ง ๋ช…๋ น์„ GPU ๋‚ด๋ถ€ ๋ฒ„ํผ์— ์ง์ ‘ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค [2, 3]. ์ดํ›„ CPU์˜ ๊ฐœ์ž… ์—†์ด `drawIndirect` ๋ช…๋ น์„ ํ†ตํ•ด GPU ๋‚ด๋ถ€ ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, CPU์™€ GPU ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์ด ๊ฑฐ์˜ '0'์— ์ˆ˜๋ ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [1, 3]. - **๋Œ€๊ทœ๋ชจ ์ธ์Šคํ„ด์Šค ๋ฐ ๋ณต์žกํ•œ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ:** ์ด ๊ธฐ๋ฒ•์€ ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค GPU ์ˆ˜์ค€์˜ ์ปฌ๋ง์ด ํ•„์š”ํ•œ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ๋ Œ๋”๋ง์— ํ•„์ˆ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค [1]. ๋˜ํ•œ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ํ—ˆ์šฉ๋˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ํ…์Šค์ฒ˜(Storage Textures) ๊ธฐ์ˆ ๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ์œ ์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๋“ฑ ๋ณต์žกํ•œ ํ™˜๊ฒฝ์—์„œ๋„ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [4]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & Updates) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Compute Shader]], [[Indirect Draw]], [[Frustum Culling]], [[WebGPU]] - **Projects/Contexts:** [[Three.js]], [[InstancedMesh]] - **Contradictions/Notes:** ๋Œ€๊ทœ๋ชจ ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ 'CPU ๊ฐœ๋ณ„ ์ปฌ๋ง' ๋ฐฉ์‹์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—ฐ์‚ฐ ๋ฐ ์‹œ์Šคํ…œ ๋ฒ„์Šค ์ „์†ก์— ๋ง‰๋Œ€ํ•œ ๋ณ‘๋ชฉ์„ ์œ ๋ฐœํ•˜์ง€๋งŒ, 'GPU ์ฃผ๋„ ๋ Œ๋”๋ง(GPU ์ปดํ“จํŠธ ์ปฌ๋ง)'์€ ๊ตฌํ˜„ ๋‚œ์ด๋„๊ฐ€ ๋งค์šฐ ๋†’์€ ๋Œ€์‹  CPU ๋ถ€ํ•˜๋ฅผ ๊ทน๋„๋กœ ๋‚ฎ์ถ”๊ณ  ์ „์ฒด์ ์ธ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค๋Š” ๋šœ๋ ทํ•œ ๋Œ€๋น„๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค [3, 5]. --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/GPU-driven Rendering.md]] --- ## ๐Ÿค– LLM ํ™œ์šฉ ํžŒํŠธ (How to Use This Knowledge) **์–ธ์ œ ์ด ์ง€์‹์„ ์“ฐ๋Š”๊ฐ€:** - *(TODO)* **์–ธ์ œ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€:** - *(TODO)* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** needs_review - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** *(P-Reinforce Phase 1 ์ž๋™ ์ •๊ทœํ™”. ๋ณธ๋ฌธ ๊ฒ€์ฆ ํ•„์š”.)* ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** *(TODO: ์ธ๋ฑ์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌํฌํŠธ ์ฐธ์กฐ)* - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** UPDATE (์ž๋™ ์ •๊ทœํ™”) - **์ฒ˜๋ฆฌ ์ด์œ :** Phase 1 ์ •๊ทœํ™” โ€” ์˜› ํ…œํ”Œ๋ฆฟ/๋ˆ„๋ฝ ํ•„๋“œ ๋ณด๊ฐ•. ## ๐Ÿ•“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Changelog) | ๋‚ ์งœ | ๋ณ€๊ฒฝ ๋‚ด์šฉ | ์ฒ˜๋ฆฌ ๋ฐฉ์‹ | ์‹ ๋ขฐ๋„ | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 ์ •๊ทœํ™” (frontmatter + ํ—ค๋” ํ‘œ์ค€ํ™”) | UPDATE | A | ## ๐Ÿ’ป ์ฝ”๋“œ ํŒจํ„ด (Code Patterns) **ํŒจํ„ด 1:** *(TODO: ์ด ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜ ๋ฐ˜์˜ํ•œ ๊ตฌ์กฐ ์Šค์ผˆ๋ ˆํ†ค)* ```text # TODO ``` ## ๐Ÿค” ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ์ค€ (Decision Criteria) **์„ ํƒ A๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **์„ ํƒ B๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **๊ธฐ๋ณธ๊ฐ’:** > *(TODO)* ## โŒ ์•ˆํ‹ฐํŒจํ„ด (Anti-Patterns) - **[์•ˆํ‹ฐํŒจํ„ด]:** *(TODO: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*