ARM processor를 기다리며
AWS 에서의 인스턴스 CPU market share 변화 (Intel vs AMD vs Graviton)
최근 Intel이 몇 번(몇 년간의) 삽질을 반복하고 있는 사이, AMD가 온 세상이 주목할 정도로 경쟁력있는 제품을 내놓아 시장에서 인정을 받아가고 있고, 수 년 전에 한번 세간의 이목을 잠시 받았다 이내 사그러들었던 ARM processor 기반의 컴퓨터들이 주목받고 있다. ARM은 특히 Apple의 결단이 큰 계기가 될 듯 한데, 적어도 MAC을 사용하는 사용자들의 사용 머신을 Intel에서 모두 ARM으로 옮길 것이고, Intel이나 AMD에서 M1과 대적할 수 있는 x86 프로세스를 내놓지 못하면 많은 사람들이 Apple의 M1과 그 후속 프로세서를 이용한 제품 사용자로 넘어갈 것 같다. 현재 기준으로 workalod 마다 다르긴 하지만, 대부분의 경우 x86에서 돌리는 app보다 성능은 물론 가성비도 좋은 편이라 x86에서 어떤 대응책을 가지고 나올 지 궁금할 따름이다.
그렇지만 모든 사용자가 Apple의 생태계로 이주할 수 있는 것은 아닌데 특히나 우리 나라 같은 경우도 Microsoft Windows 기반만 지원하는 많은 서비스가 존재하고 있어 성능이 좋고, 가성비가 좋아도 애플 컴퓨터로 넘어가지 못하는 사용자도 분명 많이 있을 것이다. 트 ARM 프로세스를 이용한 consumer market은 애플의 이번 맥 제품이 명실상부한 첫 번째 제품이 아닌가 싶다. 그 전까지 ARM processor는 주로 단말기나 RasberrryPi 등의 저전력 장비에서 많이 사용되어 왔다고 알려져 있다. 하지만 일반 사용자들은 모르는 통신 장비에는 ARM architecture를 기반으로 한 processor를 사용하는 경우는 아주 많다. Cavium(지금은 Marvell에 인수된 상태)에서 Octeon TX 시리즈부터 기존 MIPS archtiecture 대신 ARM architecture로 전환한 지 오래되었고, Huawei의 Kirin processor도 ARM architecture 기반의 SoC 제품이다.
하지만 위에서 언급한 단말기, RasberryPi, 통신 장비 등 외에 ARM을 이용한 제품이 눈에 띄게 늘어나고 있다. 지난 번에 기사를 봤을 때는 ‘그렇구나’ 하고 넘어갔던 세계 최고 성능의 SuperComputer인 Fujitsu의 Fugaku도 ARM64FX라는 프로세스를 사용하는데 이것도 ARM architecture를 사용한다고 한다. ARM에서 HPC(High Performance Computing) 시장에 도전하기 위해 만든 Neoverse 계열에서 나온 N1 architecture를 기반으로 하고 있고, ARM이 설계한 SVE(Scalable Vector Extension)을 512bit까지 구현한 최초의 ARM 프로세서다. SVE는 ARM에서 x86의 AVX512 뜽에 대응하기 위해 나온 vector processing instruction으로 설계자체가 128비트에서 2048비트까지 지원할 수있도록 설계되었다. 기존에 많이 사용되고 있는 x86의 SSE/AVX나 ARM의 NEON 대비 차이점은 하나의 instruction set을 사용하여 서로 다른 길이의 SVE를 지원하는 ARM processor에서 동작하다는 것이다. 예를 들어 x86에서는 AVX, AVX2, AVX512 가 모두 다른 명령어를 가지고 있어 각각에 맞게 코딩을 다시 해야 한다. 그 덕에 AVX512를 사용하여 작성한 프로그램을 AVX2까지만 지원하는 CPU에서 실행하면 illegal instruction error를 내고 비정상 종료된다. 반면 SVE는 한번 작성한 코드는 SVE 128bit만 지원할 Neoverse N2나 256bit를 지원할 Neoverse V1 혹은 512bit를 지원하는 A64FX에서 모두 실행이 가능하다고 한다. 개발효율측면에서는 하나의 목적을 수행하기 위해 단 한 번만 구현하면 되므로 코드 유지보수나 활용도 측면에서 큰 장점으로 보이낟.
ARM이 특히 고성능 서버 시장에서 좋은 성과를 내고 있어도 아직 그건 특정 영역에서만 의미가 있는 것 또한 현실이다. 예를 들어 AWS의 Graviton2 instance를 사용해서 서비스를 제공하는 일을 한다고 했을 때 그 일을 할 때 사용하는 머신이 m1 기반이 아니면 여전히 ARM processor의 고성능을 직접 체감하기 쉽지 않다.
TBD