
(GPT로 만든 이미지인데, 상당히 감성적이다,,)
올해 ISCA 학회에 발표된 Meta의 Vistara 논문이 요 며칠동안 꽤나 주목을 받았다. 사실 작년 제작년부터는 그렇게 새로운 claim으로 보긴 어려운 내용을 담고 있다. 근데, 그걸 실제 자기들 데이터센터에 직접 적용해서 실증해서 CXL Memory 시장 가능성을 보여주었단게 중요한거 같다.
N. Gholkar, J. Stojkovic, H. Maruf, G. Price, P. Chauhan, H. Patel, C. Van Goethem, K. Vemuri, K. Malwankar, K. Sriadibhatla, K. Subramanian, S. Kanaujia, C. Tang, A. Dhanotia. "Vistara: Making CXL Real—Full Path from ASIC Design and OS Support to Hyperscale Deployment". [ In Proceedings of the 53rd International Symposium on Computer Architecture (ISCA) ].
Vistara 논문의 핵심 메시지는 다음과 같다.
CXL의 목표는 메모리 성능 향상이 아니라, 메모리 용량을 효율적으로(경제적으로) 확장하는 것이다.
Vistara에서 사용한 CXL Memory는 Local DDR보다 훨씬 낮은 memory bandwidth를 가진다. NUMA Remote Memory보다도 불리할 수 있다. 논문에선 이 사실을 숨기지 않는다. 대신, 저자들은 포커스를 다음과 같이 옮겼다.
모든 데이터가 정말 local DRAM 수준의 성능을 필요로 하는가?
Meta가 현재 운용하고 있는 다양한 서비스 (ML Parameter Server, Cache, Spark, Dev Infra 등)는 공통적으로 memory bandwidth보다도 memory capacity 그 자체에 bottleneck 을 겪고 있다고 한다.
이 상황에서, 메모리 용량을 어떻게 늘려야할까?
어쩌자는거야... 그러면 뭐 느린 CXL이라도 붙이리..?
이 논문에서의 답변은 Yes인 것이다.
이때, 실제 접근 패턴을 보면, 자주 접근하는 Hot Page는 일부에 불과하고 대부분의 메모리는 Cold/Warm Page로 남는다고 한다. 아래 p25부터 p99까지 찍은 idle time 수치 찍은 결과가 그 근거다.
따라서 우리가 흔히 CXL 얘기할때 단골로 등장하는 Hot-Cold Separation으로 계층화하면 성능 저하는 최소화하면서 메모리 용량 병목을 해소할 수 있다는게 주요 골자이다.
Vistara 관련 기사를 보면 주로 ASIC에 포커스를 맞춘 제목이나 내용이 눈에 띄는데, 사실 내 생각엔 ASIC은 여기서 그다지 중요한 부분이 아니다 (물론, 하드웨어에서 성능 못받쳐주면 답이 없고, 그래서 당연히 실제론 중요하다. 근데, 여기서 중요치 않다는 의미는, 이러한 접근 자체가 가능한 이유가 되진 않는다는 것이다; 후술). 구형 메모리를 PCIe 카드에 꼽고 CXL로 연결해서 메모리 확장 & 재활용한다는 말은 이미 작년 제작년에도 계속 나왔다. 아래는 마벨의 CXL 확장기다.

