मैं इसे अजीब ध्वनि पता है, लेकिन यहाँ मेरे परिदृश्य है:क्या एक CUDA कर्नेल एक क्यूबस फ़ंक्शन कॉल कर सकता है?
मैं एक मैट्रिक्स आव्यूह गुणन (ए (एन * ट) * बी (कश्मीर * एन)), लेकिन मैं केवल विकर्ण तत्वों की जरूरत है क्या करने की जरूरत आउटपुट मैट्रिक्स के लिए मूल्यांकन किया जाना है। मैंने कुब्ला पुस्तकालय की खोज की और उसे कोई स्तर 2 या 3 फ़ंक्शंस नहीं मिला जो ऐसा कर सकता है। तो, मैंने ए की प्रत्येक पंक्ति और बी के प्रत्येक कॉलम को CUDA थ्रेड में वितरित करने का निर्णय लिया। प्रत्येक थ्रेड (आईडीएक्स) के लिए, मुझे डॉट उत्पाद "ए [idx,:] * बी [:, idx]" की गणना करने की आवश्यकता है और इसे इसी विकर्ण आउटपुट के रूप में सहेजें। अब चूंकि इस डॉट उत्पाद में कुछ समय लगता है, और मुझे आश्चर्य है कि मैं इसे प्राप्त करने के लिए किसी भी तरह से क्यूब्ला फ़ंक्शन कह सकता हूं (cublasSdot कहें)।
अगर मुझे कुछ कुब्बल फ़ंक्शन याद आते हैं जो मेरे लक्ष्य को सीधे प्राप्त कर सकते हैं (केवल मैट्रिक्स-मैट्रिक्स गुणा के लिए विकर्ण तत्वों की गणना करें), तो इस प्रश्न को त्याग दिया जा सकता है।
ध्यान दें कि गतिशील समानांतरवाद, विशेषता यह है कि नेस्टेड गिरी कॉल की अनुमति देता है, केवल केपलर GK110, एक चिप है कि अभी-अभी जारी किया जा रहा पर समर्थित है। GK110, गतिशील parallism समर्थित न हो, सही प्रीमियम कीमत गणना उत्पादों में ही उपलब्ध है, तो टेस्ला m2090 के लिए अमरीकी डालर 3200 के –
पर टेस्ला K20 जा रहा है मध्य स्तर उत्पाद है, जो एक फर्मी GPU है के साथ? –
यह निश्चित रूप से समर्थित नहीं है, आप GPU पर ऐसा करने के लिए एक अलग कर्नेल बना सकते हैं – RSFalcon7