मेरे पास ओपनब्लैस के साथ संकलित है और मुझे आश्चर्य है कि क्यों डिन की तुलना में इन्सम बहुत धीमी है (मैं 3 सूचकांक मामले में समझता हूं, लेकिन मुझे नहीं पता कि यह दो सूचकांक मामले में भी कम प्रदर्शनकारी क्यों है)? यहां एक उदाहरण:numpy.einsum से numpy.dot बहुत तेज़ क्यों है?
import numpy as np
A = np.random.random([1000,1000])
B = np.random.random([1000,1000])
%timeit np.dot(A,B)
Out: 10 loops, best of 3: 26.3 ms per loop
%timeit np.einsum("ij,jk",A,B)
Out: 5 loops, best of 3: 477 ms per loop
क्या ईन्सम ओपनब्लैस और numpy.dot जैसे समांतरता का उपयोग करने का कोई तरीका है? एनपी.इन्सम क्यों न सिर्फ np.dot को कॉल करता है अगर यह एक डॉट उत्पाद को नोटिस करता है?
संबंधित: http://stackoverflow.com/questions/20149201/why-is-numpys-einsum-slower-than-numpys-built-in-functions –
यह सच है, लेकिन मेरे प्रश्न दो सूचकांक से संबंधित हैं मामला। दिए गए पद में दिए गए जवाब मुझे इंप्रेशन देते हैं कि तीन सूचकांक के साथ समस्याएं हैं। मुझे आश्चर्य हुआ कि इस विशिष्ट परीक्षा में गति का अंतर इतना प्रभावशाली है। – varantir
क्योंकि ईन्सम सामान्य होने के लिए लिखा गया है और ब्लैस का उपयोग करने के लिए दो इंडेक्स डॉट उत्पाद विशेष मामले नहीं है। यह वास्तव में नीचे की रेखा है। यदि आप जानते हैं कि आपके पास केवल दो इंडेक्स हैं, तो बस डॉट का उपयोग करें। – BeRecursive