मैं समांतर प्रोग्रामिंग में शुरुआत कर रहा हूं। मेरे पास एक प्रश्न है जो मूर्खतापूर्ण प्रतीत हो सकता है लेकिन जब मैंने इसे बाहर निकाला तो मुझे एक निश्चित जवाब नहीं मिला।GPU CPU या CPU से पढ़ता है GPU को लिखता है?
जीपीयू कंप्यूटिंग में एक डिवाइस है यानी जीपीयू और मेजबान यानी सीपीयू है। मैंने एक सरल हैलो वर्ल्ड प्रोग्राम लिखा है जो जीपीयू पर कुछ मेमोरी आवंटित करेगा, कर्नेल में दो पैरामीटर (src [] और dest []] कहें, कॉपी स्ट्रिंग यानी हैलो वर्ल्ड स्ट्रिंग को स्ट्रिंग करें और dest स्ट्रिंग को gpu से प्राप्त करें मेज़बान।
क्या GPU या CPU द्वारा पढ़ी गई स्ट्रिंग "src" GPU को लिखती है? साथ ही जब हम GPU से स्ट्रिंग वापस लेते हैं, तो GPU को CPU या CPU को GPU से पढ़ने के लिए लिखा जाता है?
डेटा आगे और पीछे स्थानांतरित में वहाँ चार संभावनाएँ 1. सीपीयू GPU के लिए हो सकता है - सीपीयू GPU लिए लिखते हैं - GPU सीपीयू के रूप सीपीयू 2. GPU पढ़ता है - GPU सीपीयू लिए लिखते हैं - सीपीयू GPU
से पढ़ता है क्या कोई यह बता सकता है कि इनमें से कौन सा संभव है और कौन नहीं है?
जो विभिन्न सिंक्रनाइज़ नियंत्रकों के माध्यम से डीएमए (http://en.wikipedia.org/wiki/Direct_memory_access) तक उबाल जाता है। – Ani
बहुत बहुत धन्यवाद। यह जानना अच्छा है कि जीपीयू भी लेन-देन शुरू कर सकता है। तो क्या यह जानने का कोई तरीका है कि ओपनक्ल में लाइब्रेरी रूटीन का उपयोग करके वास्तव में लेन-देन किसने शुरू किया? या दिनचर्या जिसका उपयोग मैं या तो सीपीयू या जीपीयू को लेनदेन करने के लिए मजबूर कर सकता हूं ..? – Nike
मुझे ओपनसीएल के साथ-साथ मुझे नहीं पता होना चाहिए; कहा जा रहा है कि, मुझे आश्चर्य होगा कि अगर CUDA ने आपको कुछ वर्चुअल एड्रेस स्पेस में एक चर रहता था, तो यह देखने के लिए * कुछ * तरीका नहीं दिया। उस प्रकार की जानकारी उपयोगी हो सकती है, यहां तक कि स्पष्ट रूप से प्रबंधित स्थानान्तरण के उपयोग-मामले के बाहर भी (जो नए संस्करणों को अभी भी समर्थन देना चाहिए)। – Patrick87