EngineeringComputer ScienceComputer SystemsComputer ArchitectureMemoryParallel ComputingGraphics Processing Unit ArchitectureGraphics Processing UnitsMemory HierarchyMemory Hierarchy DesignMemory Hierarchy OptimizationMemory Subsystem DesignApplication Performance OptimizationMemory Access Pattern AnalysisMemory Access PatternsMemory BandwidthMemory Bandwidth OptimizationMemory Interface ArchitectureMemory Interface DesignMemory Management Interface
Graphics processors (GPUs) have emerged as an important platform for general purpose computing. GPUs offer a large number of parallel cores and have access to high memory bandwidth; however, data structure layouts in GPU memory often lead to suboptimal performance for programs designed with a CPU memory interface---or no particular memory interface at all!---in mind. This implies that application performance is highly sensitive irregularity in memory access patterns. This issue is all the more important due to the growing disparity between core and DRAM clocks; memory interfaces have increasingly become bottlenecks in computer systems.
18
Rodinia: A benchmark suite for heterogeneous computing
Shuai Che, Michael Boyer, Jiayuan Meng et al. · 2009 · 3K citations
Scalable parallel programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · 2008 · 1.6K citations
Scalable Parallel Programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · Queue · 2008 · 1.6K citations · Full text
NVIDIA Tesla: A Unified Graphics and Computing Architecture
Erik Lindholm, John Nickolls, Stuart F. Oberman et al. · IEEE Micro · 2008 · 1.3K citations