정보기술 ·
윈도우 ARM 에뮬레이션, AVX2가 오히려 느리다...RemObjects 벤치마크로 확인...ARM 네이티브 전환만이 해답
RemObjects, x86 명령어 집합별 ARM 에뮬레이션 성능 측정…AVX2 이점 사실상 소멸
[한국정보기술신문] 개발 도구 전문 기업 RemObjects가 윈도우 ARM 환경에서 x86-64 에뮬레이션의 명령어 집합별 성능을 측정한 결과를 공개했다. 핵심은 충격적이다. 일반적으로 고성능 연산에 유리하다고 알려진 AVX2+FMA 명령어 집합이 윈도우 ARM 에뮬레이션 환경에서는 SSE2~4.x 수준 대비 성능 향상이 거의 없거나 오히려 불리한 것으로 나타났다.
에뮬레이션의 함정: AVX2가 왜 느린가
연구자는 수학 연산 벤치마크를 ARM 기반 기기에서 x64 에뮬레이션으로 구동하면서 이상한 점을 발견했다. AVX2+FMA 빌드가 SSE4.x 수준 빌드에 비해 성능 차이가 거의 없다는 것이었다. 인텔 및 AMD 네이티브 환경에서는 AVX2가 SSE 대비 월등한 처리 능력을 보이는 것이 정설이다. AVX2는 256비트 폭의 SIMD 연산을 지원하고, FMA(고속 곱셈-덧셈) 명령어와 결합하면 부동소수점 연산 처리량이 크게 늘어나기 때문이다.
그러나 마이크로소프트의 x86 에뮬레이션 레이어인 Prism이 이 AVX2 명령어를 ARM에서 처리할 때 과도한 오버헤드가 발생하는 것으로 보인다. 연구자는 SSE2~4.x 수준을 기준값(1.0)으로 설정한 뒤 x86-64-v3(AVX2+FMA 포함) 빌드와 ARM64 네이티브 빌드를 비교했다. 테스트는 1,000만 개의 무작위 double 값 배열에 대해 sin, cos, exp, log 등 수학 연산을 반복 수행하는 방식으로 진행됐으며, 각 빌드는 LLVM을 통해 해당 명령어 집합을 최대한 활용하도록 벡터화 최적화가 적용됐다.
Prism 에뮬레이터의 현실
마이크로소프트는 2024년 윈도우 11에 새로운 에뮬레이션 레이어 Prism을 도입했다. 당시 마이크로소프트는 Prism이 애플의 Rosetta 2 수준의 성능을 발휘한다고 밝혔으며, 실제로 일반적인 x86 앱들은 에뮬레이션 상태에서도 체감상 차이를 느끼기 어려울 만큼 동작한다는 평가를 받았다.
그러나 이번 벤치마크는 그 한계를 명확히 드러낸다. SSE2~4.x 수준의 명령어는 Prism이 비교적 효율적으로 변환할 수 있지만, 256비트 폭의 AVX2 연산은 ARM의 128비트 NEON/SVE 구조와 근본적으로 불일치해 에뮬레이션 비용이 크게 증가하는 것으로 분석된다. 즉, 더 빠른 명령어를 썼음에도 에뮬레이션 오버헤드가 그 이점을 모두 상쇄해버리는 것이다.
ARM 네이티브가 유일한 해답
벤치마크 결과에서 가장 두드러진 점은 ARM64 네이티브 빌드의 압도적인 성능이다. Oxygene 컴파일러로 ARM64 네이티브 빌드를 생성할 경우, 델파이(Delphi)로 만든 Win32 앱을 에뮬레이션으로 구동하는 것과 비교해 최대 11배 빠른 수학 연산 성능을 보였다. 이는 단순히 컴파일러 최적화 수준의 차이를 넘어, 에뮬레이션 자체의 구조적 손실을 방증한다.
또 하나 주목할 만한 발견은 ARM64 빌드 대상 설정과 관련한 것이다. 특정 CPU 모델을 명시적으로 타겟팅하는 것보다 'generic' ARM64를 타겟으로 설정했을 때 오히려 성능이 더 높게 나타났다. 이는 지나치게 세밀한 CPU 타겟 설정이 LLVM의 벡터화 최적화를 방해할 수 있음을 시사한다.
개발자에게 주는 시사점
이번 연구 결과는 ARM 기반 윈도우 장치, 특히 스냅드래곤 X 시리즈 탑재 노트북을 대상으로 소프트웨어를 배포하려는 개발자들에게 명확한 메시지를 전달한다. 연산 집약적인 앱을 x64 에뮬레이션에 의존하면서 AVX2로 빌드하는 것은 기대한 성능 향상을 얻지 못할 가능성이 높다. RemObjects는 자사 컴파일러 사용자들에게 윈도우 ARM을 타겟으로 할 경우 반드시 ARM64 네이티브로 직접 컴파일할 것을 권장하고 있다.
ARM PC 시장이 확대되는 가운데, 에뮬레이션에 의존하는 레거시 소프트웨어 생태계의 성능 한계는 앞으로도 지속적인 과제로 남을 전망이다. 특히 과학 연산, 금융 모델링, 미디어 처리 등 SIMD 성능에 의존하는 분야에서는 네이티브 ARM 전환의 필요성이 더욱 분명해지고 있다.
한국정보기술신문 정보기술분과 유상헌 기자 news@kitpa.org