NOW LOADING, 로드 중, 불러오는 중 등으로 표현되는 로딩 과정은 게임에서 반드시 필요한 작업입니다. 로딩은 데이터를 보조기억장치(CD-ROM, HDD, SSD) > 주기억장치(RAM) > CPU 순으로 보낸 뒤 데이터 압축 해제 등과 같은 처리를 거쳐 주기억장치 > GPU로 보내지는 과정을 말합니다. 따라서 로딩 시간은 데이터를 불러온 뒤 최종적으로 화면에 출력되기까지의 시간을 가리킵니다. 로딩 시간이 길면 길수록 게이머는 몰입감이 깨지고 지루함을 느끼기 때문에 게임 제작사에서는 어떻게든 로딩 시간 자체 또는 체감 시간을 줄이기 위해 다양한 수단을 취해왔습니다.
과거 메모리 용량이 적고 보조기억장치가 느린 시절에는 문이 천천히 열리는 컷씬이나 유리가 조금씩 금이 가다가 와장창! 등의 연출이 재생되는 동안 로딩을 하여 게임의 몰입감이 깨지지 않도록 하였습니다. 어떤 게임에서는 본 게임과 아무런 상관도 없는 미니 게임을 로딩 중에 플레이할 수 있도록 했죠. 이후에는 배경이 반복되는 긴 통로나 엘리베이터의 이동 시간을 활용하여 로딩하는 방식도 등장했습니다. 이외에도 정말 다양한 방식으로 체감 로딩 시간을 줄이는 방법이 적용되었으나, 어찌 됐든 가장 좋은 것은 실제 로딩 시간이 짧아지는 것입니다.
다행히 보조기억장치가 NVMe SSD로 넘어오면서 과거에 비해 로딩 시간에 대한 불편함은 많이 줄어들었습니다. 그럼에도 로딩 시간을 줄이기 위한 노력은 지속되어 왔는데요. 그중 하나가 마이크로소프트의 다이렉트 스토리지Direct Storage 기술입니다. 다이렉트 스토리지 관련 벤치마크(칼럼 바로가기)는 포스포큰Forspoken 게임을 통해서 한 번 살펴본 바 있습니다. 이번에는 NVIDIA에서 발표한 RTX IO 기술에 대해 알아보려고 합니다. 지난 7월 26일 출시된 게임, 라쳇 & 클랭크: 리프트 어파트에 적용되어 관심을 끌었었는데요. 과연 RTX IO는 로딩 시간을 줄여줄 획기적인 기술일까요?

RTX IO란? WHAT IS RTX IO?
앞서 언급했듯이, 일반적인 로딩 방식은 데이터가 보조기억장치 > 주기억장치 > CPU(데이터 처리) > 주기억장치 > GPU로 전달되는 과정을 거칩니다. 과거 게임들은 크기가 작은 데이터를 순차적으로 불러왔기 때문에 CPU가 처리하기에도 적합하고 SATA HDD/SSD까지는 효율적으로 작동합니다. 하지만 데이터 자체가 커지고 로딩이 잦아진 현재 게임들에서는 병목 현상이 발생하게 되고, 순차적인 작업보다 수많은 데이터를 동시에 처리하는데 적합한 NVMe SSD의 경우 속도 자체는 SATA HDD/SSD보다 빠르지만 높은 효율을 내기는 어렵습니다.

마이크로소프트의 다이렉트 스토리지 기술은 로딩 과정 중 CPU 처리 단계를 생략하고 데이터를 주기억장치에서 VRAM으로 바로 보내서, 병렬 연산에 특화된 GPU가 데이터를 처리하도록 했습니다. 데이터가 전달되는 과정이 단축되고 CPU 부하는 줄어들며 NVMe SSD 및 최신 게임들의 특성과도 궁합이 좋습니다.

NVIDIA RTX IO는 다이렉트 스토리지의 연장선상에 있는 기술이라 할 수 있습니다. RTX IO의 독자적인 부분이라면 NVIDIA가 개발한 개방형 GPU 압축 표준인 GDeflate를 기반으로 한다는 것입니다. GPU 기반 무손실 압축이 가능한 GDeflate는 4K 해상도 텍스처와 같은 대용량 데이터를 상당히 압축해 주므로 게임 설치 크기 역시 줄어들게 됩니다. (Portal: Prelude RTX 기준 약 44% 가량 크기 절약)


