Computing-in-DRAM을 위한 gem5 기반 시뮬레이션 프레임워크
요약
본 논문은 DRAM 내 컴퓨팅(CIMD)을 위한 새로운 전체 애플리케이션 시뮬레이션 프레임워크인 gem5-CIMD를 제시합니다. 이 프레임워크는 최신 gem5 기반으로 구축되었으며, 16가지 CIM 명령어를 지원하고 완벽한 메모리 관리 스택을 갖추어 다양한 워크로드를 평가할 수 있게 합니다.
핵심 포인트
- 최신 gem5 기반의 전체 애플리케이션 CIMD 시뮬레이터 제공
- 산술, 관계, 조건 등 16가지 CIM 명령어 세트 확장 지원
- CIM 피연산자 공존을 위한 메모리 관리 스택 구현
- DRAM 리프레시 간격까지 모델링하여 현실성 확보
DRAM 내에서 컴퓨팅(CIMD)은 벌크 비트 단위 연산으로 구성된 메모리 바운드 워크로드에 대해 DRAM 서브어레이 내부에서 직접 계산을 수행함으로써 상당한 에너지 및 처리량 향상을 보여주었습니다. 하지만 CIMD를 구현하려면 메모리 컨트롤러의 재설계와 피연산자(operands)를 메모리 배열에 신중하게 매핑하는 작업이 필요합니다. 현재는 정확한 FPGA 기반 테스트베드가 존재하지만, 비용이 많이 들고 노동 집약적이며, 오픈 소스 시뮬레이터들은 대부분 트레이스 기반이라 전체 애플리케이션 실행을 수행할 수 없습니다. 사용 가능한 유일한 전체 애플리케이션 CIMD 시뮬레이터인 MIMDRAM에 포함된 것은 오래된 버전의 gem5와 그 툴체인으로 구축되어 있습니다. 본 논문에서는 최신 버전의 gem5를 기반으로 구축된, 전체 애플리케이션 CIMD 시뮬레이션 프레임워크인 gem5-CIMD를 제시합니다. 우리는 시뮬레이션 명령어 세트를 네 가지 비트 단위 연산에서 확장하여 산술(arithmetic), 관계(relational), 조건(conditional), 유틸리티(utility) 연산을 아우르는 16가지 CIM 명령어로 확장했으며, 이는 다양한 데이터 유형과 비트폭(4비트부터 64비트까지)에 걸쳐 적용됩니다. 다단계 거대 페이지 지원, CIM 인식 할당자(CIM-aware allocator), 서브어레이 인식 주소 매핑 방식 등으로 구성된 완벽한 메모리 관리 스택은 CIM 피연산자들이 동일한 DRAM 서브어레이 내에 공존하도록 보장합니다. 또한, gem5-CIMD는 DRAM 리프레시 간격(refresh interval)을 인지하고 필요할 때 필수적인 리프레시 작업을 충실하게 모델링하고 스케줄링합니다. 우리는 컴파일러 타겟으로 의도된 CIM 표준 라이브러리를 제공하며, KNN 워크로드를 포함한 여러 사례 연구에서 gem5-CIMD를 평가합니다. 평가에 사용된 워크로드를 포함하여 시뮬레이터 소스 코드는 공개적으로 이용 가능합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기