멀티 프로세스 렌더링이란?
멀티 프로세스 렌더링(Multi-Process Rendering) 이란 nDisplay 렌더링을 위해 여러 GPU의 기능을 활용하는 방법입니다. 이 접근 방식을 통해 각 GPU에서 특정 뷰포트를 동시에 렌더링할 수 있습니다. 예를 들면, 프라이머리 GPU에서 외부 프러스텀을 렌더링하면서 세컨더리 GPU에서 내부 프러스텀을 렌더링할 수 있습니다.
대부분의 경우(씬에 따라 다름) 멀티 프로세스 렌더링이 4.27에 도입된 멀티 GPU 렌더링보다 퍼포먼스가 더 뛰어납니다. 멀티 프로세스와 멀티 GPU는 동일한 물리적 하드웨어 환경설정을 공유하므로 멀티 프로세스 워크플로로 전환하는 데 따르는 불이익은 없습니다. 멀티 프로세스는 여러 개의 NVIDIA ADA Lovelace GPU로 렌더링하는 데 권장되는 방법이기도 합니다. 해당 GPU는 멀티 GPU(mGPU) 구성에 권장되는 NVLink를 지원하지 않기 때문입니다.
이름에서 알 수 있듯이 멀티 프로세스 렌더링은 각 렌더 노드에서 언리얼 엔진의 인스턴스 또는 프로세스 두 개를 실행합니다. 첫 번째는 일반 nDisplay 노드입니다. 이 노드는 LED 월에 렌더링되고 렌더링 시 Windows에 표시되기 때문에 온스크린 노드(onscreen node) 라고도 합니다. 별도의 Windows 프로세스로 작동하는 두 번째 노드는 직접 보이지 않는 헤드리스 인스턴스로, 오프스크린 노드(offscreen node) 라고 합니다.
위의 프러스텀 예제에서 오프스크린 노드는 세컨더리 GPU에서 내부 프러스텀을 렌더링하여 텍스처로 온스크린 노드와 다시 공유합니다. 프라이머리 GPU에서 렌더링 중인 온스크린 노드는 내부 프러스텀을 외부 프러스텀 위에 합성하여 LED 월에 표시합니다.
멀티 프로세스는 렌더링된 최종 텍스처만 CPU/마더보드를 통해 GPU 간에 공유합니다. 렌더링된 텍스처만 공유하므로 NVLink와 SLI를 통해 모든 GPU 메모리를 공유하는 데 막대한 대역폭이 필요한 멀티 GPU보다 더 효율적입니다.
다음 표에서 이 두 방법을 비교해 볼 수 있습니다.
기술 전제조건
- 최소 2개의 GPU
- SLI를 비활성화해야 합니다(SLI 환경설정에 대해서는 NVIDIA 문서 참조).
- NVIDIA Mosaic를 사용하는 경우 SLI를 활성화하는 Premium Mosaic로 설정되어 있지 않아야 합니다.
- 인텔 하이퍼 스레딩/AMD 동시 멀티 스레딩 비활성화해야 합니다. 최적의 퍼포먼스를 보장하려면 이렇게 하는 것이 좋습니다. 이러한 기능을 비활성화하면 사용 중인 다른 소프트웨어의 퍼포먼스에 영향을 미칠 수도 있습니다. 셰이더 컴파일 시간이 더 길어질 수도 있습니다.
- 동기화를 포함해 현재 지원되는 NVIDIA 드라이버 및 제어 패널 세팅. 이에 대한 정보는 NVIDIA GPU와 nDisplay 동기화 페이지에서 확인할 수 있습니다.
지식 전제조건
- 새 환경설정을 생성하는 방법을 포함하여 ICVFX 퀵스타트 가이드(ICVFX quickstart guide)의 개념을 숙지하고 있어야 합니다.