▌UL Benchmarks - 3DMARK
▒ The Gamer's Benchmark
3DMark는 다양한 플랫폼에서 그래픽 성능을 대표하는 측정 값으로 입지를 공고히 다져온 벤치마크이자, The Gamer's Benchmark라는 슬로건을 내걸고 게이밍 환경에 특화된 종합 벤치마크 역할로 거듭나고 있습니다. 이미 DirectX 9.0 기반의 3DMark 03부터 소프트웨어 렌더링으로 프로세서의 성능을 측정하는 CPU 테스트를 포함시킨 바 있고, 소프트웨어 렌더링이 도태될 무렵부터 물리효과 구현으로 테스트 방법을 바꿔가며 지속해오고 있습니다.
오늘날에는 짧은 테스트 시간에 비해 코어 및 스레드 반영률이 높아 고급 프로세서 비교에 유용하게 사용되곤 합니다. 실제 프로그램에 활용되는 CPU 리소스는 개발 의도에 따라 큰 차이를 보이기 때문에 벤치마크 스코어를 통해 이론상 최대 성능을 비교하는데 적합하다고 할 수 있습니다.
더군다나 실제 게임에서도 벤치마크와 다른 결과로 이어질 수 있는데, 테스트에 사용되는 물리 엔진으로 게임보다는 렌더링 작업용 프로그램인 블렌더(Blender)에서 주로 사용되는 불릿 피직스(Bullet Physics)라는 오픈 소스 라이브러리를 채택했기 때문입니다.
The Gamer's Benchmark를 표방하는 3DMark의 CPU 테스트에 게임계에서 비주류인 물리 엔진이 쓰이게 된 계기에는 여러가지가 이유가 있겠지만, 가장 그럴싸한 추측으로는 개발 당시 게이밍 물리 엔진의 양대산맥인 하복(Havok)과 피직스(PhysX)가 각각 개별 하드웨어 제조 기업인 인텔과 엔비디아 산하에 있었다는 점을 고려해 볼 수 있습니다.
2021년에는 위와 같은 단점들을 해결하기 위해 CPU Profile 이라는 새로운 벤치마크 테스트를 발표하기도 했습니다. 불릿 엔진 기반으로 개발되었다는 점은 동일하지만, 기존의 최대 성능에 더해 고사양 게임과 캐주얼 게임에서 발생하는 CPU 리소스 활용량 차이를 고려한 총 6개의 테스트를 시행합니다.
기본적으로 CPU의 최대 성능을 확인할 수 있는 모든 스레드 테스트 후 16개, 8개, 4개, 2개 스레드 순으로 반복한 뒤, 마지막으로 싱글 스레드 테스트를 진행해 다양한 게임에서 겪을 수 있는 CPU 성능 시나리오를 제시합니다.
▌Fire Strike - Physics Test
▒ Fire Strike 물리효과 구현 테스트
Fire Strike - Physics Test는 물리 시뮬레이션을 실행하여 CPU 성능을 측정합니다. CPU 성능 스코어에 영향을 주지 않도록 GPU 로드는 최대한 낮게 유지됩니다. 테스트 과정에 필요한 물리효과 구현에는 Bullet Open Source Physics Library가 사용됩니다.
테스트에는 총 32개의 시뮬레이션된 객체가 등장하며, 논리 프로세서당 하나의 스레드가 시뮬레이션을 구현하는데 할당됩니다. 모든 물리효과는 CPU에서 연산이 이루어지고 정점 데이터(soft body vertex)만 각 프레임마다 GPU로 업데이트 됩니다.
▌Time Spy - CPU Test
▒ Time Spy 프로세서 테스트
Time Spy - CPU Test는 물리효과 구현 및 커스텀 시뮬레이션을 조합하여 프로세서 성능을 측정합니다. Fire Strike와 마찬가지로 CPU 성능 스코어에 영향을 주지 않도록 GPU 로드는 최대한 낮게 유지되며, 모든 시스템에서 동일한 프레임이 렌더링되고 테스트를 완료하는 데 걸리는 시간만 달라집니다.
테스트의 두 가지 주요 구성은 군집 행동을 시뮬레이션하는 보이드(Boids) 알고리즘과 물리 시뮬레이션입니다. 보이드는 SSE3 명령어 세트로 최적화된 시뮬레이션을 사용하고, 물리 시뮬레이션은 Bullet Open Source Physics Library (v2.83)의 Rigid body 와 Featherstone solver를 사용합니다.