로딩 과정은 다이렉트 스토리지와 동일하지만, GDeflate로 압축된 데이터를 NVMe SSD > 주기억장치 > VRAM으로 바로 받아 GPU의 높은 병렬 연산으로 압축을 해제한 후 사용하므로 기존 로딩 방식보다 빠른 처리가 가능합니다. 다이렉트 스토리지와 마찬가지로 병렬 연산을 전제로 설계된 기술이기 때문에 다중 스레드 성능, 즉 GPU와 SSD의 성능이 높을수록 더 좋은 효율을 보이며 다이렉트 스토리지 API를 통해 DirectX를 지원하고 Vulkan 확장 프로그램으로 Vulcan도 지원합니다.
테스트 시스템 및 비교군 사양 TEST SYSTEM & SPEC OF CONTROL GROUP


테스트를 진행할 저장장치는 총 4종입니다. Gen4x4 고급형 NVMe SSD 1종, Gen3x4 고급형 NVMe SSD 1종, SATA SSD 1종, 7200 RPM HDD 1종으로 구성했습니다.


테스트에 활용된 라쳇 & 클랭크: 리프트 어파트의 클라이언트 버전은 v1.815.0.0입니다. 디스플레이 설정은 3840x2160 해상도 고정, 업스케일링 끄기, 동적 해상도 끄기, 수직 동기화 끄기, 안티앨리어싱 TAA, NVIDIA Reflex Low Latency 끄기입니다. 그래픽 프리셋은 Very Low / Medium / Very High 3종을 사용했습니다. 레이트레이싱 반사 옵션은 기본적으로 미적용 상태이지만, 일부 테스트에서는 레이트레이싱 반사 Very High를 적용 후 측정하였습니다.

NVIDIA RTX IO는 기본적으로 On 상태이며, 옵션을 통해 켜고 끄는 기능은 제공되지 않습니다. 따라서 라쳇 & 클랭크: 리프트 어파트가 설치된 폴더로 이동하여 dstorage.dll 및 dstoragecore.dll 파일을 삭제하여 NVIDIA RTX IO 기능을 비활성화했습니다. 물론 파일을 아예 삭제하지 않고 다른 폴더에 이동해도 되며, 파일을 실수로 삭제했더라도 무결성 검사로 다시 받을 수 있습니다.


로딩 시간 측정은 첫 번째 보스전이 끝난 이후인 차원 이동 구간입니다. 해당 구간에서는 UI가 사라지고 총 5번의 차원 이동을 진행하는데, 보라색 균열 내부에 들어가 있을 때만 로딩이 발생합니다. 나머지 구간은 제한된 움직임이 가능한 자동 이동 구간이지만 변수를 줄이기 위해 아무런 입력도 하지 않았습니다.
▲ 라쳇 & 클랭크: 리프트 어파트 벤치마크 구간 영상
프레임 측정을 제외한 모든 벤치마크는 첫 차원 진입 시부터 모든 차원 이동이 끝난 이후 UI가 다시 나타난 시점까지의 시간을 측정한 결과입니다. 전체 시간은 SK하이닉스 Platinum P41 (1TB) 기준으로 대략 40초 정도가 측정되었지만, 실제 로딩이 발생한 시간(=보라색 균열 내부에 머문 시간)은 대략 12초 정도인 점 참고하시기 바랍니다.
또한 라쳇 & 클랭크: 리프트 어파트는 한 번 로딩 후, 동일 구간을 다시 로딩하면 캐시로 인해 HDD조차도 40초 대의 측정 시간을 보이기 때문에, 모든 테스트는 1회 측정 후 재부팅하여 진행했습니다.
RTX IO On/Off 비교 RTX IO On/Off COMPARISON

□ 제품별 비교



□ 그래픽 프리셋별 비교




