--- id: P-REINFORCE-AUTO-B03C61 category: "10_Wiki/๐Ÿ’ก Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - WebGPU Compute Shader" --- # [[WebGPU Compute Shader|WebGPU Compute Shader]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > WebGPU Compute Shader๋Š” ๋ฒ”์šฉ GPU ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ(CPU)์˜ ๊ณผ์ค‘ํ•œ ์ž‘์—…์„ GPU ์ฝ”์–ด๋กœ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ Œ๋”๋ง ๊ธฐ์ˆ ์ด๋‹ค [1, 2]. InstancedMesh๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ€์‹œ์„ฑ ํŒ๋‹จ(์ปฌ๋ง) ๋ฐ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด GPU ์ฃผ๋„ ๋ Œ๋”๋ง(GPU-driven Rendering)์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•œ๋‹ค [2]. ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํŒŒํ‹ฐํด์ด๋‚˜ ๋Œ€๊ทœ๋ชจ ์ธ์Šคํ„ด์Šค์˜ ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ ๋ฐ ์ปฌ๋ง์„ CPU ๊ฐœ์ž… ์—†์ด GPU ๋‚ด๋ถ€์—์„œ ๋ณ‘๋ ฌ๋กœ ์ง์ ‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค [1-3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **GPU ์ฃผ๋„ ์ปฌ๋ง ๋ฐ ๊ฐ„์ ‘ ๊ทธ๋ฆฌ๊ธฐ(Indirect Draw):** InstancedMesh์˜ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ์ธ 'CPU ๊ธฐ๋ฐ˜ ๊ฐ€์‹œ์„ฑ ํŒ๋‹จ ์˜ค๋ฒ„ํ—ค๋“œ'๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋œ๋‹ค [2]. ์ปดํ“จํŠธ ์…ฐ์ด๋”๊ฐ€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์˜ ์‹œ์•ผ ํฌํ•จ ์—ฌ๋ถ€(Frustum Culling)์™€ ๊ฐ€๋ฆผ ํ˜„์ƒ(Occlusion)์„ ์ง์ ‘ ํŒ๋ณ„ํ•˜๊ณ , ์‹œ์•ผ์— ์กด์žฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค ์ •๋ณด๋งŒ GPU ๋‚ด๋ถ€ ๋ฒ„ํผ์— ๋‹ด์•„ ๊ฐ„์ ‘ ๊ทธ๋ฆฌ๊ธฐ(`drawIndirect` ๋˜๋Š” ๊ฐ„์ ‘ ๋ฒ„ํผ) ๋ช…๋ น์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค [2, 4, 5]. ์ด๋กœ ์ธํ•ด CPU์™€ GPU ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์ด ๊ฑฐ์˜ 0์— ์ˆ˜๋ ดํ•˜๊ฒŒ ๋˜๋ฉฐ, ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ๋ Œ๋”๋ง์— ํ•„์ˆ˜์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•œ๋‹ค [2, 6]. * **๋Œ€๊ทœ๋ชจ ์—ฐ์‚ฐ์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ:** ๊ธฐ์กด CPU ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์€ ์•ฝ 50,000๊ฐœ ์ˆ˜์ค€์˜ ํŒŒํ‹ฐํด ์—…๋ฐ์ดํŠธ์—์„œ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ๊ฒช์ง€๋งŒ, WebGPU ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ ๋‹จ์œ„์˜ ์—ฐ์‚ฐ์œผ๋กœ ํ•œ๊ณ„๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค [3]. ํŒŒํ‹ฐํด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด๋‚˜ ๋Œ€๊ทœ๋ชจ ์ง€ํ˜•์˜ ์‹ค์‹œ๊ฐ„ ์ ˆ์ฐจ์  ์ƒ์„ฑ(Procedural generation) ๋“ฑ ์—ฐ์‚ฐ ์ง‘์•ฝ์ ์ธ ์ž‘์—…์„ GPU์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค [1, 7]. * **์ž‘์—… ๊ทธ๋ฃน ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ Œ๋”๋ง ๋™๊ธฐํ™”:** ์ปดํ“จํŠธ ์…ฐ์ด๋” ๋‚ด์—์„œ ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์ „์—ญ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค 10~100๋ฐฐ ๋น ๋ฅธ ์ž‘์—… ๊ทธ๋ฃน ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ(workgroup shared memory)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค [1, 6]. ๋˜ํ•œ, ์”ฌ์— ์ปดํ“จํŠธ ์…ฐ์ด๋” ์ž‘์—…์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ, ์ข…์†๋œ ๋ Œ๋” ํŒจ์Šค๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปดํ“จํŠธ ํŒจ์Šค๊ฐ€ ์™„์ „ํžˆ ๋๋‚˜๋„๋ก ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋™๊ธฐ ๋ Œ๋”๋ง(`renderAsync`)์„ ์‚ฌ์šฉํ•˜์—ฌ GPU ์ž‘์—…์„ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•œ๋‹ค [8]. * **์Šคํ† ๋ฆฌ์ง€ ํ…์Šค์ฒ˜(Storage Textures) ํ™œ์šฉ:** ์ผ๋ฐ˜ ํ…์Šค์ฒ˜์™€ ๋‹ฌ๋ฆฌ ์ปดํ“จํŠธ ์…ฐ์ด๋” ๋‚ด์—์„œ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ์Šคํ† ๋ฆฌ์ง€ ํ…์Šค์ฒ˜๋ฅผ ์ง€์›ํ•œ๋‹ค [9]. ์ด๋Š” ์œ ์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  GPU ์ฃผ๋„ ๋ Œ๋”๋ง ๋“ฑ ๋ณต์žกํ•œ ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋กœ ์ž‘์šฉํ•œ๋‹ค [9]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[GPU-driven Rendering|GPU-driven Rendering]], [[Indirect Draw|Indirect Draw]], [[Frustum Culling|Frustum Culling]], [[Draw Call|Draw Call]] - **Projects/Contexts:** [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„€แ…ฅแ†ซแ„Žแ…ฎแ†จแ„†แ…ฎแ†ฏ แ„†แ…ตแ†พ แ„Œแ…ตแ„’แ…งแ†ผ แ„‡แ…ฒแ„‹แ…ฅ(BIM)|๋Œ€๊ทœ๋ชจ ๊ฑด์ถ•๋ฌผ ๋ฐ ์ง€ํ˜• ๋ทฐ์–ด(BIM)]], [[Three.js WebGPU แ„‘แ…กแ„แ…ตแ„แ…ณแ†ฏ แ„‹แ…จแ„Œแ…ฆ|Three.js WebGPU ํŒŒํ‹ฐํด ์˜ˆ์ œ]], [[แ„‰แ…ตแ†ฏแ„‰แ…ตแ„€แ…กแ†ซ แ„†แ…ฎแ†ฏแ„…แ…ต แ„†แ…ตแ†พ แ„‹แ…ฒแ„Žแ…ฆ แ„‰แ…ตแ„†แ…ฒแ†ฏแ„…แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ|์‹ค์‹œ๊ฐ„ ๋ฌผ๋ฆฌ ๋ฐ ์œ ์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜]] - **Contradictions/Notes:** ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ํ†ตํ•ด GPU ๋‹จ์—์„œ ์ปฌ๋ง ๋ฐ ํ”ผํ‚น ์ฒ˜๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์— ์˜ํ•ด ๊ฐ€๋ ค์ง„ ๊ฐ์ฒด๋“ค์„ ํฌํ•จํ•˜์—ฌ ์˜ฌ๊ฐ€๋ฏธ(Lasso) ๊ทธ๋ฃน ์„ ํƒ์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ƒํ˜ธ์ž‘์šฉ์€ ์ปดํ“จํŠธ ์…ฐ์ด๋”๋งŒ์œผ๋กœ๋Š” ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉฐ, ๊นŠ์ด ๋ฒ—๊ธฐ๊ธฐ(depth-peeling)์™€ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ์…ฐ์ด๋” ์ž‘์—…์ด๋‚˜ ์›น ์›Œ์ปค๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค [10]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/WebGPU Compute Shader.md ---