소니 인터랙티브 엔터테인먼트의 부사장이자 하드웨어 엔지니어링 운영 본부장인 이토 마사야스와, 리드 시스템 아키텍트인 Mark Cerny가 PS4 프로의 하드웨어에 대한 정보를 공개했습니다.
우선 PS4 프로는 7백개의 PS4 게임을 그대로 구동할 수 있어야 하며, PS4 프로에 맞춘 개발 비용이 전체 대비 1% 미만이어야 하고, PS4 프로의 성능을 이용해 더 높은 그래픽을 제공해야 한다는 기본 전제를 깔고 시작했습니다.
그러다보니 CPU는 PS4와 같은 아키텍처를 유지하고 있습니다. 신형 아키텍처인 타이거를 쓴다는 설도 있었으나 기존의 재규어가 맞다네요. 그래픽은 CU가 2배로 늘어 18개에서 36개가 됐습니다. 기존 PS4 게임을 PS4 프로에서 동작하면 원래대로의 18개 CU만 실행하며, 클럭 역시 PS4와 똑같은 수준으로 다운클럭됩니다.
게임 비주얼의 향상의 경우, 등장하는 캐릭터를 더 늘리는 건 아닙니다. 그건 게임 플레이에 영향을 주는 거니까요. 해상도를 높이거나 쉐이더 표현 향상, 더 안정적인 프레임 같은 식으로 구현한다네요.
PS4 프로의 경우 CPU/GPU가 공유하는 메인 메모리는 8GB 그대로입니다. 이걸 늘리면 고해상도 텍스처와 많은 수의 폴리곤을 쓸 수 있으나, 이 경우 게임 호환성과 개발 비용에 문제가 되지요.
다만 GPU 스펙이 늘었으니 렌더 타겟 버퍼, Z 버퍼, 스텐실 버퍼, 디퍼드 렌더링의 경우 G 버퍼까지 필요한 메모리 용량은 늘어나게 됩니다. 실제로 PS4 프로의 4K 출력은 300~400MB의 추가 메모리가 필요하다네요.
그래서 PS4 프로의 사우스브릿지에 1GB DDR3 메모리를 넣었습니다. 원래 PS4는 256MB DDR3 메모리를 백그라운드 프로세스 제어용으로 사용했는데, 그 용량이 1GB가 되면서 게임 외에 다른 애플리케이션을 이쪽으로 보내기가 수월해졌지요.
PS4는 8GB 메모리 중 게임에 쓸 수 있는 용량이 5GB며, 나머지 3GB 중 2GB OS, 1GB는 게임 외의 애플리케이션을 위한 것입니다. 새로 추가된 1GB 메모리는 전부 게임에 할당하는 게 아니라 512MB만 사용, 그래서 게임에 사용하는 메모리는 512MB가 늘었습니다.
또 GPU 성능 향상 외에도 폴라리스의 일부 기능을 도입했습니다. 절전 기능, Lossless Delta Color Compression, Primitive Discard Accelerator, 16비트 데이터 처리의 개선 등이 특징입니다.
절전 기능의 경우 구체적인 설명은 없으나, GPU 곳곳에 넣은 전력/온도/클럭 센서에서 나온 정보를 바탕으로 전압과 클럭을 컨트롤하는 Adaptive Voltage & Frequency Scaling나.
클럽 공급을 공유하는 구조의 플립 플롭인 Multi-Bit Flip- Flop을 통해 물리적인 공간을 줄이고 절전 효과를 냈을 것으로 보입니다.
Lossless Delta Color Compression는 픽셀 데이터를 지연 없이 실시간으로 무손실 압축해 메모리 버스 대역을 늘리는 기능입니다. 통가 코어의 라데온 R9 285에서 가장 먼저 쓰였지요. PS4는 들어가지 않았고 PS4 프로에 처음으로 쓰입니다.
여기서 중요한 건 자동 양자화 압축 기술로, 데이터의 평균치와 기준별 차이 값을 최소 비트 수로 표현하는 압축법입니다. 1/2, 1/4, 1/8 등의 압축 속도를 지원하며 데이터의 분산 값에 따라 사용하는 비율을 정합니다.
Primitive Discard Accelerator는 렌더링 파이프라인 위쪽에서, 사용하지 않는 데이터를 배제시키는 일종의 Early Culling 기능입니다. 사용하지 않는 데이터를 조기에 배제하면 불필요한 버퍼 출력을 줄여 보다 효율적인 처리가 가능하지요.
그리고 이 부분이 더 중요한데. '앞으로 나올 GPU가 갖춘 기능'도 먼저 도입했다고 합니다. AMD라면 베가가 되겠지요. 베가 GPU의 기능 중 PS4 프로에서 먼저 구현한 건 16비트 연산 증대, 워크 디스트리뷰터 탑재가 있습니다.
32비트 연산기가 16비트 데이터를 2개 동시에 처리해 처리량을 늘리는 기능은 테슬라 P100에 탑재된 바 있습니다. PS4 프로는 FP32가 4.2TFLOPS의 성능을 내는데, FP16에선 8.4TFLOPS로 끌어올릴 수 있었습니다. 픽셀의 색상 값과 법선 벡터 값, 벡터 값 등은 16비트 데이터로도 충분한 경우가 많아, 이 기능을 잘 쓰면 충분한 성능 향상이 가능하다네요.
워크 디스트리뷰터는 지오메트리 엔진의 기능 강화에 해당되는 것으로, 대량의 폴리곤 데이터를 GPU에 넣었을 때 가장 높은 효율을 내도록 작업 순서를 정렬하는 것입니다. 폴라리스에서 진화한 하드웨어 스케줄러라 보면 됩니다.
설명을 보면 원래 GCN에 있던 쉐이더 엔진의 로드 밸런싱 구조를 개량한 것으로, 자원 소비가 심한 쉐이더 엔진을 피해서 스레드를 열거나, 회전율이 높은 쉐이더 엔진에 스레드를 적극적으로 보내는 기능인 듯 합니다.
일단은 여기까지. 2부로 글이 나뉘네요. 4K에 대한 이야기를 한다고.