2015 · 71 citations · 44 references
Hardware SecurityGpu ArchitectureEngineeringCompute KernelGpu BenchmarkingParallel Performance EvaluationComputer EngineeringComputer ArchitectureMaximum Thread-level ParallelismMemory AccessThread SwitchingParallel ProgrammingComputer ScienceParallel ComputingThread-level Parallelism OptimizationGpu ClusterGpu Computing
The key to high performance on GPUs lies in the massive threading to enable thread switching and hide the latency of function unit and memory access. However, running with the maximum thread-level parallelism (TLP) does not necessarily lead to the optimal performance due to the excessive thread contention for cache resource. As a result, thread throttling techniques are employed to limit the number of threads that concurrently execute to preserve the data locality. On the other hand, GPUs are equipped with a large register file to enable fast context switch between threads. However, thread throttling techniques that are designed to mitigate cache contention, lead to under utilization of registers. Register allocation is a significant factor for performance as it not just determines the single-thread performance, but indirectly affects the TLP.
44
Rodinia: A benchmark suite for heterogeneous computing
Shuai Che, Michael Boyer, Jiayuan Meng et al. · 2009 · 3K citations
Analyzing CUDA workloads using a detailed GPU simulator
Ali Bakhoda, George L. Yuan, Wilson Wai Lun Fung et al. · 2009 · 1.6K citations
Register allocation via coloring
Gregory J. Chaitin, Marc Auslander, Ashok K. Chandra et al. · Computer Languages · 1981 · 725 citations
Programming Language Theory, Engineering, Program Analysis +7