Lassen Sie mich nur auf CUDA und BLAS konzentrieren.
Beschleunigung über eine Host-BLAS-Implementierung ist keine gute Metrik zur Beurteilung des Durchsatzes, da sie von zu vielen Faktoren abhängt, obwohl ich der Meinung bin, dass Beschleunigung normalerweise das ist, worum es einem geht.
Wenn Sie sich die von NVIDIA veröffentlichten Benchmarks ansehen und berücksichtigen, dass der Tesla M2090 eine Spitzenleistung von 1331 Gigaflops (einfache Genauigkeit) und 665 Gigaflops (doppelte Genauigkeit) aufweist, werden Sie feststellen, dass wir für SGEMM und DGEMM einen gemessenen Durchsatz von nahezu bei haben 60% der theoretischen, was ziemlich gut ist.
2mnkm×kk×n
In Bezug auf den anhaltenden Gleitkommadurchsatz denke ich, dass Flops ohne Berücksichtigung von Daten und Ergebnisübertragungszeiten berechnet werden sollten, und dies erschwert Vergleiche bei der Beschleunigung. Außerdem müssen Sie die Matrixgröße berücksichtigen, da die beste Leistung für große Matrizen erzielt wird.
Fazit: Die Beschleunigung einer realen Anwendung kann sich stark von der gemessenen Spitzenleistung bei linearen Algebra-Routinen unterscheiden, da Sie die GPU-Initialisierung, Datenübertragungszeiten usw. usw. berücksichtigen müssen.
Daher werde ich Ihre Frage zur schnellsten Bibliothek nicht beantworten, da die Frage nur dann sinnvoll ist, wenn eine genaue Metrik und ein genaues Problem definiert sind. Trotzdem denke ich, dass cuBLAS und MAGMA ein sehr guter Ausgangspunkt sind.