핵심은 하드웨어보다도 상기한 Meta의 워크로드 특성과, 이 기술을 위해 Meta에서 개발한 운영체제 레벨의 Memory Tiering이다.
Meta는 Linux NUMA Tiering을 확장하여 Hot Page는 자동으로 DRAM으로 Promotion하고 Cold Page는 CXL로 Demotion하는 전형적인 Hot-Cold Separation을 구축했다고 한다. 이때, 기존 NUMA distance 기반 정책 대신 TPP(Transparent Page Placement; =그냥 접근 횟수 보고 나눈다는거임)를 적용하여 실제 접근 패턴을 기반으로 페이지를 이동시킨다. 당연히, 이 과정에서 응용엔 수정이 필요치 않다.
접근법 자체는 새로운 것은 아니나, 이러한 워크로드 패턴 분석과 SW 스택을 구성함으로써 CXL 메모리 확장을 실증하고 활용할 수 있다는 것이 중요한 것이다.
논문에서 가장 인상적인 부분은 기존 DDR4 메모리의 재활용이다. Vistara는 신규 DDR5만 사용하는 것이 아니라, 기존 서버에서 회수한 DDR4 DIMM을 자체 제작한 ASIC을 통해 CXL Memory Module로 구성하여 새로운 서버의 Memory Expansion에 활용한 것이다.
이게 가능해지면, 앞으로 서버 폐기할 때 메모리를 같이 순장시킬 필요가 없다는 것이다.
보통 데이터센터 환경에서 CPU랑 메인보드를 3~6년 내로 폐기해야하는 반면 DRAM은 그보단 더 수명이 길다. 근데, 서버 폐기에 따라 괜히 아깝게 메모리를 다시 못쓰거나 되팔아야 하는 상황이 왕왕 있었던 것이다.
이런 기술이 널리 상용화되면? 아직 수명이 짱짱한 DRAM을 서버 스펙 무관하게 큰 무리 없이 붙여 쓸 수 있게 되는 것이다.
물론, 제일 중요한건, 그래서 성능이 떨어졌느냐이다. 성능 떨어지면 못쓰지 않는가. 다행히, 논문에 따르면 좋았다고 한다. 몇개 추려서 간단히 적어놓으면 아래와 같다.
핵심은, 이러한 개선은 더 빠른 메모리 때문이 아니라 더 큰 메모리 덕분이라는 것이다.
Vistara가 보여주는 것은 명확하다. CXL은 xPU를 더 빠르게 만드는 기술도 아니고 DRAM을 대체하는 기술도 아니다. 대신, 부족한 메모리 용량을 효율적으로/경제적으로/환경친화적으로 확장하고, 심지어 기존 메모리를 재활용하는, 데이터센터 전체의 메모리 활용률을 높이는 인프라 기술이다.
개인적으로 이 논문의 가장 큰 기여는 "CXL이 실제 데이터센터에서 유용한가?"라는 질문에 실질적인 대규모 프로덕션 사례를 통해 답했다는 점이다. CXL의 본질은 latency 개선이 아니라 Capacity Expansion, Memory Reuse, 그리고 Resource Disaggregation이며, Vistara는 그 철학을 실제 운영 환경에서 검증한 첫 사례 중 하나라고 볼 수 있다.
한편, 혹자는 이 CXL 기반 메모리 재활용이 메모리 업체에는 악재라고 볼수도 있겠다. 하지만 그건 굉장히 성급한 예상일 수 있다. 내가 강조하고 싶은 건 이거다. 한 가지를 잊어선 안된다. 도대체 어느 누가 최신 서버 사놓고 메인슬롯에 구형 메모리를 놓겠는가. 일단 메인 메모리 슬롯엔 거의 항상 최신세대가 꼽힐 것이다. 그래도 메모리가 부족하면, 그때 CXL 확장카드와 기존 서버의 재활용 메모리가 들어올 여지가 있는 것이다.
이때, 이후 CXL 카드에 꼽힌 구형 메모리의 수명이 다하면 그 메모리를 또 교체해줘야 한다. 즉, '신규 서버용 메모리'뿐 아니라 CXL 증설·교체 시장이라는 새로운 수요가 생길 수 있는 것이다. 또한, 기존 폐기로 인해 중고 시장으로 흘러가던 메모리 일부가 데이터센터 내부에서 계속 순환하게 되면서, 2차 시장을 노리던 고객의 신제품 구매 수요가 되려 더 늘수도 있는 형국이 된다.
물론 답은 아무도 모른다만, CXL이라는 기술이 결코 反메모리 기술은 아니라는걸 강조하고 싶다.
본 글에 담긴 Claim격의 서술은 모두 제 개인의 의견일 뿐이며 아무런 대표성을 가지지 않습니다.