Key points are not available for this paper at this time.
In diesem Papier präsentieren wir einen Ansatz zur Schätzung der Leistungsobergrenze von GPU-Anwendungen auf Grundlage von Algorithmusanalysen und Benchmarking auf der Ebene von Assemblersprachen. Als Beispiel analysieren wir die potenziell maximale Leistung von SGEMM (Single-precision General Matrix Multiply) auf Fermi (GF110) und Kepler (GK104) GPUs. Wir versuchen, die Frage zu beantworten, wie viel Optimierungsraum für SGEMM verbleibt und warum. Laut unserer Analyse sind die Beschaffenheit des Befehlssatzes von Fermi (Kepler) und der eingeschränkte Ausgaberaten der Scheduler die Hauptfaktoren, die die Leistung von SGEMM daran hindern, die theoretische Spitzenleistung zu erreichen. Die geschätzte Obergrenze der Spitzenleistung von SGEMM liegt bei etwa 82,5 % der theoretischen Spitzenleistung auf der GTX580 Fermi GPU und 57,6 % auf der GTX680 Kepler GPU. Gemäß dieser Analyse und unter Verwendung der nativen Assemblersprache erreichen unsere SGEMM-Implementierungen im Durchschnitt etwa 5 % bessere Leistungen als CUBLAS im CUDA 4.1 SDK für große Matrizen auf der GTX580. Die erzielte Leistung liegt bei etwa 90 % der geschätzten Leistungsobergrenze von SGEMM auf der GTX580. Auf der GTX680 beträgt die beste erreichte Leistung etwa 77,3 % der geschätzten Leistungsobergrenze. Wir beschreiben auch, wie man die native Assemblersprache direkt im Quellcode der CUDA-Laufzeit verwenden kann.
Lai et al. (Fri,) haben diese Frage untersucht.