핵심 개념
CXL 기반 이기종 시스템은 차세대 고성능 컴퓨팅을 위한 유망한 기술이지만, 성능 최적화를 위해서는 CPU 아키텍처, CXL 장치 설계, 시스템 소프트웨어 지원 간의 복잡한 상호 작용에 대한 깊이 있는 이해가 필요하다.
초록
CXL 기반 이기종 시스템 성능 분석 및 미래 방향
본 논문은 CXL 기반 이기종 시스템의 프로그래밍 및 최적화에 대한 심층적인 분석을 제공합니다. 다양한 CPU 및 CXL 장치로 구성된 서버 시스템 클러스터를 구축하고, 이기종 메모리 벤치마크 제품군인 Heimdall을 개발하여 이러한 시스템의 성능을 분석했습니다. Heimdall을 활용하여 시스템의 아키텍처 설계를 자세히 분석하고, 워크로드 성능 최적화에 대한 관찰 결과를 도출했으며, 향후 CXL 기반 이기종 시스템 개발 방향을 제시했습니다.
CXL (Compute Express Link)
CXL은 프로세서, 가속기 및 메모리 장치 간의 고속 통신을 위한 개방형 산업 표준 상호 연결 프로토콜입니다. 이기종 아키텍처에서 일관된 메모리 액세스를 가능하게 하는 하드웨어 수준의 기능이 특징입니다.
CXL 프로토콜 및 장치 유형
CXL은 CXL.io, CXL.cache 및 CXL.mem의 세 가지 프로토콜을 지원합니다. CXL.io는 PCIe 프로토콜과 동일하며 장치 검색, 열거 및 PCIe IO 트랜잭션을 가능하게 합니다. CXL.cache 및 CXL.mem은 장치 간의 일관된 캐시 통신을 가능하게 합니다. CXL.mem을 사용하면 호스트가 장치 메모리에 일관되게 액세스할 수 있으며, CXL.cache를 사용하면 장치가 호스트 메모리를 장치에 일관되게 캐시할 수 있습니다.
CXL 열거
CXL 장치가 있는 시스템을 부팅하려면 CPU 펌웨어 및 운영 체제 커널에서 CXL을 지원해야 합니다. CXL 장치 열거는 BIOS/UEFI 및 OS가 CXL 버스에 연결된 장치를 검색하고 식별하는 프로세스입니다. 이 프로세스는 호스트 CPU와 CXL 장치 간의 통신을 설정하는 데 필요합니다.
CXL 리소스 액세스
CXL 리소스 조합이 다른 세 가지 유형의 CXL 장치가 있습니다. 유형 1 장치는 호스트 CPU에 노출되는 메모리가 없는 순수 가속기 장치입니다. 유형 3 장치는 호스트 CPU에 가속기를 노출하지 않고 온보드 메모리를 갖춘 순수 메모리 장치입니다. 유형 2는 호스트에 가속기 및 메모리 리소스를 모두 제공합니다.
시스템 설명 및 실험 구성
본 연구에서는 Intel Sapphire Rapids 4416+ CPU와 AMD Genoa 9124 CPU, 두 가지 유형의 CPU와 두 가지 유형의 CXL 장치로 클러스터를 구축했습니다. 장치 측면에서는 256GB DDR5 DRAM이 있는 ASIC 기반 메모리 확장기를 Intel 및 AMD CPU와 통합하여 평가했습니다. 또한 64GB DDR4 DRAM이 있는 Intel Agilex 7 FPGA에서 세 가지 유형의 CXL 장치를 모두 구현하고 Intel CPU와 함께 평가했습니다.
Heimdall 프레임워크
Heimdall에는 시스템 성능을 프로파일링하기 위한 광범위한 벤치마크 및 프로파일링 도구 세트가 함께 제공됩니다.
마이크로벤치마크
하드웨어 및 마이크로아키텍처 수준에서 성능을 연구하기 위해 광범위한 마이크로벤치마크를 개발했습니다. 이러한 마이크로벤치마크는 특정 하드웨어 동작을 트리거하도록 구현됩니다. 따라서 다양한 구성에서 성능 결과를 모니터링하여 마이크로아키텍처 설계를 감지합니다. 예를 들어, 포인터 추적 마이크로벤치마크를 활용하여 메모리 대기 시간을 연구하고, 포인터 추적 구성을 변경하여 메모리 컨트롤러 설계 및 CXL 데이터 경로와 같은 메모리 아키텍처를 리버스 엔지니어링합니다.
애플리케이션 벤치마크
시스템 및 소프트웨어 성능을 연구하기 위해 애플리케이션 수준 벤치마크를 Heimdall에 통합했습니다. 원격 및 로컬 메모리 액세스, 다양한 메모리 인터리빙 체계, 다양한 하위 NUMA 클러스터링 모드와 같은 다양한 하드웨어 시스템 설정에서 실행되도록 이러한 벤치마크를 구성했습니다. 이러한 벤치마크를 프로파일링하여 시스템 성능 제한을 관찰하고 향후 성능 개선 방향을 강조했습니다.
프로파일링 프레임워크
Heimdall은 Linux 커널 공간에서 마이크로벤치마크 코드를 실행하여 낮은 노이즈로 물리적 메모리에 액세스하는 저잡음 프로파일링 프레임워크로 개발되었습니다. CPU 하드웨어 프리페처 끄기, SMT(동시 멀티스레딩) 비활성화, 마이크로벤치마크 실행 중 인터럽트 핸들러 비활성화, CPU 스케일링 조정기를 통한 CPU 성능 모드로 부스팅을 포함하여 노이즈를 줄이기 위해 시스템 구성 도구를 활용합니다. perf [12], AMD uProf [13], Intel PCM [14]과 같은 프로파일링 도구를 채택하여 하드웨어 성능 카운터를 수집합니다.
오픈 소스
향후 메모리 시스템 연구를 용이하게 하기 위해 Heimdall을 github.com/awesome-cxl/에서 오픈 소스로 제공합니다.