PIMID: 복잡성과 다양성을 갖춘 Processing-in-Memory를 위한 풀 시스템 시뮬레이터
요약
PIMID는 다양한 메모리 기술과 실행 모델을 지원하는 풀 시스템 시뮬레이터입니다. 기존 시뮬레이터의 한계를 넘어 메모리 계층 구조와 호스트-디바이스 간의 엔드 투 엔드 시간 및 에너지 분석을 제공합니다.
핵심 포인트
- 11가지 메모리 기술 및 공유 메모리/메시지 패싱 모델 지원
- 서브어레이부터 로직 다이까지 유연한 PE 배치 가능
- 호스트-디바이스 공동 시뮬레이션을 통한 엔드 투 엔드 분석
- 메모리 기술 및 인메모리 네트워크 비용의 영향력 입증
- 플러그인 인터페이스를 통한 새로운 엔진 및 모델 확장성
Processing-in-Memory (PIM)는 연산을 메모리와 함께 배치함으로써 메모리 벽 (memory wall) 문제를 해결하지만, 실제 PIM 하드웨어는 여전히 부족하기 때문에 시뮬레이션이 PIM 설계 공간을 탐색하는 주요한 방법입니다. 그러나 기존의 PIM 시뮬레이터들은 각각 설계 공간의 일부만을 다룹니다. 이들은 일반적으로 단일 메모리 기술만을 모델링하고, 메모리 계층 구조의 특정 레벨에 프로세싱 엘리먼트 (PE)를 고정하며, 단일 실행 모델만을 지원하고, 디바이스 경계에서 멈춥니다. 따라서 우리는 이러한 격차를 하나의 도구로 메우는 실행 및 트레이스 기반 (execution- and trace-driven) 풀 시스템 시뮬레이터인 PIMID를 선보입니다. PIMID는 공유 메모리 (shared-memory) 및 메시지 패싱 (message-passing) 실행 모델을 모두 지원하며, 11가지 메모리 기술 (7가지 DRAM 표준, SRAM, 3가지 비휘발성 메모리)에 걸쳐 OpenMP 및 MPI로 주석 처리된 병렬 코드를 나란히 실행합니다. 또한 PE를 서브어레이 (subarray)부터 로직 다이 (logic die)까지 어디든 배치할 수 있으며, PE 개수와 코어 모델의 충실도 (fidelity)를 탐색하고, 측정된 혼잡도 (congestion)를 바탕으로 기술별 인메모리 네트워크 비용을 산출합니다. PIMID의 단일 프로세스 호스트-디바이스 공동 시뮬레이션 (host-device co-simulation)은 디바이스 전용 도구로는 생성할 수 없는 엔드 투 엔드 (end-to-end) 시간 및 에너지 분석 (호스트 준비, 디바이스 연산, 명시적 경계 비용)을 해결합니다. 결과적으로 도출된 이중 실행 모델 데이터셋을 통해, PIMID는 메모리 기술만으로도 실행 시간이 한 자릿수(order of magnitude) 이상 변할 수 있다는 점과 최적의 호스트 메인 메모리가 최적의 PIM 기판 (substrate)은 아니라는 점을 보여줍니다. 또한 인메모리 대역폭이 연산과 함께 확장됨에 따라 정규 커널 (regular kernels)이 PE 개수에 따라 초선형적 (superlinearly)으로 확장된다는 것, 메시지 패싱 환경에서의 그래프 순회 (graph traversal)는 공유 메모리 환경에는 없는 집합 통신 벽 (collective-communication wall)에 부딪힌다는 것, 그리고 풀 시스템 범위에서 오프로딩 (offload)은 대역폭급 메모리에서만 시간을 에너지로 교환한다는 것을 보여줍니다. 즉, 공유 메모리 오프로딩은 HBM3에서 에너지를 절약하는 반면, 16코어 호스트는 모든 엔드 투 엔드 시간 이득을 유지합니다. PIMID의 플러그인 인터페이스를 통해 PIM 기술이 진화함에 따라 표준화된 YAML 사양을 통해 새로운 엔진과 모델을 추가할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기