मुझे केवल CUDA और BLAS पर ध्यान देना चाहिए।
एक होस्ट बीएलएएस कार्यान्वयन पर स्पीडअप थ्रूपुट का आकलन करने के लिए एक अच्छा मीट्रिक नहीं है, क्योंकि यह बहुत अधिक कारकों पर निर्भर करता है, हालांकि मैं मानता हूं कि स्पीडअप आमतौर पर एक की परवाह करता है।
यदि आप NVIDIA द्वारा प्रकाशित बेंचमार्क को देखते हैं और ध्यान दें कि टेस्ला M2090 में 1331 गिगाफ्लॉप्स (एकल परिशुद्धता) और 665 गीगाफ्लॉप्स (डबल प्री।) पीक प्रदर्शन हैं, तो आप देखेंगे कि SGEMM और DGEMM के लिए हमारे पास एक मापा थ्रूपुट है। 60% सैद्धांतिक एक, जो बहुत अच्छा है।
2m n kएम × केके × एन
जैसा कि निरंतर फ्लोटिंग पॉइंट थ्रूपुट का संबंध है, मुझे लगता है कि फ्लॉप की गणना डेटा और परिणाम हस्तांतरण के समय को ध्यान में रखते हुए की जानी चाहिए, और इससे स्पीडअप तुलना मुश्किल हो जाती है। इसके अलावा आपको मैट्रिक्स के आकार को ध्यान में रखना होगा, क्योंकि सबसे अच्छा प्रदर्शन बड़े मैट्रिस के लिए है।
नीचे पंक्ति: एक वास्तविक जीवन एप्लिकेशन का स्पीडअप रैखिक बीजगणित दिनचर्या पर चोटी के मापा प्रदर्शन से बहुत अलग हो सकता है, क्योंकि आपको जीपीयू आरंभीकरण, डेटा स्थानांतरण समय, आदि को ध्यान में रखना होगा।
इसलिए मैं सबसे तेज़ लाइब्रेरी के बारे में आपके सवाल का जवाब नहीं दूंगा, क्योंकि इस सवाल का कोई मतलब नहीं है जब तक कि एक सटीक मीट्रिक और समस्या को परिभाषित नहीं किया जाता है। यह सब कहा, मुझे लगता है कि cuBLAS और MAGMA एक बहुत अच्छा प्रारंभिक बिंदु हैं।