Title :
Performance upper bound analysis and optimization of SGEMM on Fermi and Kepler GPUs
Author :
Junjie Lai ; Seznec, Andre
Author_Institution :
INRIA, Sophia-Antipolis, France
Abstract :
In this paper, we present an approach to estimate GPU applications´ performance upper bound based on algorithm analysis and assembly code level benchmarking. As an example, we analyze the potential peak performance of SGEMM (Single-precision General Matrix Multiply) on Fermi (GF110) and Kepler (GK104) GPUs. We try to answer the question of how much optimization space is left for SGEMM and why. According to our analysis, the nature of Fermi (Kepler) instruction set and the limited issue throughput of the schedulers are the main limitation factors for SGEMM to approach the theoretical peak performance. The estimated upper-bound peak performance of SGEMM is around 82.5% of the theoretical peak performance on GTX580 Fermi GPU and 57.6% on GTX680 Kepler GPU. Guided by this analysis and using the native assembly language, on average, our SGEMM implementations achieve about 5% better performance than CUBLAS in CUDA 4.1 SDK for large matrices on GTX580. The achieved performance is around 90% of the estimated upper-bound performance of SGEMM on GTX580. On GTX680, the best performance we achieve is around 77.3% of the estimated performance upper bound. We also describe how to use native assembly language directly in the CUDA runtime source code.
Keywords :
graphics processing units; parallel architectures; performance evaluation; CUDA runtime source code; GTX580 Fermi GPU; GTX680 Kepler GPU; SGEMM; assembly code level benchmarking; instruction set; large matrices; native assembly language; optimization; optimization space; performance upper bound analysis; single-precision general matrix multiply; upper-bound peak performance; upper-bound performance; Assembly; Clocks; Graphics processing units; Instruction sets; Optimization; Registers; Throughput; CUDA; Fermi GPU; Kepler GPU; Performance Upper Bound Analysis; SGEMM;
Conference_Titel :
Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on
Conference_Location :
Shenzhen
Print_ISBN :
978-1-4673-5524-7
DOI :
10.1109/CGO.2013.6494986