I detta dokument presenterar vi en metod för att uppskatta GPU-tillämpningars prestanda övre gräns baserat på algoritmanalys och benchmarking av monteringskoder. Som exempel analyserar vi den potentiella toppprestandan för SGEMM (Single-precision General Matrix Multiply) på Fermi (GF110) och Kepler (GK104) GPU. Vi försöker besvara frågan om hur mycket optimeringsutrymme som finns kvar för SGEMM och varför. Enligt vår analys, arten av Fermi (Kepler) instruktion uppsättning och den begränsade emissionen genomströmning av schemaläggare är de viktigaste begränsningsfaktorerna för SGEMM att närma sig den teoretiska toppprestanda. Den uppskattade toppprestandan för SGEMM är cirka 82,5 % av den teoretiska toppprestandan för GTX580 Fermi GPU och 57,6 % för GTX680 Kepler GPU. Med hjälp av denna analys och det inhemska monteringsspråket uppnår våra SGEMM-implementationer i genomsnitt cirka 5 % bättre prestanda än CUBLAS i CUDA 4.1 SDK för stora matriser på GTX580. Den uppnådda prestandan är cirka 90 % av SGEMM:s uppskattade prestanda på GTX580. På GTX680 är den bästa prestandan vi uppnår cirka 77,3% av den uppskattade prestandan övre gräns. Vi beskriver också hur man använder modersmål direkt i CUDA runtime källkod.
Lai och Seznec REF föreslår en metod som kallas registerblockering för att undersöka den potentiella toppprestandan för SGEMM på Fermi och Kepler GPU.
Performance upper bound analysis and optimization of SGEMM on Fermi and Kepler GPUs
{'venue': 'Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)', 'journal': 'Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)', 'mag_field_of_study': ['Computer Science']}