PART 1 · 강의 3/4

GPU Profiler 활용

RenderDoc, PIX, NSight를 활용한 GPU 병목 분석

01

내장 GPU 프로파일러

UE5의 기본 GPU 분석 도구

UE5는 내장 GPU 프로파일러를 제공하여 빠르게 렌더링 병목을 확인할 수 있습니다.

📊 stat gpu 렌더 패스 분석
PrePass:
1.20 ms
BasePass:
3.50 ms
Shadows:
4.20 ms ← 주목!
Lights:
2.10 ms
Translucency:
1.80 ms
PostProcess:
1.50 ms
⭐ GPU 프로파일링 필수 명령어
코드 숨기기
# GPU 패스별 시간 분석 stat gpu # GPU 비주얼라이저 (그래픽 도구) Ctrl + Shift + , # 조명/그림자/씬 렌더링 시간 stat lightrendering stat shadowrendering stat scenerendering
ProfileGPU 명령

콘솔에서 ProfileGPU를 입력하면 단일 프레임의 상세한 GPU 타이밍을 출력 로그에서 확인할 수 있습니다.

02

RenderDoc 설정

프레임 캡처 및 분석

RenderDoc은 단일 프레임을 캡처하여 모든 드로우 콜과 GPU 상태를 상세히 분석할 수 있는 무료 도구입니다.

🔧 RenderDoc 분석 워크플로우
1
연결
에디터에 RenderDoc 연결
2
캡처
F12 / Print Screen
3
분석
Event Browser 탐색
4
최적화
병목 원인 식별
🔍 RenderDoc 핵심 분석 기능

📋 Event Browser

모든 드로우 콜과 GPU 이벤트를 트리 구조로 표시

🖼️ Texture Viewer

렌더 타겟, 텍스처 상태 확인

⚙️ Pipeline State

셰이더, 버텍스 레이아웃, 블렌드 상태

📊 Statistics

Dispatch calls, 렌더 통계 확인

RenderDoc 연결 방법
코드 보기
# Project Settings > Plugins > RenderDoc # "Auto attach on startup" 체크 # 또는 명령줄 연결 UnrealEditor.exe MyProject.uproject -AttachRenderDoc
03

PIX (DirectX 12)

Microsoft의 고급 GPU 분석 도구

PIX는 Microsoft의 DirectX 12 전용 프로파일러로, 저수준 GPU 메트릭과 셰이더 디버깅을 지원합니다.

🎯 PIX 핵심 기능
GPU Capture
📸

단일/다중 프레임 분석
(최대 10프레임)

Timing Capture
⏱️

GPU 타이밍 데이터
수집 및 분석

Shader Debug
🔧

런타임 셰이더
소스 확인 및 수정

Low-Level Metrics
📊

GPU 점유율
캐시 히트율 분석

PIX 연결 명령
코드 보기
# 명령줄로 연결 UnrealEditor.exe MyProject.uproject -AttachPIX # 또는 PIX 앱에서 직접 게임 바이너리 경로 지정하여 실행
Windows 전용

PIX는 Windows와 Xbox 전용입니다. DirectX 12 렌더러를 사용하는 경우에만 유효합니다.

04

NVIDIA NSight Graphics

NVIDIA GPU 최적화 도구

NSight Graphics는 NVIDIA GPU에 최적화된 프로파일링 도구로, GPU 처리량 및 활용도를 상세히 분석합니다.

🔧 NSight Graphics 구성 요소
GPU Trace
처리량 프로파일링
Frame Debug
드로우콜 디버깅
Aftermath
GPU 크래시 분석
🎯 상황별 도구 선택 가이드
RenderDoc
🔍

✅ 무료
✅ 플랫폼 독립적
✅ 일반 프레임 분석
❌ 저수준 메트릭 제한

PIX
📊

✅ DX12 전문
✅ 저수준 분석
✅ Xbox 개발
❌ Windows 전용

NSight
🎮

✅ NVIDIA 특화
✅ 크래시 디버깅
✅ GPU 활용도 분석
❌ NVIDIA GPU 전용

NSight Aftermath 활성화
코드 보기
DefaultEngine.ini [/Script/Engine.RendererSettings] # NVIDIA Aftermath GPU 크래시 디버깅 r.GPUCrashDebugging=1
SUMMARY

핵심 요약

  • stat gpu로 빠르게 렌더 패스별 GPU 시간 확인
  • RenderDoc: 무료, 범용적, F12로 프레임 캡처 후 상세 분석
  • PIX: DirectX 12 전용, 저수준 메트릭, 셰이더 런타임 디버깅
  • NSight Graphics: NVIDIA GPU 특화, GPU 크래시 디버깅 (Aftermath)
  • Ctrl + Shift + ,로 내장 GPU 비주얼라이저 빠르게 접근
다음 단계

다음 강의에서는 메모리 프로파일러LLM(Low-Level Memory Tracker)memreport를 활용한 메모리 분석을 다룹니다.

PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: GPU Profiler 캡처

ProfileGPU 콘솔 명령(Ctrl+Shift+,)으로 GPU 프로파일을 캡처하세요. Base Pass, Lighting, Post Process 각 단계의 GPU 시간을 기록하고 가장 비용이 큰 패스를 식별합니다.

실습 2: 셰이더 복잡도 시각화

뷰포트의 Optimization Viewmodes에서 Shader Complexity를 활성화하세요. 빨간색으로 표시되는 영역을 찾고, 해당 머티리얼의 인스트럭션 수를 Material Stats에서 확인합니다.

심화 과제

RenderDoc을 UE5에 연동하여 단일 프레임의 전체 Draw Call 시퀀스를 캡처하세요. 가장 비용이 높은 Draw Call 10개를 식별하고, 오버드로우 및 셰이더 비용 관점에서 최적화 방안을 도출합니다.