[논문 리뷰] CINM (Cinnamon): A Compilation Infrastructure for Heterogeneous Compute In-Memory and Compute Near-Memory Paradigms
CINM (Cinnamon)는 이질적 컴퓨팅-인-메모리(CIM) 및 컴퓨팅-니어-메모리(CNM) 아키텍처를 위한 디바이스에 관계없이, 디바이스에 맞는 최적화를 가능하게 하는 새로운 엔드 투 엔드 컴파일러 인프라구조이다. MLIR 기반의 계층적 내림내림과 재사용 가능한 추상화를 활용하여, UPMEM(CNM) 및 메리스터 기반의 CIM 가속기에서 수동 최적화 구현을 뛰어넘는 고성능 코드를 생성한다. 이는 CPU 최적화 기준 대비 최대 5.1배의 성능 향상을 달성한다.
The rise of data-intensive applications exposed the limitations of conventional processor-centric von-Neumann architectures that struggle to meet the off-chip memory bandwidth demand. Therefore, recent innovations in computer architecture advocate compute-in-memory (CIM) and compute-near-memory (CNM), non-von- Neumann paradigms achieving orders-of-magnitude improvements in performance and energy consumption. Despite significant technological breakthroughs in the last few years, the programmability of these systems is still a serious challenge. Their programming models are too low-level and specific to particular system implementations. Since such future architectures are predicted to be highly heterogenous, developing novel compiler abstractions and frameworks become necessary. To this end, we present CINM (Cinnamon), a first end-to-end compilation flow that leverages the hierarchal abstractions to generalize over different CIM and CNM devices and enable device-agnostic and device-aware optimizations. Cinnamon progressively lowers input programs and performs optimizations at each level in the lowering pipeline. To show its efficacy, we evaluate CINM on a set of benchmarks for the well-known UPMEM CNM system and the memristors-based CIM accelerators. We show that Cinnamon, supporting multiple hardware targets, generates high-performance code comparable to or better than state-of-the-art implementations.
연구 동기 및 목표
- 현재 저수준의 디바이스 전용 프로그래밍 모델에 의존하는 새로운 이질적 CIM 및 CNM 시스템에서의 프로그래머블성 문제를 해결한다.
- 재사용 가능한 컴파일러 추상화를 통해 저수준 디바이스 세부 정보를 추상화하여 다양한 CIM 및 CNM 하드웨어에 대한 고수준, 이식 가능한 프로그래밍을 가능하게 한다.
- 이질적 메모리 중심 아키텍처에서 디바이스에 관계없는 최적화와 디바이스에 맞는 최적화를 모두 지원하는 통합 컴파일러 파이프라인을 개발한다.
- 실제 대상, 즉 UPMEM(CNM) 및 메리스터 기반의 CIM 가속기에서 최적화된 코드를 생성하여 프레임워크의 효과성을 입증한다.
- 비버너-뉴먼 하드웨어와 애플리케이션 개발자 간 격차를 해소하기 위해 간결한 고수준 코드를 통해 생산성을 향상시킨다.
제안 방법
- 고수준 커널을 디바이스 전용 코드로 점진적으로 변환하는 계층적 내림내림 파이프라인을 구축하기 위해 MLIR(Multi-Level Intermediate Representation)를 활용한다.
- 모든 CIM 및 CNM 디바이스를 일반화하는 CINM 추상화 계층을 도입하여 통합 인터페이스를 통해 하드웨어 타겟 선택을 가능하게 한다.
- CNM 및 CIM 하드웨어에 맞게 조정된 디바이스 전용 타입, 연산 및 함수를 표현하기 위해 도메인 특화의 다이얼ект인 'cnm'과 'cim'을 정의한다.
- 타일링, 부분 결과 관리, 메모리 액세스 패턴 분석과 같은 재사용 가능하고 조합 가능한 최적화를 적용하여 데이터 국소성 향상과 외부 메모리 이동 감소를 도모한다.
- 기존 및 신규 MLIR 패atters를 활용하여 로드 밸런싱, 데이터 레이아웃 변환, 메모리 계층 구조 인식 기반 코드 생성을 수행한다.
- 일반 목적 및 도메인 특화 워크로드를 모두 지원하기 위해 GEMM, BFS, DNN 커널 등 다양한 벤치마크에 대한 코드 생성을 가능하게 한다.
실험 결과
연구 질문
- RQ1어떻게 통합된 컴파일러 인프라구조를 설계하여 디바이스에 관계없이 컴퓨팅-인-메모리(CIM) 및 컴퓨팅-니어-메모리(CNM) 아키텍처를 지원할 수 있는가?
- RQ2이질적 CIM 및 CNM 시스템의 고수준 프로그래밍을 가능하게 하면서 성능도 유지하기 위해 필요한 추상화와 컴파일러 기법은 무엇인가?
- RQ3재사용 가능한 구성 요소를 갖춘 MLIR 기반의 내림내림 파이프라인은 실제 CIM 및 CNM 가속기에서 수동 최적화된 구현보다 얼마나 뛰어난 성능을 낼 수 있는가?
- RQ4특히 부분 결과 관리 및 타일링 전략을 포함한 프레임워크의 최적화 전략은 다양한 워크로드에서 성능에 어떤 영향을 미치는가?
- RQ5저수준의 디바이스 전용 실현 대비 코드 라인 수를 크게 줄여 프로그래머의 생산성을 향상시킬 수 있는가?
주요 결과
- CINM가 생성한 코드는 UPMEM CNM 시스템에서 CPU 최적화 기준 대비 최대 5.1배의 성능 향상을 달성하였으며, 수동 최적화된 PrIM 대비 평균 1.6×에서 2.0×의 향상이 있었다.
- CINM가 생성한 코드는 저수준의 UPMEM C/C++ 디바이스 코드보다 평균 15배 더 간결하여 프로그래머의 생산성과 유지보수성 향상에 기여했다.
- hst-l 커널의 경우, CINM는 PrIM 최적화 버전 대비 실행 시간을 3.7배 감소시켰으며, 주로 WRAM 활용도 향상과 부분 결과 관리의 우수성 덕분이었다.
- va 커널의 경우, CINM는 평균적으로 PrIM 대비 1.23배 높은 성능을 달성했으며, 특히 데이터 병렬성과 의존성이 없는 워크로드에서 가장 높은 성능 향상이 관찰되었다.
- CINM는 다양한 벤치마크에서 일관된 성능 향상을 보였으며, 수동 최적화된 C/C++ 대비 hst-l 커널에서 코드 라인 수가 22.33배 줄어들었다.
- CINM의 계층적 내림내림과 재사용 가능한 추상화는 메리스터 기반의 CIM 및 UPMEM CNM 시스템을 포함한 여러 하드웨어 타겟에서 효과적인 최적화를 가능하게 하였으며, 포트팅 노력은 최소한으로 유지되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.