मिलिए एनवीडिया के इयान बक . से
आज चैट करने के लिए समय निकालने के लिए धन्यवाद। आइए कुछ बुनियादी बातों से शुरू करते हैं। आप हमारे पाठकों को अपने बारे में थोड़ा और एनवीडिया में वर्तमान में क्या करते हैं, यह क्यों नहीं बताते?
मैं यहां एनवीडिया में जीपीयू कंप्यूटिंग के लिए सॉफ्टवेयर निदेशक हूं। मेरा मुख्य ध्यान एक संपूर्ण GPU कंप्यूटिंग प्लेटफॉर्म का निर्माण और विकास करना है, जिसमें सिस्टम सॉफ्टवेयर, डेवलपर टूल, भाषा और कंपाइलर दिशा, पुस्तकालय, और लक्षित एप्लिकेशन और एल्गोरिदम शामिल हैं। एक महान टीम की मदद से, हम दोनों एंड-यूज़र सॉफ़्टवेयर विकसित करते हैं और साथ ही एनवीडिया के भीतर GPU कंप्यूटिंग के लिए दिशा निर्धारित करते हैं।
हम शुरुआत से ही शुरुआत क्यों नहीं करते? मुझे लगता है कि जीपीजीपीयू में आपकी रुचि तब शुरू नहीं हुई थी जब आप 5 साल के थे – प्रिंसटन या स्टैनफोर्ड में ऐसी कौन सी घटनाएँ चल रही थीं जिससे वास्तव में आपको जीपीजीपीयू में रुचि का पता चला?
मैंने अपने प्रिंसटन के दिनों में GPU कंप्यूटिंग में काम किया, ग्राफिक्स हार्डवेयर पर थर्मल संवहन और द्रव सिमुलेशन के साथ प्रयोग किया, जो उस समय SGI O2 था। हालाँकि चीजें इतनी विवश थीं, लेकिन इसके लिए मामला बनाना मुश्किल था।
स्टैनफोर्ड में अपने पीएचडी शोध के दौरान मैंने गंभीरता से जीपीयू कंप्यूटिंग को देखना शुरू कर दिया। स्टैनफोर्ड में, मैंने, अनुसंधान समुदाय के अन्य लोगों के साथ महसूस किया कि प्रोग्राम योग्य ग्राफिक्स की प्राकृतिक प्रगति एक अधिक सामान्य प्रयोजन प्रोसेसर में GPU का विकास था। हमने बात को साबित करने में मदद करने के लिए DX9-क्लास GPU हार्डवेयर के साथ रे ट्रेसिंग पर पहले SIGGRAPH पेपर में से एक लिखा। काम के बारे में इतना प्रेरक यह था कि यह कमोडिटी प्रोसेसर, जो हर किसी के पीसी में उपलब्ध था, मूर के नियम का पालन कर रहा था, सीपीयू की तुलना में तेजी से प्रदर्शन वृद्धि दर। इसने सवाल उठाया: एक पीसी क्या कर सकता है यदि उसके पास कई ऑर्डर परिमाण आज की तुलना में अधिक कंप्यूटिंग हॉर्स पावर है? कम्प्यूटेशनल विज्ञान के साथ-साथ कंप्यूटर विज़न, एआई, डेटा माइनिंग और ग्राफिक्स के लिए कुल गेम-चेंजर।
ब्रुक के साथ आपकी क्या भूमिका थी?
GPU पर रे ट्रेस करने की क्षमता पर काम करने के बाद, स्टैनफोर्ड में मेरा शोध फोकस GPU कंप्यूटिंग के लिए सही प्रोग्रामिंग मॉडल को समझने के लिए बदल गया। उस समय, कई अन्य लोगों ने दिखाया था कि GPU विभिन्न प्रकार के विभिन्न अनुप्रयोगों में अच्छा था, लेकिन एक कंप्यूटिंग डिवाइस के रूप में GPU के बारे में कैसे सोचना चाहिए, इस पर एक अच्छा ढांचा या प्रोग्रामिंग मॉडल नहीं था। उस समय, GPU में किसी एप्लिकेशन को पोर्ट करने में सक्षम होने के लिए कंप्यूटर ग्राफिक्स में पीएचडी की आवश्यकता थी। इसलिए मैंने GPU कंप्यूटिंग के लिए एक प्रोग्रामिंग भाषा को परिभाषित करने के लक्ष्य के साथ ब्रुक प्रोजेक्ट शुरू किया, जिसने GPU के ग्राफिक्स-आइम्स को अधिक सामान्य प्रोग्रामिंग अवधारणाओं में सारणित किया। ब्रुक की मूलभूत प्रोग्रामिंग अवधारणा “स्ट्रीम” थी, जो समान कार्य की आवश्यकता वाले डेटा तत्वों का एक संग्रह था। ब्रुक अंततः स्टैनफोर्ड में मेरी पीएचडी थीसिस बन गया।
आपका काम मेरिमैक, स्टैनफोर्ड स्ट्रीमिंग सुपर कंप्यूटर के साथ शुरू हुआ। यह टेस्ला जैसी किसी चीज़ से कैसे अलग है?
ब्रुक की प्रोग्रामिंग मॉडल अवधारणाएं केवल GPU से अधिक पर लागू होती हैं। स्टैनफोर्ड में हमने ब्रुक प्रोग्रामिंग मॉडल के दो अलग-अलग कार्यान्वयन पर काम किया: एक जीपीयू के लिए, दूसरा मेरिमैक के लिए जो स्टैनफोर्ड में विकसित एक शोध वास्तुकला था। मेरिमैक के हिस्से के रूप में अग्रणी कई विचारों ने प्रभावित किया कि सामान्य प्रयोजन कंप्यूटिंग के लिए जीपीयू को कैसे बेहतर बनाया जा सकता है। यह भी ध्यान दिया जाना चाहिए कि बिल डैली जो स्टैनफोर्ड में मेरिमैक के सिद्धांत अन्वेषक थे, अब एनवीडिया में मुख्य वैज्ञानिक हैं।
क्या CUDA की जड़ें जिलेटो में हैं? जीपीजीपीयू का पहला अकादमिक अन्वेषण क्या था? पहले व्यावसायिक उपयोग के बारे में क्या?
मैंने स्टैनफोर्ड में अपना शोध पूरा करते हुए CUDA की शुरुआत की। एनवीडिया पहले से ही मेरे शोध के लिए बहुत सहायक था और स्पष्ट रूप से चीजों के हार्डवेयर पक्ष पर जीपीयू कंप्यूटिंग को बेहतर ढंग से सक्षम करने की क्षमता को देखा। मैं 2005 में CUDA परियोजना शुरू करने के लिए Nvidia में शामिल हुआ। उस समय, यह सिर्फ मैं और एक अन्य इंजीनियर थे। हमने अब इस परियोजना को उस संगठन में विकसित कर लिया है जो आज है, और आज एनवीडिया के जीपीयू के लिए एक केंद्रीय घटक है।
www.gpgpu.org GPU कंप्यूटिंग का एक अच्छा इतिहास प्रदान करता है, जो 2002 से पहले का है।
वर्तमान में, एएमडी ब्रुक को जीपीजीपीयू के लिए पसंद की प्रोग्रामिंग भाषा के रूप में आगे बढ़ाता है, जबकि एनवीडिया में सीयूडीए एक्सटेंशन के साथ सी है। आप दोनों की ताकत/कमजोरी की तुलना कैसे करेंगे?
एनवीडिया से शुरू करते हुए, हमें ब्रुक के कुछ मौलिक डिजाइन निर्णयों पर फिर से विचार करने का अवसर मिला, जो काफी हद तक इस बात पर आधारित थे कि डीएक्स9-क्लास हार्डवेयर क्या हासिल कर सकता है। प्रमुख सीमाओं में से एक मेमोरी मॉडल की बाधाएं थीं, जिसके लिए प्रोग्रामर को अपने एल्गोरिदम को काफी सीमित मेमोरी एक्सेस पैटर्न के आसपास मैप करने की आवश्यकता होती है। सीयूडीए एक्सटेंशन के साथ हमारे सी के साथ, हमने उन बाधाओं को कम कर दिया। मूल रूप से, प्रोग्रामर को केवल धागे का एक विशाल पूल दिया गया था और वह किसी भी तरह से स्मृति तक पहुंच सकता था। इस सुधार के साथ-साथ कुछ अन्य लोगों ने हमें GPU पर पूर्ण C भाषा शब्दार्थ लागू करने की अनुमति दी।