Gen4x4 NVMe SSD, Gen3x4 NVMe SSD, SATA SSD, 7200 RPM HDD 4개로 비교해 본 RTX IO On/Off 결과입니다.
Gen4x4 인터페이스인 SK하이닉스 Platinum P41 (1TB)는 RTX IO On/Off에 영향을 받지 않는 오차 범위(약 0.2%) 내의 로딩 시간을 보였습니다. RTX IO를 켠 것이 더 빠르긴 하지만 실질적인 체감은 거의 없는 셈입니다. 높은 그래픽 프리셋을 적용하여 데이터 용량이 증가하더라도 RTX IO On 기준 Very Low(40.15초) > Very High(41.14초)로 약 2.5% 정도의 차이를 보일 뿐입니다.
Gen3x4 인터페이스인 SK하이닉스 Gold P31 (1TB)는 Platinum P41과 동일한 수준의 결과를 보였으며, 약 0.3% 차이로 RTX IO On/Off에 영향을 받지 않는 점도 같습니다. 그래픽 프리셋 변경의 차이는 RTX IO On 기준 Very Low(40.03초) > Very High(40.80초)로 약 1.9% 정도의 차이입니다.
SATA SSD인 마이크론 Crucial MX500 (1TB)와 HGST Deskstar 7K3000 (1.5TB)는 상대적으로 차이가 눈에 띄는 편이지만, 두 제품 모두 RTX IO를 끈 상태에서 로딩 시간이 더 짧습니다. 물론 그 차이는 MX500이 약 0.9%, 7K3000이 약 0.5%로 역시 실체감 수준은 아닙니다. 그래픽 프리셋 변경의 차이는 RTX IO On 기준 MX500이 Very Low(44.23초) > Very High(46.51초)로 약 5.2%, 7K3000이 Very Low(57.17초) > Very High(63.18초)로 약 10.5% 정도의 차이를 보입니다.
Gen4x4 인터페이스인 SK하이닉스 Platinum P41 (1TB) 및 RTX IO On / Very High 프리셋 기준으로 각 제품별 성능 차이는 Gen3x4 인터페이스인 Gold P31은 0.8%, SATA SSD인 MX500은 약 13.1%, HDD인 7K3000이 약 53.6%로 확인됩니다.

□ 레이트레이싱 추가 비교

SK하이닉스 Platinum P41 (1TB) 및 Very High 프리셋 기준으로 DLSS 없이 레이트레이싱 반사 옵션을 켰을 때 로딩 시간의 차이가 있는지 확인해보았습니다. 결과는 0.05% 수준으로, Very Low > Very High와 같은 프리셋 변경보다도 더 적은 차이를 보입니다. 사실상 오차 범위 수준으로 레이트레이싱 반사 옵션 적용은 RTX IO 작동에 거의 영향을 주지 않는다고 할 수 있습니다.
□ RTX IO On/Off에 따른 성능 차이

RTX IO를 끌 경우 오히려 프레임이 상승된다는 이슈가 있어 SK하이닉스 Platinum P41 (1TB)를 기준으로 프레임을 측정해보았습니다. RTX IO를 끄면 실제로 프레임이 상승하였으며, 그래픽 프리셋이 높을수록 그 차이는 더 커졌습니다. 프레임 상승률은 Very Low에서 0.3%, Very High에서 2.5%로 확인되었습니다.
다이렉트 스토리지 1.1 양상 비교 DIRECT STORAGE 1.1 PATTERN COMPARISON


이전에 진행했던 다이렉트 스토리지 벤치마크(칼럼 바로가기) 결과와 양상을 비교해보기 위해 그래프로 만들어 보았습니다. 포스포큰의 경우 7개의 섹션에서 각각의 로딩 시간을 측정하기 때문에 위 그래프에서는 7개 결괏값의 평균으로 적용한 점, HDD의 경우 동일한 제품이 아닌 점 참고하시기 바랍니다.
본 게임과 로딩 구간 자체가 다르기 때문에 양상만 보아야겠지만, SK하이닉스 Platinum P41 (1TB) 기준으로 포스포큰의 Seagate 7200 RPM HDD와는 32.8초 차이를 보였으며 계산하면 약 27배 차이임을 알 수 있습니다. 라쳇 & 클랭크: 리프트 어파트의 HGST Deskstar 7K3000 7200 RPM HDD는 22.1초 및 53.6%의 차이를 보였습니다.
요약 SUMMARY