PART 4 - 강의 4/4

성능 프로파일링

GPU 타이밍과 Ray Tracing 인스턴스 관리

01

GPU 프로파일링

프로파일링 명령 // 기본 타이밍 Stat GPU // 상세 분석 ProfileGPU // Lumen 개별 측정 (Async Compute 비활성화) r.Lumen.AsyncCompute 0
주요 프로파일링 카테고리
  • Lumen Scene Lighting - Surface Cache 조명 평가
  • Lumen Screen Probe Gather - 디퓨즈 GI, 러프 리플렉션
  • Lumen Reflections - 스무스 표면 전용 리플렉션
02

RT 인스턴스 관리

인스턴스 관리 // 목표: 100,000 인스턴스 미만 유지 Stat SceneRendering // "Ray tracing active instances" 확인 // 컬링 설정 r.RayTracing.Culling=3 r.RayTracing.Culling.Radius=15000 // 150m
목표

Ray Tracing active instances를 100,000 미만으로 유지하세요.

03

Lumen 시각화 모드

View Mode를 활용한 문제 진단

Lumen 시각화 명령 // Lumen 시각화 모드들 r.Lumen.Visualize.Mode = 1 // Surface Cache r.Lumen.Visualize.Mode = 2 // Mesh SDFs r.Lumen.Visualize.Mode = 3 // Global SDF r.Lumen.Visualize.Mode = 4 // Radiance Cache // Card 배치 확인 r.Lumen.Visualize.CardPlacement = 1 // 뷰 모드 (에디터) // View Modes > Lumen > Overview // View Modes > Lumen > Surface Cache
디버깅 워크플로우

핑크색 영역 = Surface Cache 커버리지 부족. 메시에 Card를 추가하거나 메시를 분리하세요. 검은색 영역 = Distance Field 누락. Static Mesh에 Distance Field 생성을 확인하세요.

04

Async Compute 최적화

Lumen과 Nanite의 병렬 실행

Async Compute 설정 // Lumen Async Compute (개별 타이밍 측정 시 비활성화) r.Lumen.AsyncCompute = 1 // 프로덕션 r.Lumen.AsyncCompute = 0 // 프로파일링 시 // 주의: Async Compute 활성화 상태에서 // ProfileGPU 타이밍이 겹칠 수 있음 // 정확한 개별 비용 측정 시 비활성화 후 측정
프로파일링 주의

Async Compute가 활성화된 상태에서는 ProfileGPU의 타이밍이 실제 병렬 실행 비용을 정확히 반영하지 못합니다. 개별 시스템 비용을 정확히 측정하려면 일시적으로 r.Lumen.AsyncCompute = 0으로 설정하세요.

SUMMARY

핵심 요약

  • Stat GPU, ProfileGPU로 성능 분석
  • RT 인스턴스 100,000 미만 유지
  • Lumen 시각화 모드로 문제 영역 진단
  • Async Compute 비활성화 후 정확한 개별 비용 측정
PRACTICE

도전 과제

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

실습 1: GPU 프로파일링 실습

ProfileGPU를 실행하여 Lumen Scene Lighting, Screen Probe Gather, Reflections 각 항목의 GPU 비용을 기록하세요. 가장 비용이 높은 항목을 식별하고 관련 설정을 조정하여 개선하세요.

실습 2: RT 인스턴스 최적화

stat SceneRendering에서 "Ray tracing active instances"를 확인하고, r.RayTracing.Cullingr.RayTracing.Culling.Radius 값을 조절하여 100,000 미만으로 유지하면서 시각적 품질 손실을 최소화하세요.

심화 과제

Unreal Insights(-trace=default,gpu)를 사용하여 전체 프레임의 CPU/GPU 타임라인을 캡처하고, Lumen의 Async Compute 작업이 그래픽스 큐와 어떻게 병렬 실행되는지 분석하세요. 병렬화 효율을 수치로 계산하세요.