2012 · 99 citations · 35 references
ComputingComputer EngineeringComputer ScienceHeterogeneous ComputingParallel ComputingSchedulingBuffer ManagementHeterogeneous System ArchitectureMemory Hierarchy DesignMemory Hierarchy OptimizationMemory Subsystem DesignShared-memory MultiprocessingGpu IntegrationHardware SchedulingHeterogeneous Multicore SystemsHigh PerformanceIntegrated Cpu-gpu MemoryMemory Controller DesignMemory SchedulingRequest Scheduling
When CPUs and GPUs share off‑chip memory, GPU traffic can starve CPU cores, and existing application‑aware schedulers fail to mitigate this due to high GPU traffic and the need for large request buffers. This work introduces a new memory controller design that splits the controller’s three main functions into three simpler components to boost performance and fairness in integrated CPU‑GPU systems. The proposed three‑stage controller first groups requests by row‑buffer locality, then schedules inter‑application requests, and finally uses per‑bank FIFO queues with minimal command reordering to handle low‑level DRAM operations. Evaluations show that the Staged Memory Scheduler improves CPU performance while keeping GPU frame rates acceptable, is simpler to implement than prior schedulers, and can be tuned to prioritize either CPU or GPU workloads.
When multiple processor (CPU) cores and a GPU integrated together on the same chip share the off-chip main memory, requests from the GPU can heavily interfere with requests from the CPU cores, leading to low system performance and starvation of CPU cores. Unfortunately, state-of-the-art application-aware memory scheduling algorithms are ineffective at solving this problem at low complexity due to the large amount of GPU traffic. A large and costly request buffer is needed to provide these algorithms with enough visibility across the global request stream, requiring relatively complex hardware implementations. This paper proposes a fundamentally new approach that decouples the memory controller's three primary tasks into three significantly simpler structures that together improve system performance and fairness, especially in integrated CPU-GPU systems. Our three-stage memory controller first groups requests based on row-buffer locality. This grouping allows the second stage to focus only on inter-application request scheduling. These two stages enforce high-level policies regarding performance and fairness, and therefore the last stage consists of simple per-bank FIFO queues (no further command reordering within each bank) and straightforward logic that deals only with low-level DRAM commands and timing. We evaluate the design trade-offs involved in our Staged Memory Scheduler (SMS) and compare it against three state-of-the-art memory controller designs. Our evaluations show that SMS improves CPU performance without degrading GPU frame rate beyond a generally acceptable level, while being significantly less complex to implement than previous application-aware schedulers. Furthermore, SMS can be configured by the system software to prioritize the CPU or the GPU at varying levels to address different performance needs.
35
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · 2005 · 2.3K citations
NVIDIA Tesla: A Unified Graphics and Computing Architecture
Erik Lindholm, John Nickolls, Stuart F. Oberman et al. · IEEE Micro · 2008 · 1.3K citations
Scott Rixner, William J. Dally, Ujval J. Kapasi et al. · 2000 · 966 citations · Full text
Debunking the 100X GPU vs. CPU myth
Victor W. Lee, Changkyu Kim, Jatin Chhugani et al. · 2010 · 626 citations