Improving Cache Locality in Processing-in-Memory Accelerator for Parallel Graph Processing
Hessa Alshamsi, Tae Hee Han · Journal of the Institute of Electronics and Information Engineers · 2021
Processing-in-memory (PIM)은 그래프 프로세싱의 방대한 데이터 이동 문제를 해결하기 위해 각광받고 있는 솔루션이다. 이를 위해 프로세서를 메모리에 인접한 위치에 배치하여 연산을 수행한다. 하지만 그래프 알고리즘은 불규칙한 메모리 접근 패턴으로 인해 지역성이 좋지못하다. 또한 그래프의 불규칙한 구조는 모든 캐시 미스에 대해 주 메모리에서 데이터 요청을 발생시키기 때문에 시스템 성능을 제한한다. 본 논문에서는 메시지 큐 관리를 통해 PIM 기반 가속기의 캐시 지역성을 개선하는 솔루션을 제안한다. 가속기는 불규칙한 메모리 접근 패턴을 위해 message-triggered 프리페처를 사용하지만 캐시 미스와 주 메모리 접근은 피할 수 없는 문제이다. 우리는 캐시 활용도를 더욱 향상시키기 위해 대기열에 대한 정렬 알고리즘을 연구하였으며, gem5 시뮬레이터를 기반으로 두 개의 그래프 알고리즘 벤치마크에 두 개의 실제 그래프를 적용한 시스템의 성능을 측정하였다. Tesseract 대비 에너지 소비의 증가 없이 PIM system의 miss coverage가 평균 11% 향상되었다.