2015 · 35 citations · 28 references
ComputingComputer ScienceHigh-performance ComputingCompilersData StructuresParallel ComputingData ParallelismData-flow AnalysisMemory Hierarchy OptimizationMemory ModelingParallel Runtime SystemsShared-memory ParallelismData AccessGlobal Memory Access PatternsGlobal Memory ManagementGpu Runtime SystemsMemory Access Pattern AnalysisMemory Access PatternsMemory CoalescingNon-uniform Memory Access Optimization
Effective parallel programming for GPUs requires careful attention to several factors, including ensuring coalesced access of data from global memory. There is a need for tools that can provide feedback to users about statements in a GPU kernel where non-coalesced data access occurs, and assistance in fixing the problem. In this paper, we address both these needs. We develop a two-stage framework where dynamic analysis is first used to detect and characterize uncoalesced accesses in arbitrary PTX programs. Transformations to optimize global memory access by introducing coalesced access are then implemented, using feedback from the dynamic analysis or using a model-driven approach. Experimental results demonstrate the use of the tools on a number of benchmarks from the Rodinia and Polybench suites.
28
Rodinia: A benchmark suite for heterogeneous computing
Shuai Che, Michael Boyer, Jiayuan Meng et al. · 2009 · 3K citations
The Scalable Heterogeneous Computing (SHOC) benchmark suite
Anthony Danalis, Gabriel Marin, Collin McCurdy et al. · 2010 · 668 citations
Auto-tuning a high-level language targeted to GPU codes
Scott Grauer-Gray, Lifan Xu, Robert Searles et al. · 2012 · 460 citations