--- id: P-REINFORCE-AUTO-4AA291 category: "10_Wiki/πŸ’‘ Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - GPU Resources" --- # [[GPU Resources|GPU Resources]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > GPU λ¦¬μ†ŒμŠ€λŠ” Three.js 및 WebGL ν™˜κ²½μ—μ„œ λ Œλ”λ§μ„ μœ„ν•΄ ν• λ‹Ήλ˜λŠ” VRAM μžμ›μœΌλ‘œ, κΈ°ν•˜ν•™μ  ꡬ쑰(Geometries), 재질(Materials), ν…μŠ€μ²˜(Textures), λ Œλ” νƒ€κ²Ÿ(Render targets) 등을 ν¬ν•¨ν•©λ‹ˆλ‹€ [1-3]. λΈŒλΌμš°μ € λ Œλ”λ§ 엔진은 μ΄λŸ¬ν•œ λ¦¬μ†ŒμŠ€λ“€μ„ μžλ™μœΌλ‘œ κ°€λΉ„μ§€ μ»¬λ ‰νŠΈ(Garbage Collect)ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ‚¬μš©μ΄ λλ‚˜λ©΄ κ°œλ°œμžκ°€ 직접 λͺ…μ‹œμ μœΌλ‘œ λ©”λͺ¨λ¦¬μ—μ„œ ν•΄μ œν•΄μ•Ό ν•©λ‹ˆλ‹€ [1]. 효율적인 GPU λ¦¬μ†ŒμŠ€ 관리가 이루어지지 μ•ŠμœΌλ©΄ μ‹¬κ°ν•œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leaks)κ°€ λ°œμƒν•˜λ©°, ꢁ극적으둜 λΈŒλΌμš°μ €μ˜ μ œν•œλœ GPU λ©”λͺ¨λ¦¬λ₯Ό μ΄ˆκ³Όν•˜μ—¬ μ»¨ν…μŠ€νŠΈ 손싀(Context Lost)κ³Ό ν™”λ©΄ 멈좀 ν˜„μƒμ„ μœ λ°œν•©λ‹ˆλ‹€ [3, 4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **GPU λ¦¬μ†ŒμŠ€μ˜ ꡬ성 및 λ©”λͺ¨λ¦¬ μ†ŒλΉ„λŸ‰:** 3D λͺ¨λΈμ„ λ Œλ”λ§ν•  λ•Œ GPU λ©”λͺ¨λ¦¬μ—λŠ” 정점 버퍼(Vertex buffers), 인덱슀 버퍼(Index buffers), ν…μŠ€μ²˜ λ§΅, 그리고 셰이더 ν”„λ‘œκ·Έλž¨ 등이 ν• λ‹Ήλ©λ‹ˆλ‹€ [3]. 고해상도 ν…μŠ€μ²˜λŠ” λ§‰λŒ€ν•œ λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•˜μ—¬, 단일 4K(4096x4096) μ••μΆ• ν•΄μ œ ν…μŠ€μ²˜μ˜ 경우 VRAM의 64MB 이상을 λ‹¨λ…μœΌλ‘œ μ†ŒλΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 5]. μΆ”κ°€μ μœΌλ‘œ ν›„μ²˜λ¦¬(Post-processing) λ‹¨κ³„μ—μ„œ μ‚¬μš©λ˜λŠ” κ°œλ³„ λ Œλ” νƒ€κ²Ÿλ“€ λ˜ν•œ ν”„λ ˆμž„ 버퍼 λ©”λͺ¨λ¦¬λ₯Ό μΆ”κ°€ ν• λ‹Ήν•©λ‹ˆλ‹€ [2]. - **λͺ…μ‹œμ μΈ μžμ› ν•΄μ œ(Disposal) ν•„μˆ˜μ„±:** Three.js ν”„λ ˆμž„μ›Œν¬λŠ” GPU λ¦¬μ†ŒμŠ€λ₯Ό μΆ”μ ν•˜μ—¬ μžλ™μœΌλ‘œ λ©”λͺ¨λ¦¬μ—μ„œ μ§€μ›Œμ£Όμ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [1]. λ”°λΌμ„œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” 에셋이 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ„ λ•Œ λ°˜λ“œμ‹œ `geometry.dispose()`, `material.dispose()`, `texture.dispose()` ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄ GPU μžμ›μ„ λͺ…μ‹œμ μœΌλ‘œ ν•΄μ œν•΄μ•Ό ν•©λ‹ˆλ‹€ [1, 4, 6]. - **특수 ν…μŠ€μ²˜ 및 λΉˆλ²ˆν•œ 생성 객체 관리:** GLTF λͺ¨λΈ νŒŒμΌμ—μ„œ `ImageBitmap` ν˜•νƒœλ‘œ λ‘œλ“œλœ ν…μŠ€μ²˜ λ¦¬μ†ŒμŠ€μ˜ 경우, κΈ°λ³Έ 폐기 λ©”μ„œλ“œ 외에도 λͺ…μ‹œμ μœΌλ‘œ `texture.source.data.close?()`λ₯Ό ν˜ΈμΆœν•΄ λ‹«μ•„μ£Όμ–΄μ•Όλ§Œ λ©”λͺ¨λ¦¬κ°€ μƒˆλŠ” 것을 막을 수 μžˆμŠ΅λ‹ˆλ‹€ [4, 7]. λ˜ν•œ κ²Œμž„ λ‚΄ νƒ„ν™˜μ΄λ‚˜ νŒŒν‹°ν΄μ²˜λŸΌ 자주 μƒμ„±λ˜κ³  νŒŒκ΄΄λ˜λŠ” λ¦¬μ†ŒμŠ€μ˜ 경우 맀번 μƒˆλ‘œ ν• λ‹Ήν•˜μ§€ μ•Šκ³  였브젝트 풀링(Object Pooling) 방식을 μ‚¬μš©ν•˜μ—¬ λ©”λͺ¨λ¦¬ ν• λ‹Ή μ˜€λ²„ν—€λ“œλ₯Ό λ§‰λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€ [4, 7]. - **λ¦¬μ†ŒμŠ€ ν•œκ³„ λͺ¨λ‹ˆν„°λ§:** WebGL μ»¨ν…μŠ€νŠΈμ˜ κ°€μš© λ©”λͺ¨λ¦¬ ν•œλ„λŠ” λ””λ°”μ΄μŠ€ ν™˜κ²½μ— 따라 μ•½ 256MBμ—μ„œ 1GB μˆ˜μ€€μœΌλ‘œ μ œν•œμ μž…λ‹ˆλ‹€ [3]. 이 μš©λŸ‰μ„ μ΄ˆκ³Όν•΄ GPU λ¦¬μ†ŒμŠ€κ°€ ν• λ‹Ήλ˜λ©΄ μ»¨ν…μŠ€νŠΈ 손싀이 λ°œμƒν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μΆ©λŒν•˜κ²Œ λ©λ‹ˆλ‹€ [3]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” λŸ°νƒ€μž„ 쀑에 `renderer.info.memory` μƒνƒœλ₯Ό κΎΈμ€€νžˆ λͺ¨λ‹ˆν„°λ§ν•˜μ—¬ ν…μŠ€μ²˜λ‚˜ μ§€μ˜€λ©”νŠΈλ¦¬ μˆ˜κ°€ μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•˜λŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜ ν˜„μƒμ΄ μ—†λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€ [1, 4]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Memory Management|Memory Management]], [[Memory Leaks|Memory Leaks]], Textures, VRAM, [[Garbage Collection|Garbage Collection]] - **Projects/Contexts:** [[Three.js|Three.js]], [[WebGL|WebGL]], [[WebGPU|WebGPU]] - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ λͺ¨μˆœμ΄λ‚˜ 좩돌 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/GPU Resources.md ---