NVIDIA Aftermath

NVIDIA GeForce 기반 GPU 에서 GPU 크래시 포스트모템 분석을 가능하도록 해주는 NVIDIA Aftermath 기술이 통합되었습니다.

Windows
MacOS
Linux

Aftermath_Banner.png

NVIDIA 드라이버 382.53 이상 버전으로 업그레이드할 것을 추천합니다. 사용 속도가 훨씬 빨라지는 개선사항이 몇 가지 포함되어 있습니다.

언리얼 엔진 4.15.2 버전부터 NVIDIA 의 Aftermath C++ 라이브러리가 Windows 기반 개발자들에게 지원되기 시작하여, 크래시가 난 후 GeForce 기반 GPU 에서 데이터를 추가로 제공받을 수 있습니다. 이 데이터에는 크래시가 발생한 시점에서 GPU 가 어떤 작업을 하고 있었는지에 대한 중요 정보가 들어있어, 프로젝트가 GPU 에서 어떤 작업을 하고 있었는지 추적할 수 있습니다.

Aftermath 는 일부 디버깅 툴처럼 퍼포먼스를 많이 소모하지는 않으면서 요란스럽지 않은 경량 툴입니다. 사실 너무 초경량이라 완성된 게임에 포함시켜 소비자 머신에서 필요한 데이터를 제공하도록 할 수도 있을 정도입니다. Aftermath 를 통해 프로그래머는 크래시 근본 원인 추적에 도움이 되는 마커를 코드에 삽입할 수 있습니다. 언리얼 엔진 에디터에도 보고 또는 캡처된 이슈의 추적 및 해결을 위해 이와 같은 기법을 사용하고 있습니다.

프로젝트에 Aftermath 를 사용하는 데 관련된 부가 정보는 NVIDIA's Aftermath documentation 페이지를 참고해 주시기 바랍니다.

NVIDIA Aftermath 활성화

언리얼 엔진 버전 4.15.2 를 사용중인 경우, NVIDIA Aftermath 는 자동 활성화됩니다. ConsoleVariables.ini 환경설정 파일에 다음 콘솔 명령을 설정해 줘도 됩니다:

r.DX11NVAfterMathEnabled

언리얼 엔진 4.16 이상을 사용중인 경우, NVIDIA Aftermath 는 자동 비활성화됩니다. ConsoleVariables.ini 환경설정 파일에 다음 콘솔 명령을 설정해 주면 됩니다:

r.GPUCrashDebugging=1

명령줄에 다음과 같은 인수를 붙여 활성화시킬 수도 있습니다:

-gpucrashdebugging

로그

NVIDIA Aftermath 활성화 이후, 로그에 다음과 같은 출력이 뜨는 것이 보일 것입니다:

LogD3D11RHI: [Aftermath] Aftermath enabled and primed

언리얼 엔진 4 에서 메뉴 중 파일 > > 개발자 툴 > 출력 로그 를 선택하거나, 프로젝트 폴더에서 로그 텍스트 파일을 여는 것으로 로그를 열 수 있습니다.

크래시가 발생하면, 로그에 다음과 같은 부분이 표시될 것입니다:

LogD3D11RHI: Error: Result failed at X:[Project Folder]\Engine\Source\Runtime\Windows\D3D11RHI\Private\D3D11Viewport.cpp:290 with error DXGI_ERROR_DEVICE_REMOVED DXGI_ERROR_DEVICE_HUNG
LogRHI: Error: [Aftermath] Status: Timeout
LogRHI: Error: [Aftermath] GPU Stack Dump
LogRHI: Error: [Aftermath] 0: Frame2769
LogRHI: Error: [Aftermath] 1: FRAME
LogRHI: Error: [Aftermath] 2: Scene
LogRHI: Error: [Aftermath] 3: ComputeLightGrid
LogRHI: Error: [Aftermath] 4: Compact
LogRHI: Error: [Aftermath] GPU Stack Dump

이 예제에서 보면, GPU 크래시가 난 부분 앞에 [Aftermath] 가 붙어 상태는 어떻고 문제가 생긴 프레임은 어디인지 알 수 있어, 근본 원인을 조사할 수 있습니다.

고려사항

마커가 대략 200 에서 300 정도인 평균 프로젝트의 경우, Aftermath 속도는 충분히 빠르지만, 오브젝트 별 섀도우가 많거나 해서 비용이 늘어나는 경우 느려질 수가 있습니다. 이러한 이유로 인해 이 기능을 기본적으로 활성화시키지 않은 것입니다.

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback