반도체 회사들의 미래 경쟁구도를 알아보자
지난글 보기
AMD의 최근 실적 상승이 매섭습니다. AMD는 과거와는 달리 10%가 넘는(?!) x86시장의 점유율을 가지고 가기 시작했으며, 인텔의 데이터센터 수익은 33% 가까이 날아갔습니다. 인텔은 '시장 경쟁 격화'를 원인으로 지목했는데, 이는 곧 AMD를 지목한 것이라 볼 수 있습니다.
그럼에도 AMD는 인텔의 동료중 하나라 할 수 있습니다. 어째서냐구요? 더 큰 적이 있으니까요. 어떤 의미에서 인텔과 AMD는, 같은 종이배에 탄 몸이기 때문입니다.
최근 클라우드플레어(Cloudflare)는 탄소 제로를 선언하면서, 네오버스(Neoverse) CPU 사용 의지를 밝힌 바가 있습니다(https://martechseries.com/sales-marketing/marketing-clouds/cloudflare-sets-out-to-create-new-blueprint-for-a-zero-emissions-internet/).
"(...)has achieved more than 50 percent improvement in requests per watt by deploying Arm®Neoverse™-based processors in its edge servers"
발표에 따르면, 적어도 Cloudflare의 사업 영역 중, 엣지 단 서버의 경우 ARM CPU는 기존보다 50%가까이 전력 대비 성능이 뛰어나다는 것을 알 수 있습니다. 아마도 CPU의 공급자는 아마존 아니면 Ampere일 것입니다(한때 클라우드플레어는 퀄컴 ARM CPU도 테스트 했으나, 지금은 나오지 않으니...). 네오버스를 이용해 돌아가는 칩 까지 만든 회사는 위 둘 밖에 없습니다.
물론 저기서 Cloudflare는 기존 Edge서버가 사용하던 CPU를 이야기 하지는 않았습니다. 아마 네오버스에 해당하는 돼지같은 거대 CPU라면(ARM은 up-to 128 core로 밝힘), 본래 해당 Edge서버에 대응하는 x86 CPU는 제온(Xeon)급일 가능성이 높다 할 수 있습니다. 가장 성능과 전력 소모 최첨단에 서는 칩들이 특정 분야에서라도 밀려난다는 것은 그다지 좋은 징후는 아닙니다.
물론 클라우드플레어는 3년 전부터 ARM서버를 찬양하며 탈 인텔을 선언했기 때문에, 회사의 프로그램들 자체가 ARM 서버 친화적으로 설계되고 있을 가능성이 있습니다. 하지만 중요한 것은 클라우드플레어의 고객사들 코드가 아닌, 클라우드플레어 자신들의 엣지 서버용 코드는 ARM을 벗어날 이유가 없단 것입니다. 그것이 ARM친화적 소프트웨어 빨이건 뭐건, 하여튼 더 싸잖아요?
만약 이런 엄중한 상황에, 인텔 제온 이상으로 전성비가 좋은 x86 CPU가 없다면 어떻게 될까요? 아마 클라우드플레어보다는 조금 덩치가 작지만, 비슷한 사업군에 위치하는 회사들 역시 ARM CPU의 문을 두드려 봤을 지도 모릅니다. 즉, 인텔(x86)=> ARM으로 이행 하는 것입니다.
하지만 AMD가 존재할 경우, 즉, 인텔(x86) => AMD(x86) 수준에서 전환을 멈추는 고객도 분명 존재하게 됩니다. 소프트웨어 서비스 스택 자체를 갈아엎는것은 굉장히 귀찮은 일이기 때문입니다. 그리고 인텔 입장에서도, ARM으로 도망간 고객을 다시 데려오는것 보다는 AMD가 잠시 맡아(??)둔 고객을 다시 데려오는 것이 훨씬 간단합니다.
이는 반도체 설계, 제조에서도 마찬가지입니다. AMD는 인텔의 기술자들이 ARM 진영으로 도망갈 가능성을 조금이나마 줄여줍니다. CPU계의 본좌였던 짐 캘러가 애플에 가서 얼마나 막강한 CPU를 설계하고 왔는지 생각해 보면 이런 위협이 얼마나 큰 것인지 이해 할 수 있을 것입니다.
저는 일찍이 책을 쓰면서 모바일 혁명을 가능하게 했던 또 하나의 축으로 가상화를 든 바 있습니다. 가상화의 막강한 점은 전 세계 사람들이 남이 안 쓰는 서버를 빌려 쓰게 해 준다는 것과, OS 등의 핵심 영역을 실제 하드웨어와 분리시킴으로써 사용자 프로그램의 배포와 재설치, 스케일 업/다운을 용이하게 해 준다는 것입니다(몰라도 됩니다).
하지만 이런 가상화 시장이 지금도 다가가지 못한 시장이 있는데, 바로 GPU의 가상화입니다. 실제로 아마존, 네이버 등 수많은 클라우드 사업자 홈페이지에 접속해 보아도 GPU 달린 서버는 엄청나게 비쌉니다.
위의 체크표시 된 두 개의 클라우드 요금을 확인해보면 흥미로운 사실을 알 수 있습니다. 위의 CPU 전용 클라우드 서버 가격과, 아래의 GPU 클라우드 가격이 3배 가까이 차이난다는 것을 알 수 있습니다. 모든 다른 사양은 거의 비슷하고, 메모리만 4GB더 주어진 수준입니다.
차이라고 하면 NVIDIA의 T4 GPU 1개가 있느냐 없느냐 수준의 차이입니다. 그런데 T4의 가격은 2200불 정도밖에 되지 않습니다. 해당 서버에서 가장 비싼 부품도 아닐 것입니다. 반면 SSD용량은 50GB -> 100GB늘리는데 시간당 8원(...) 추가 과금에 그칩니다.
이렇게 되는 이유는 CPU, RAM등과는 달리 GPU는 사실상 가상화가 되지 않기 때문입니다. 물론 NVIDIA는 A100과 같은 괴물 GPU를 가상화 지원하기 위해 큰 노력을 하고 있습니다. 여러 이유 때문에 진짜 의미로 공급 가격을 낮추는(서버 10개 사서 100명에게 나눠주기) 가상화를 할 수는 없습니다.
(고수용 : GPU 메모리는 overcommit할 수 없는것과, PCIe를 거쳐 CPU의 통제를 받아야 하기 때문에 switching 타임이 매우 큰 것이 가장 큰 원인일 것입니다. A100의 가상화도 그 한계는 벗어나지 못하니까 deploy가 용이해지고 조그만 GPU task끼리만 공유되지 않는가...)
사견이지만, 이 가상화 문제는 지금 인공지능 혁명의 대규모 전개를 가로막는 거대한 장벽이기도 하지 않나 합니다. 현재 모바일 시장의 인공지능 가속 시장은 하드웨어부터 프레임워크까지 엉망 진창이며, 이걸 해결할 수 있는 거대한 주체도 뚜렷하게 보이지 않습니다.
이런 상황이 반복되게 되면, 인공지능으로 스마트폰 등에 뭔가 아주 빡센 서비스를 하기 위해선 App을 만드는 주체가 옛날 인터넷 서비스 시절처럼 엄청 크거나, 그냥 엄청 돈을 지출하며 서비스를 하는 수 밖에 없습니다. 어쩌면 AI winter를 불러올 지도 모릅니다.
고만고만한 모바일 친구들은 내버려두고, 이 문제를 해결할 수 있는 회사는 현재 딱 둘밖에 없습니다. 바로 NVIDIA와 인텔입니다.
그런데 NVIDIA가 현재 가진 문제 중 하나는 CPU가 없다는 것입니다. NVIDIA CUDA의 호환성 중 상당부분은 CPU 덕분에 가능한 것입니다(고수용 : 결국 CPU가 CUDA별로 다른 VLIW를 전부 nvcc써서 compile해주는거니까). 뿐만 아니라, 가속기 형태로 존재하기 때문에 가상 메모리를 받을수도 없습니다(고수용 : PCIe로 떨어진 GPU는 아예 CPU와 별개 메모리 영역을 보고 있으니까).
이를 해결하는 방법의 첫 단계는 바로 GPU를 CPU와 아예 함께 붙여 버리는 것입니다. 이미 NVIDIA는 그런 형태의 솔루션들을 엣지 디바이스 용으로 내놓고 있습니다. 바로 젯슨(Jetson) 시리즈 입니다.
설명은 힘들지만, 위와 같은 구조를 가져가서 CPU와 GPU가 메모리를 공유하면 가상화는 한단계 더 쉬워집니다. 물론 이것만으로는 잘 되지 않겠지만. 제가 젠슨 황은 아니지만, NVIDIA에게 ARM이 반드시 필요한 이유중 하나일 것입니다(다른 하나는 HPC와 슈퍼컴퓨터).
그런데, 이 와중에 CPU랑 GPU를 다 같이 가지고 있는 회사가 있긴 합니다. 네 인텔입니다. 그리고 실제로 OneAPI라고 부르는 CPU, GPU, FPGA등의 이종 아키텍쳐를 통합하는 프레임워크 개발에도 착수하였으며, 좀 어마무시한 크기의 GPU들(폰테 베키오)을 내 놓고 있기도 합니다.
물론 인텔에게도 문제가 없는 것은 아닙니다. 일단 인텔 GPU로 머신 러닝 하는 사람이 없습니다(...). CUDA잘 되고 생태계 지원 빵빵한데, 누가 그런 물건을 쓰겠습니까.
하지만 가상화가 잘 지원되면 이야기는 다릅니다. "야 우리 GPU가 쓰기 겁네 힘들긴 한데, 클라우드에 깔면 자동 스케일링도 되고, 이중화도 되고, 물리적 실체 생각 안하고 막 올려도 된다!" 가 되면, 큰 소프트웨어 선수들은 인텔 GPU를 배워서라도 사용하기 시작하게 됩니다.
사실 GPU 가상화를 제대로 하려면 OS에서의 보안 및 권한문제부터, 전용 통합 칩을 설계하는 것까지 할 일이 산더미같이 많은데, 이런 일을 30년 넘게 해 온 존재가 사실 인텔입니다. 그리고 그 분야에서 아직은 죽지 않은 회사이기도 합니다.
이 상황에서 AMD는 할 수 있는게 별로 없습니다(...). 소프트웨어에게 욕먹고, 호환성으로 욕먹느라 바빴던 AMD는 GPU기반 머신 러닝 기반에서 탈곡당했고, NVIDIA가 '인공지능 기기'를 팔고 있는 상황에 '게임 화면 표시기'나 플스나 XBOX에 내다 파는 상황이 되어있기 때문입니다. NVIDIA가 개당 수만불짜리 GPU를 파는 시대에, AMD는 프레임워크 수준의 지원도 제대로 하고 있지 못한 상황입니다.
AMD 입장에서도 이 싸움에서 인텔이 밀려버릴 경우, x86 이 클라우드에서 설 자리가 장기적으로 줄어들게 됩니다. 인텔 점유율을 갉아먹는(?) 상황이긴 하지만, 한편으로는 정말 큰 한타 싸움에서는 인텔이 이기기만을 빌어야 합니다.
사실 AMD는 옛날에도 그렇게 인텔 발자취를 따라다니며 살아남는 회사긴 했습니다. 그리고 지금조차도 AVX512도 인텔이 욕먹어가며 상용화를 해내자, HPC용으로 추가하겠다며 지금 와서 따라가는 상황이긴 합니다. 딱히 이런 포지션에 불만도 없는 듯 합니다. 이제야 FPGA회사를 인수하는것을 보면, 이번에도 인텔이 FPGA에서 돌파구를 뚫으면...
GPU 가상화, 나아가서 각종 3rd party 가속기를 가상화 하는 것은 매우 큰 의미를 가집니다. 이는 또 한번의 모바일 혁명을 성공시킬 수 있는 열쇠가 될 수 있을 뿐만 아니라, NVIDIA같은 경우는 클라우드의 단순한 GPU 공급자에서, 클라우드 기술의 리더로 도약할 수 있는 길이 열리게 됩니다. 어쩌면 나아가서 ARM을 클라우드의 지배자로 끌고 올라갈 열쇠일지도 모릅니다. 이걸 성공하게 되면, 모바일 시장이 겪는 인공지능 파편화 문제도 말끔히 해결됩니다. 그냥 다 클라우드에 전개하면 됩니다. 모바일 AP사업자들의 영향력은 감소하고, 클라우드를 차지한 자가 서비스 코드의 중심이 됩니다.
이후에도 CPU성능 증가가 약해짐에 따라 점점 더 많은 서비스가 가속기에 의존하게 됩니다. 그럼에도 불구하고 GPU는 엄청 비싸고, FPGA는 더더더더욱 비쌉니다. 가상화를 해내지 못하면 이 교착상태는 쉽게 풀릴 수 없습니다. 현재 NVIDIA 방식의 메모리빨 가상화는 한계가 있습니다.
그런 의미에서 보면, CPU를 가지는 것은 이러한 가속기와 클라우드 시장에 접근을 가능하게 한다는 의미가 존재합니다. 그런 의미에서 보면, 이후 NVIDIA와 Intel진영의 대결은 단순한 대결이 아닐 것입니다.
그리고 이 한 장면을 통해, 우리는 현대 IT산업의 다면성을 볼 수 있습니다. AMD는 Intel의 라이벌이지만, 한편으로는 x86시장의 파이를 지키는 소중한 존재이며, AMD에게 Intel은 파이 자체를 다른 영역으로 돌파하게 해주는 큰형님이자 첨병의 역할을 합니다.
NVIDIA는 x86 CPU에 잘 맞는 GPU를 공급하는 파트너였지만, ARM을 인수함으로써 클라우드와 슈퍼컴퓨터 양 분야에서 x86 전체와 싸울 능력을 얻을 수 있습니다. 한편 ARM은 이로 인해 하드웨어 파편화를 해결하지만, ARM CPU구매자들(삼성, 화웨이, 퀄컴 등)은 한편으로는 그냥 Intel 하나가 더 생기는거 아닌가 하는 두려움을 가지게 될 지도 모릅니다.
이 와중에 인텔은 IDM 2.0사업을 하면서, 온갖 고객사를 다 맞을 준비가 되어 있다는 식으로 이야기 합니다. 루머에 따르면 TSMC 7나노를 원하는 만큼 구하지 못했던(그래서 삼성파운드리 문을 두드린) 젠슨 황도 인텔 파운드리에 관심을 가지고 있으며, 아마존은 인텔 패키징을 쓰고 싶어하는데, 아마존이 인텔 패키징 쓸 곳은 위에 말했던 ARM 기반의 네오버스 CPU밖에 없습니다(...). 다들 이렇게 머리 아프고 흥미로운 반도체 시장을 본 적이 있는지?
그럼 이런 시기에 한국 메모리 회사들은 뭘 하면 되느냐? 그냥 메모리 잘 팔면 됩니다(...). 잘 보면 위의 싸움에서 누가 이기건, CPU가 ARM이건 인텔이건, GPU가 NVIDIA건 인텔이건 붙는 메모리가 바뀌진 않습니다. 음 그래도 놀진 말고, 뭔가 쟤들이 신경 안쓰는걸 찾는건 매우 중요합니다.