Optimization principles and application performance evaluation of a multithreaded GPU using CUDA
By Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David Blair Kirk, Wen-mei W. Hwu. ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, 2008
1,019 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/3bd2467087d06c4b5fc258c30ca5fae90c8bf7d8
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Michael Garland
- Albert Cohen
- Carlos Aguilar Melchor
- José Ignacio Gómez
- Francky Catthoor
- Christian Tenllado
- Juan Carlos Juega
- Shuai Che
In Hardware and Architecture
- Onur Mutlu
- Tor M. Aamodt
- Saugata Ghose
- Kevin Skadron
- Michael Garland
- Shuai Che
- Adwait Jog
- Albert Cohen
Citations in the corpus
- Where is the data? Why you cannot debate CPU vs. GPU performance without the answer (2011, background): “Numerous papers have demonstrated the impressive computing power of GPUs, and speedups of 1000x across a number of different types of applications have been reported over similar algorithms written for CPUs (for example Che et al. [1] and Ryoo et al. [2]).”
- Polyhedral parallel code generation for CUDA (2013, methodology): “have shown that the optimization space for CUDA programs can be highly non-linear, and highly challenging for model-based heuristics, performance modeling, or feedback-directed methods [Ryoo et al. 2008b; Ryoo et al. 2008a].”
- Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing (2012, methodology): “The initial Parboil benchmark set was created at the University of Illinois and used to demonstrate the performance and applicable code optimizations of the first-generation NVIDIA CUDA architecture [8].”
- Program optimization space pruning for a multithreaded gpu (2008, methodology): “Dealing with the memory bandwidth issue using software-managed local memories has been discussed in prior work [5, 22] and is outside the scope of this work.”
- Improving GPU performance via large warps and two-level warp scheduling (2011, methodology): “Previous work [23, 9] has shown that some applications experience an order of magnitude speedup when run on a GPU instead of a CPU.”
- Pegasus: Coordinated Scheduling for Virtualized Accelerator-based Systems (2011, background): “A complete listing appears in Table 1, identifying them as belonging to either the parboil benchmark suite [30] or the CUDA SDK 1.”
- A GPGPU compiler for memory optimization and parallelism management (2010, methodology): “Given the non-linear optimization space, optimizing GPGPU programs has been shown to be highly challenging [14].”
- Analyzing CUDA workloads using a detailed GPU simulator (2009, methodology): “Coulombic Potential [18, 41] CP (8,32,1) (16,8,1) 8 32768 126M No Yes No No gpuDG [46] DG (268,1,1); (84,1,1); 5 22512; 596M Yes No 1D Yes (268,1,1); (112,1,1); 6 30016; Yes (603,1,1) (256,1,1) 4 154368 No”
- PacketShader: a GPU-accelerated software router (2010, background): “By having an enough number of threads, memory stalls can be minimized or even eliminated [43].”
- Kernel Fusion: An Effective Method for Better Power Efficiency on Multithreaded GPU (2010, methodology): “Through fusing two or more independent kernels, kernel fusion method achieves higher utilization and much more balanced demand for hardware resources, which provides much more potential for power optimization, such as dynamic voltage and frequency scaling (DVFS).”
- Auto-tuning a high-level language targeted to GPU codes (2012, neutral): “[31].”
- Demystifying GPU microarchitecture through microbenchmarking (2010, neutral): “No caching effects were observed.”
- Inter-block GPU communication via fast barrier synchronization (2010, methodology): “However, GPUs typically map well only to data or task parallel applications whose execution requires minimal or even no interblock communication [9, 24, 26, 30].”
- OpenMP to GPGPU: a compiler framework for automatic translation and optimization (2009, background): “Also, an experimental study on general optimization strategies for programs on a CUDA-supported GPU has been presented [14].”
- Parallel Computing Experiences with CUDA (2008, background): “Ryoo and colleagues explored the benefits of blocking and loop unrolling, producing a matrix multiplication kernel executing at 91 Gflops.16 The gap with the performance achieved by Volkov and Demmel clearly demonstrates the utility of the additional optimizations they employed, namely storing as mu”
- High-Speed Private Information Retrieval Computation on GPU (2008, background): “As the time of writing, CUDA (”Compute Unified Device Architecture”) seems to exhibit promising results [16, 20].”
- Rodinia: A benchmark suite for heterogeneous computing (2009, methodology): “Some common optimization techniques are discussed in prior work [3], [29].”