Litcius/Paper detail

Snake: A Variable-length Chain-based Prefetching for GPUs

Saba Mostofi, Hajar Falahati, Negin Mahani, Pejman Lotfi-Kamran, Hamid Sarbazi‐Azad

202310 citationsDOIOpen Access PDF

Abstract

Graphics Processing Units (GPUs) utilize memory hierarchy and Thread-Level Parallelism (TLP) to tolerate off-chip memory latency, which is a significant bottleneck for memory-bound applications. However, parallel threads generate a large number of memory requests, which increases the average memory latency and degrades cache performance due to high contention. Prefetching is an effective technique to reduce memory access latency, and prior research shows the positive impact of stride-based prefetching on GPU performance. However, existing prefetching methods only rely on fixed strides. To address this limitation, this paper proposes a new prefetching technique, Snake, which is built upon chains of variable strides, using throttling and memory decoupling strategies. Snake achieves 80% coverage and 75% accuracy in prefetching demand memory requests, resulting in a 17% improvement in total GPU performance and energy consumption for memory-bound General-Purpose Graphics Processing Unit (GPGPU) applications.

Topics & Concepts

Computer scienceParallel computingBottleneckCAS latencyGraphics processing unitGeneral-purpose computing on graphics processing unitsMemory hierarchyThread (computing)CacheLatency (audio)Non-uniform memory accessUniform memory accessGraphicsCPU cacheMemory managementOperating systemEmbedded systemCache coloringSemiconductor memoryMemory controllerTelecommunicationsParallel Computing and Optimization TechniquesAdvanced Data Storage TechnologiesCloud Computing and Resource Management