ComputingComputer EngineeringComputer ScienceComputer ArchitectureHeterogeneous ComputingParallel ComputingGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingGraphics Processing UnitsKernel ArchitectureKernel DesignKernel ProgrammingExecution Time AnalysisGpu Runtime SystemsHeterogeneous Computing ArchitectureHeterogeneous Computing SystemsHeterogeneous Runtime SystemsKernel OptimizationMulti-core ComputingOpencl Programming
Programming heterogeneous computing systems with Graphics Processing Units (GPU) and multi-core CPUs in them is complex and time-consuming. OpenCL has emerged as an attractive programming framework for heterogeneous systems. But utilizing multiple devices in OpenCL is a challenge because it requires the programmer to explicitly map data and computation to each device. The problem becomes even more complex if the same OpenCL kernel has to be executed synergistically using multiple devices, as the relative execution time of the kernel on different devices can vary significantly, making it difficult to determine the work partitioning across these devices a priori. Also, after each kernel execution, a coherent version of the data needs to be established.
20
Debunking the 100X GPU vs. CPU myth
Victor W. Lee, Changkyu Kim, Jatin Chhugani et al. · 2010 · 626 citations
Chi-Keung Luk, Sunpyo Hong, Hyesoon Kim · 2009 · 512 citations
Auto-tuning a high-level language targeted to GPU codes
Scott Grauer-Gray, Lifan Xu, Robert Searles et al. · 2012 · 460 citations
Jungwon Kim, Sangmin Seo, Jun Lee et al. · 2012 · 182 citations