이전글)
이번 포스트에서는 CXL 스펙에서 정의된 프로토콜 동작보다는 실제 시스템에서 CXL을 사용했을 때의 영향성을 분석한 논문들을 소개하고자 합니다. 이를 통해 데이터센터가 현재 메모리와 관련하여 직면한 다양한 상황들, CXL이 어떻게 등장하게 되었는지, CXL을 사용함으로써 어떤 긍정적인 효과를 기대할 수 있는지, 반대로 어떤 부정적인 측면이 존재하는지, 그리고 이러한 부정적인 영향을 최소화하기 위해 어떤 방법들을 사용할 수 있는지 등에 대한 폭넓은 통찰을 제공하고자 합니다.
An Introduction to the Compute Express Link (CXL) Interconnect
위 논문은 PCIe/CXL/UCIe의 갓파더라고도 할 수 있는 intel의 "DD Sharma" 연구원님과 그의 동료들이 출간한 논문입니다. CXL을 처음 접할 때, CXL spec을 바로 보는 것보다 이 논문을 간단하게 읽고 보는 것을 추천드립니다. 그 만큼, 메모리와 관련하여 현재 데이터센터가 직면한 여러가지 도전과제를 소개하는 동시에, CXL에 관련한 통찰력을 주는 논문입니다.
1. 개요
CXL은 프로세서와 가속기, 메모리 버퍼, 스마트 네트워크 인터페이스, 지속성 메모리, SSD 등과 같은 장치들 간의 연결을 위한 오픈 산업 표준 인터커넥트입니다. CXL은 PCIe와 유사한 대역폭을 가지면서도 지연 시간을 크게 줄인 메모리 일관성과 메모리 접근 방법을 제공합니다. CXL은 주요 CPU 및 장치 벤더와 데이터 센터 운영자들에 의해 채택되어 상호 운용 가능한 생태계를 구축하며, 효율적인 가속기 사용, 서버 메모리 확장, 다중 서버 리소스 풀링 및 공유, 효율적인 피어-투-피어 통신 등을 지원합니다.
2. 주요 도전 과제와 CXL의 역할
CXL은 여러 가지 기술적 도전 과제를 해결하기 위해 개발되었습니다:
- 일관된 메모리 접근: PCIe 장치는 시스템 메모리를 일관성 없이 접근하기 때문에, CXL은 이를 개선하여 가속기와 같은 장치가 시스템 메모리를 일관성 있게 캐시할 수 있도록 합니다.
- 메모리 확장성: 기존의 DDR 메모리 인터페이스의 핀 비효율성으로 인해 메모리 대역폭이 제한되는데, CXL은 이 문제를 해결하기 위한 대안을 제공합니다.
- 리소스 비효율성 해소: 데이터 센터에서 리소스가 효율적으로 사용되지 못하고 고립되는 문제를 해결하기 위해, CXL은 여러 서버 간에 메모리를 풀링하고 공유할 수 있도록 지원합니다.
- 분산 시스템에서의 세밀한 데이터 공유: CXL은 분산 시스템에서 낮은 지연 시간으로 세밀한 데이터 공유를 가능하게 하여 성능을 향상시킵니다.
3. CXL의 발전
CXL은 2019년에 처음 발표된 이후, 현재 CXL 1.0, CXL 2.0, CXL 3.0의 세 가지 주요 버전으로 발전해 왔습니다. 각 버전은 상호 호환성을 유지하면서도 추가적인 기능을 제공합니다.
- CXL 1.0: 가속기와 메모리 확장에 초점을 맞추며, 주로 단일 서버 내에서 사용됩니다.
- CXL 2.0: 리소스 풀링을 지원하여 여러 서버 간에 메모리를 공유할 수 있도록 합니다.
- CXL 3.0: 더욱 대규모 시스템을 위한 다중 레벨 스위칭 및 패브릭 토폴로지를 지원합니다.
4. CXL의 아키텍처
CXL은 비대칭적인 프로토콜을 채택하여 호스트 프로세서가 캐시 일관성을 관리하도록 하며, 이는 기존의 PCIe 인프라를 기반으로 합니다. 또한, CXL은 세 가지 주요 프로토콜(CXL.io, CXL.cache, CXL.mem)을 통해 장치 간의 데이터 전송을 지원합니다.
5. 향후 방향
CXL은 데이터 센터와 분산 시스템에서 중요한 역할을 하며, 앞으로도 메모리와 컴퓨팅 자원의 효율성을 극대화하기 위해 지속적으로 발전할 것으로 예상됩니다.
이 논문은 CXL의 기술적 세부 사항뿐만 아니라, CXL이 데이터 센터 환경에서 어떻게 사용될 수 있는지, 그리고 향후 발전 방향에 대해 깊이 있게 다루고 있습니다.
Tpp: Transparent page placement for cxl-enabled tiered-memory
본 논문은 hot/cold page를 예측하여, hot page는 비교적 빠른 local DRAM 메모리에 저장하고, cold page는 local DRAM보다는 느리지만 용량이 훨씬 많은 remote(CXL) memory에 저장하는 방식을 제안하고 있으며, local memory와 cxl memory 사이 유기적인 page migration을 가능케하여 전체 시스템 성능을 높입니다. 간략한 설명은 다음과 같습니다.
1. 배경 및 문제 인식
- 데이터 센터에서 메모리 수요가 증가함에 따라 메모리가 전체 비용의 큰 부분을 차지하게 되었습니다.
- CXL과 같은 새로운 인터페이스가 등장하면서 메모리 확장 문제를 해결할 수 있는 기회가 생겼지만, 메모리 관리가 효율적이지 않으면 성능 저하가 발생할 수 있습니다.
2. TPP(TPP: Transparent Page Placement) 제안
- CXL을 지원하는 메모리 시스템에서 페이지를 효율적으로 배치하기 위한 OS 수준의 투명한 페이지 배치 메커니즘인 TPP를 제안합니다.
- TPP는 메모리 사용 패턴을 파악하여 '핫' 페이지를 빠른 메모리에, '콜드' 페이지를 느린 메모리로 배치합니다.
- TPP는 주로 가상 머신 힙 메모리와 같이 자주 사용되는 페이지를 빠른 메모리에 할당하고, 덜 사용되는 파일 캐시 등은 느린 메모리로 옮깁니다.
3. 성능 평가
- TPP는 실제 데이터센터 환경에서 다양한 메모리 민감 워크로드를 평가했으며, TPP를 사용하면 대부분의 메모리 접근이 로컬 메모리에서 이루어져 성능이 크게 향상됨을 확인했습니다.
- 기본 Linux 메모리 관리와 비교했을 때, TPP는 최대 18% 성능 향상을 제공하며, 다른 최신 솔루션인 NUMA Balancing 및 AutoTiering보다 5-17% 더 우수한 성능을 보였습니다.
4. TPP의 주요 기능
- 경량화된 페이지 강등: 비활성화된 '콜드' 페이지를 CXL 메모리로 강등시키는 경량화된 메커니즘을 제공합니다.
- 할당 및 회수 경로 분리: 다중 NUMA 시스템에서 할당과 회수 로직을 분리하여 빠른 메모리 노드에 여유 공간을 유지합니다.
- 페이지 승격: 성능에 중요한 '핫' 페이지를 식별하여 느린 CXL 메모리에서 빠른 로컬 메모리로 즉시 승격합니다.
- 페이지 타입 인식 할당: 애플리케이션의 특성에 따라 메모리 타입을 인식하고 적절한 메모리 계층에 페이지를 할당합니다.
5. 결론
- TPP는 CXL을 활용한 메모리 계층화 시스템에서 메모리 효율성을 크게 개선할 수 있는 효과적인 솔루션입니다.
- TPP는 다양한 데이터센터 애플리케이션에서 일관된 성능 향상을 제공하며, 향후 데이터센터에서의 활용 가능성이 큽니다.
Pond: Cxl-based memory pooling systems for cloud platforms
이 논문은 CXL 기반의 메모리 풀링이 클라우드 플랫폼에서 어떻게 구현되고, 그로 인해 발생할 수 있는 성능 향상과 비용 절감 효과를 분석하고 있습니다. Pond 시스템은 특히 데이터 센터의 메모리 자원 활용도를 높이고, 퍼블릭 클라우드의 경제성을 개선할 수 있는 중요한 솔루션으로 평가됩니다. 논문에 대한 간략한 설명은 다음과 같습니다.
1. 배경 및 문제 인식
- 퍼블릭 클라우드 제공자는 성능 요구 사항을 충족하면서도 하드웨어 비용을 낮추기 위해 노력하고 있습니다. 메인 메모리는 성능과 비용 모두에 중요한 요소이며, 특히 DRAM의 비용이 서버 비용의 큰 비중을 차지하고 있습니다.
- 메모리 스트랜딩(사용되지 않고 남는 메모리)은 클라우드 데이터 센터에서 비용을 절감할 수 있는 중요한 부분이지만, 이를 효율적으로 관리하기 어렵습니다.
2. Pond 시스템 개요
- Pond는 CXL표준을 기반으로 한 메모리 풀링 시스템으로, 클라우드 플랫폼의 성능 목표를 충족하면서도 DRAM 비용을 절감하기 위해 설계되었습니다.
- Pond는 메모리 풀링을 통해 여러 서버 간에 메모리를 공유할 수 있으며, 이를 통해 DRAM의 사용 효율성을 높이고 비용을 절감할 수 있습니다.
3. 주요 설계 및 성능 평가
- Pond는 메모리 풀 크기를 8~16개의 소켓으로 제한함으로써, 접근 지연 시간을 줄이고 성능을 유지하면서도 DRAM 비용을 절감할 수 있도록 설계되었습니다.
- 기계 학습 모델을 사용하여 가상 머신(VM)에 얼마나 많은 로컬 메모리와 풀 메모리를 할당해야 할지 예측하여 NUMA 노드 메모리 성능과 유사한 결과를 달성할 수 있음을 확인했습니다.
- 158개의 워크로드를 평가한 결과, Pond는 성능 저하를 1~5% 이내로 유지하면서 DRAM 비용을 7% 절감할 수 있었습니다.
4. 메모리 풀링의 효과
- 메모리 풀링을 통해 사용되지 않는 메모리를 다시 사용할 수 있으며, 이로 인해 데이터 센터의 메모리 자원 활용도를 높일 수 있습니다.
- Pond는 메모리 풀을 활용하여 클러스터 메모리 수요를 10% 이상 감소시킬 수 있으며, 이는 클라우드 제공자에게 상당한 비용 절감을 의미합니다.
5. 결론
- Pond는 클라우드 환경에서 CXL 기반 메모리 풀링 시스템을 실현하기 위한 첫 번째 실질적인 솔루션으로, 성능과 비용 측면에서 클라우드 제공자에게 유리한 결과를 제공합니다.
- 이 시스템은 향후 데이터 센터에서 메모리 자원의 효율적인 관리와 비용 절감을 위한 중요한 역할을 할 것으로 예상됩니다.
Demystifying cxl memory with genuine cxl-ready systems and devices
본 논문의 가장 큰 강점은 실제 CXL memory를 사용했다는 점입니다. 이전까지 논문들을 살펴보면 CXL memory를 실제 사용한 것이 아닌 NUMA 시스템에서 CXL 시스템을 모사했다고 보는 것이 정확합니다. 그렇기 때문에 정확한 CXL memory의 영향력을 분석하기 어려웠지만 이 논문을 통해 실제 CXL memory에 대한 구체적인 영향을 분석할 수 있습니다. 논문에 대한 간략한 설명은 다음과 같습니다.
1. 연구 배경 및 목적
- 최신 애플리케이션들은 더 큰 용량과 높은 대역폭을 요구하는데, 현재의 메모리 기술은 확장성의 한계에 도달하고 있어, 이러한 요구를 경제적으로 충족시키기가 점점 더 어려워지고 있습니다.
- CXL은 이러한 문제를 해결할 수 있는 유망한 메모리 인터페이스 기술로, 특히 데이터 센터에서 메모리 확장 및 분리 기술에 대한 관심이 높아지고 있습니다.
- 그러나 대부분의 연구가 실제 CXL 메모리 장치가 아닌, 원격 NUMA 노드에서 DDR 메모리를 사용해 CXL 메모리를 에뮬레이션한 결과를 바탕으로 진행되어 왔습니다. 이 논문은 실제 CXL 지원 시스템에서의 성능을 처음으로 평가하고 분석합니다.
2. 연구의 주요 기여
- 실제 CXL 메모리와 에뮬레이션된 CXL 메모리의 차이점 분석: 실제 CXL 메모리는 에뮬레이션된 CXL 메모리와는 성능 특성에서 중요한 차이를 보입니다. 예를 들어, 실제 CXL 메모리는 에뮬레이션된 CXL 메모리보다 최대 26% 낮은 지연 시간과 3-66% 높은 대역폭 효율성을 제공할 수 있습니다.
- 메모리 대역폭 집약적 애플리케이션의 이점: 메모리 대역폭이 중요한 애플리케이션에서 CXL 메모리를 사용하면 성능이 향상될 수 있습니다.
- CXL 메모리 인식 동적 페이지 할당 정책 제안: CXL 메모리의 대역폭 확장 기능을 효율적으로 활용하기 위해, "Caption"이라는 동적 페이지 할당 정책을 제안합니다. 이 정책은 메모리 대역폭 집약적 애플리케이션의 성능을 최대 24% 향상시킬 수 있습니다.
3. 주요 발견
- CXL 메모리는 에뮬레이션된 CXL 메모리와는 달리, 캐시 일관성 확인을 더 빠르게 처리하며, 이는 시스템 수준에서 이전 연구의 결론을 재검토해야 할 필요성을 제기합니다.
- 단순한 애플리케이션에서 CXL 메모리를 사용하는 것은 지연 시간에 민감하여 성능 저하를 초래할 수 있으며, 이는 메모리 액세스 지연 시간의 증가로 이어집니다.
- 복잡한 애플리케이션의 경우, CXL 메모리의 지연 시간이 전체 지연 시간에 크게 영향을 미치지 않으며, 오히려 메모리 대역폭의 증가로 성능이 개선될 수 있습니다.
4. 결론
이 논문은 CXL 메모리가 실제 시스템에서 어떻게 동작하는지를 심층적으로 분석함으로써, CXL 메모리를 사용하는 애플리케이션에서 발생할 수 있는 성능 이슈를 이해하고, 이를 극복하기 위한 정책을 제안합니다. 이 연구는 CXL 기술이 데이터 센터에서 어떻게 활용될 수 있을지에 대한 중요한 통찰을 제공합니다.
An LPDDR-based CXL-PNM Platform for TCO-efficient Inference of Transformer-based Large Language Models
본 논문은 흔히 PIM의 일종으로, CXL controller 안에 연산기를 추가하여 CXL의 높은 용량을 활용하는 동시에 연산까지 가능케한 연구입니다. 이를 통해 PIM이 가진 높은 연산 능력을 그대로 지니면서 CXL memory를 통해 높은 용량도 활용할 수 있습니다. 논문에 대한 간략한 설명은 다음과 같습니다.
1. 연구 배경
- Transformer 기반 대형 언어 모델(LLM)들은 자연어 처리(NLP) 애플리케이션에서 매우 중요한 역할을 하고 있습니다. 하지만 이러한 모델들은 점점 더 많은 메모리 용량과 대역폭을 요구하고 있습니다.
- 기존의 GPU 기반 추론 시스템은 이러한 요구를 충족하기 어렵고, 특히 메모리 용량 부족으로 인해 성능 저하가 발생할 수 있습니다.
2. CXL-PNM 플랫폼 개요
- CXL-PNM(Compute Express Link - Processing Near Memory) 플랫폼은 LPDDR5X 기반의 CXL 메모리 아키텍처를 활용하여 대형 언어 모델의 추론 성능을 극대화하기 위한 시스템입니다.
- 이 플랫폼은 기존의 GPU 기반 시스템보다 더 큰 메모리 용량과 높은 대역폭을 제공하며, 동시에 에너지 효율성과 비용 효율성도 향상시킵니다.
3. 주요 설계 및 성능
- 메모리 아키텍처: LPDDR5X 기반의 CXL 메모리는 512GB의 용량과 1.1TB/s의 대역폭을 제공하여, GDDR6 및 DDR5 기반 메모리 아키텍처와 비교해 16배 더 큰 용량과 10배 더 높은 대역폭을 구현할 수 있습니다.
- CXL-PNM 컨트롤러 아키텍처: LLM 추론 가속기와 통합된 CXL-PNM 컨트롤러 아키텍처를 설계하여, 메모리 대역폭을 최대화하고 에너지 효율성을 높입니다.
- 소프트웨어 스택: CXL-PNM 플랫폼의 소프트웨어 스택은 Python 라이브러리와 디바이스 드라이버를 포함하여, Python 기반 LLM 프로그램이 CXL-PNM을 원활하게 사용할 수 있도록 지원합니다.
4. 성능 평가
- CXL-PNM 플랫폼은 8개의 CXL-PNM 장치를 사용하여, 8개의 GPU 장치를 사용하는 GPU 시스템과 비교했을 때 23% 더 낮은 지연 시간, 31% 더 높은 처리량, 그리고 2.8배 더 높은 에너지 효율성을 보여주었습니다.
- 하드웨어 비용 측면에서도 CXL-PNM은 GPU 기반 시스템보다 30% 더 저렴합니다.
5. 결론
- CXL-PNM 플랫폼은 대형 언어 모델의 추론에 있어서 성능과 비용 측면에서 매우 유리한 솔루션을 제공하며, 특히 데이터 센터에서의 활용 가능성이 큽니다.
- 이 플랫폼은 향후 더욱 복잡해지는 AI/ML 작업에 대해 높은 성능을 유지하면서도 비용 효율성을 극대화할 수 있는 중요한 기술적 진보를 의미합니다.
'Interface Standards > CXL' 카테고리의 다른 글
[8] CXL - ARB/MUX Layer (0) | 2024.08.30 |
---|---|
[7] CXL - Link layer - Retry (0) | 2024.08.30 |
[6] CXL - Link layer - Flit Packing (0) | 2024.08.30 |
[5] CXL - Transaction layer - Transaction Flow (0) | 2024.07.07 |
[4] CXL - Transaction layer - CXL.mem protocol (0) | 2024.07.07 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!