GPU는 긴 메모리 지연 시간을 견디기 위해 대규모 스레드 레벨 병렬 처리(thread-level parallelism)에 의존하지만, 많은 워프(warps)가 동시에 메모리 시스템으로부터 데이터를 기다릴 때 여전히 심각한 정지(stalls)를 겪습니다. 주소 예측 기반 GPU 프리페처(address-prediction-based GPU prefetchers)는 이러한 정지를 완화할 수 있지만, 정확한 예측만으로는 성능 향상을 보장하지 못합니다. 예측된 프리페치가 유익하려면 발행할 가치가 있어야 하고, 적절한 시점에 도착해야 하며, 해로운 간섭 없이 유지되어야 합니다. 이 요구사항들은 서로 상호작용하기 때문에, 단일 차원만을 고립적으로 최적화하는 것은 단순히 병목 현상을 다른 곳으로 옮길 뿐입니다.
우리는 이러한 요구사항들을 예측된 프리페치에서 실현되는 이점(predicted-prefetch-to-realized-benefit) 관점으로 포착하고, 주소 예측 기반 GPU 프리페처를 위한 통합 백엔드 프리페치 제어 프레임워크인 SnakeCharmer를 제안합니다. SnakeCharmer는 주소 예측과 프리페치 실현을 분리합니다: 프론트엔드 예측기(frontend predictor)가 프리페치 후보군을 생성하는 동안, 백엔드 제어 경로(backend control path)는 각 후보군이 발행되어야 하는지 여부, 언제 발행되어야 하는지, 그리고 반환된 데이터가 어디에 유지되어야 하는지를 결정함으로써 유용성(utility), 적시성(timeliness), 배치를 공동으로 제어합니다.
SnakeCharmer는 유용성을 위한 제로-값 인식 필터링(zero-value-aware filtering), 적시성을 위한 계층적 피드백 기반 거리 튜닝(hierarchical feedback-driven distance tuning), 그리고 배치(placement)를 위한 레지스터 지원 프리페치 버퍼(register-assisted prefetch buffer)를 통해 이러한 제어 경로를 실현합니다. 우리는 SnakeCharmer를 주로 Snake 위에 설계하고 구현했으며, 동일한 백엔드 제어 원칙을 APOGEE에 적용하여 SnakeCharmer의 이점이 단일 프론트엔드 예측기에 국한되지 않음을 입증했습니다. A100 GPU 모델에서 SnakeCharmer는 적당한 하드웨어 오버헤드를 가지면서도, Snake 대비 성능/에너지 효율성을 12.8%/20.8% 향상시키고, APOGEE 대비로는 1.7%/3.2%를 향상시켰습니다.