2014-09-17 8 views
8

मैं वर्तमान में मशीन सीखने एल्गोरिदम के प्रदर्शन में सुधार करने के लिए जीपीयू के साथ प्रोग्रामिंग सीख रहा हूं। शुरू में मैं शुद्ध सी के साथ CUDA प्रोग्रामिंग जानने की कोशिश, तो मैं pycuda जो मेरे लिए CUDA पुस्तकालय का एक आवरण पाया, और फिर मैं थेनो और pylearn2 पाया और एक छोटे से उलझन में मिल गया:पिकुडा बनाम थानो बनाम पाइलर 2

मैं उन्हें इस तरह से समझते हैं:

  1. pycuda: CUDA पुस्तकालय के लिए अजगर आवरण
  2. थेनो: Numpy के समान लेकिन GPU और सीपीयू के लिए पारदर्शी
  3. pylearn2: गहरी सीखने पैकेज है जो थेनो पर निर्माण और कई मशीन सीखने/गहरी शिक्षण मॉडल को लागू किया

चूंकि मैं जीपीयू प्रोग्रामिंग के लिए नया हूं, क्या मुझे सी/सी ++ कार्यान्वयन से सीखना शुरू करना चाहिए या पिकुडा से शुरू करना पर्याप्त है, यहां तक ​​कि थानो से भी शुरू हो रहा है? जैसे मैं GPU प्रोग्रामिंग सीखने के बाद randomForest मॉडल को कार्यान्वित करना चाहता हूं। धन्यवाद।

उत्तर

8

आपकी समझ लगभग सही है। मैं थैनो के बारे में कुछ टिप्पणी जोड़ूंगा। यह एक न्यूम्पी से कहीं अधिक है जो जीपीयू पर चल सकता है। थेनो वास्तव में गणित अभिव्यक्ति संकलक है, जो अत्यधिक अनुकूलित सी/सीयूडीए कोड में प्रतीकात्मक गणित अभिव्यक्तियों का अनुवाद करता है, जो सीपीयू और जीपीयू दोनों के लिए लक्षित है। जो कोड उत्पन्न करता है वह प्रायः सबसे अधिक प्रोग्रामर लिखने से अधिक कुशल होता है। थेनो भी प्रतीकात्मक भेदभाव (ढाल आधारित अनुकूलन के लिए बहुत उपयोगी) बना सकता है और इसमें बेहतर संख्यात्मक स्थिरता प्राप्त करने की सुविधा भी है (जो शायद कुछ उपयोगी है, हालांकि मुझे वास्तविकता के बारे में पता नहीं है)। यह बहुत संभावना है कि थानो आपको जो चाहिए उसे लागू करने के लिए पर्याप्त होगा। यदि आप अभी भी CUDA या PyCUDA सीखने का निर्णय लेते हैं, तो उस भाषा का चयन करें जिसे आप उपयोग करेंगे, सी ++ या पायथन।

+0

बहुत स्पष्ट, धन्यवाद! एक और सवाल लेकिन शायद यहां यह पूछने के लिए उपयुक्त नहीं है: आर भाषा में थानो के रूप में कोई समान पैकेज है? – user1754197

+0

काफी नहीं है। ऐसे कुछ पैकेज हैं जो बुनियादी रैखिक बीजगणित संचालन और कुछ उच्च स्तरीय कार्यों (एलएम के रूप में) को लागू करते हैं, लेकिन हुड के तहत वे थेनो से बहुत अलग तरीके से काम करते हैं, यानी वे नियमित पैकेज हैं, वे अभिव्यक्ति कंपाइलर्स नहीं हैं। –

+0

क्या आपके पास pylearn2 के बारे में कोई टिप्पणी है? –

संबंधित मुद्दे