मोजो आखिरकार ओपन सोर्स हो गया है... इसलिए मैंने इसका परीक्षण किया

BBetter Stack
Computing/Software

Transcript

00:00:00मोजो, प्रोग्रामिंग भाषा, अभी 1.0 पर पहुंची है, और इसका समय थोड़ा अजीब है।
00:00:05यह एक बंद कंपाइलर के साथ लॉन्च हुआ था, सात दिन बाद उन्होंने इसे ओपन-सোর্স कर दिया,
00:00:09और क्वालकॉम ने अभी-अभी कंपनी को खरीदा था।
00:00:12लेकिन एक पल के लिए यह सब भूल जाते हैं।
00:00:14मोजो की असली खासियत गति के लिए सी++ या CUDA को छोड़े बिना पाइथन जैसा कोड है।
00:00:20तो आइए देखें कि क्या यह वास्तव में खरा उतरता है।
00:00:27मोजो के साथ पूरी बात यह सवाल है।
00:00:30क्या होगा यदि आप ऐसा कोड लिख सकें जो बिल्कुल पाइथन जैसा लगे और दिखे,
00:00:34लेकिन सी++ या CUDA को छोड़े बिना उन हिस्सों को चला सकें जो वास्तव में मायने रखते हैं?
00:00:39सीपीयू और जीपीयू में एक पढ़ने योग्य भाषा।
00:00:42यहाँ पूरी बात यही है।
00:00:43और अब जब मोजो आखिरकार 1.0 हो गया है, तो मैं वास्तव में देखना चाहता था कि इसमें से कितना वास्तव में वास्तविक है।
00:00:49तो इससे पहले कि हम क्वालकॉम ओपन-सোর্স और उस पर चर्चा करें, आइए इसे चलाकर देखें।
00:00:53यदि आप अपने वर्कफ़्लो को तेज़ करने के लिए कोडिंग टूल का आनंद लेते हैं, तो सब्सक्राइब करना न भूलें।
00:00:57हमारे वीडियो हर समय आते रहते हैं।
00:00:59मैं इसे अपनी मशीन पर करने जा रहा हूँ, लेकिन मैं यहाँ मोजो ट्यूटोरियल नहीं करने जा रहा हूँ।
00:01:03यदि आपने इसे पहले कभी नहीं देखा है, तो हाँ, यह पाइथन जैसा दिखेगा,
00:01:07लेकिन आप कुछ मुख्य अंतर देखेंगे।
00:01:10बाईं ओर पाइथन है।
00:01:12दाईं ओर मोजो है।
00:01:13यह वही लूप है, वही ग्रिड, वही पुनरावृत्ति सीमा है।
00:01:17मैं इस पर किसी भी गणित के माध्यम से नहीं चलने वाला हूँ।
00:01:20दोनों व्हाइल लूप को देखें।
00:01:21वे वही काम कर रहे हैं।
00:01:23हम यहाँ पहले पाइथन चलाने जा रहे हैं।
00:01:26ठीक है, बहुत बढ़िया।
00:01:27यह चल गया।
00:01:28यह निष्पादित हो गया।
00:01:28अब, वही प्रोग्राम जिसे मोजो के साथ संकलित किया गया है।
00:01:32फिर से, आइए इसे चलाएं।
00:01:35और धूम।
00:01:35यह लीजिए।
00:01:36अब, चेक सम अंतिम अंक से मेल नहीं खाएंगे।
00:01:39वे ढाई लाख पर कुछ सौ से भिन्न होते हैं।
00:01:43पाइथन गुणा करता है, फिर जोड़ता है।
00:01:45मोजो कंपाइल इसे एक निर्देश में विलीन कर सकता है।
00:01:49कुछ पिक्सेल एक अतिरिक्त पुनरावृत्ति लेते हैं।
00:01:51यहाँ सेकंड को वास्तविक संख्या मानिए।
00:01:54और यह NumPy नहीं है।
00:01:55यह कोई मॉडल नहीं है।
00:01:56प्रदर्शन केवल यह नहीं है कि सीपीयू लूप तेज़ हो गया है।
00:02:00आप पाइथन में शुरू कर सकते हैं क्योंकि यह आसान है।
00:02:03फिर पथ C++ या CUDA की ओर बढ़ता है।
00:02:06अब आपके पास दो फाइलें हैं और वे एक तरह से अलग होने लगती हैं।
00:02:09तो, यहाँ वह सवाल है जो मोजो पूछ रहा है।
00:02:12क्या वह फ़ाइल जिसे आप पढ़ते हैं वही फ़ाइल हो सकती है जो GPU से टकराती है?
00:02:17यह फ़ंक्शन कर्नेल है।
00:02:18प्रत्येक GPU Thread संख्याओं की एक जोड़ी जोड़ता है।
00:02:20बस इतना ही।
00:02:21मैंने Metal या Swift या CUDA पर स्विच नहीं किया।
00:02:24इसे संकलित करें।
00:02:26और अब हमारे पास कोड चल रहा है।
00:02:28तो, हाँ।
00:02:30मोजो यहाँ कुछ काफी दिलचस्प कर सकता है।
00:02:32और मैंने उसी भाषा का उपयोग करके मैकबुक पर एक कार्यशील जीपीयू कर्नेल संकलित किया है जिसमें मैं लिख रहा था।
00:02:38सामान्य कोड में, पाइथन।
00:02:40आपका मशीन लर्निंग कोड पाइथन में शुरू होता है क्योंकि पाइथन के साथ काम करना आसान है।
00:02:44हम सब यह जानते हैं।
00:02:45फिर, अंततः, समय के साथ, प्रदर्शन मायने रखने लगता है।
00:02:48इसलिए, महत्वपूर्ण भागों को C++ या CUDA में फिर से लिखा जाता है।
00:02:52अब, हम एक ही प्रणाली के दो संस्करणों का रख-रखाव कर रहे हैं।
00:02:55और फिर से, समय के साथ, वह केवल भ्रम को बढ़ाता है।
00:02:58मोजो की बात यह है कि पढ़ने योग्य फ़ाइल और तेज़ फ़ाइल एक ही चीज़ हैं।
00:03:03अब, इन सबके पीछे क्रिस लैटनर हैं।
00:03:06उन्होंने LLVM बनाया, फिर Clang, और फिर Swift।
00:03:10लेकिन एक GPU कर्नेल को चलाना एक बात है।
00:03:14भाषा को 1.0 कहना, यह यहाँ थोड़ी अलग बात है।
00:03:18तो, 1.0 का वास्तव में यहाँ क्या अर्थ है?
00:03:21यह नहीं कि मोजो समाप्त हो गया है।
00:03:23इसका कमोबेश मतलब स्थिरता है।
00:03:25ऐसे वादे हैं कि जो कोड आप आज लिखते हैं वह टूटेगा नहीं।
00:03:29इस तरह का एक प्रमुख रिलीज़ यही होता है।
00:03:30लेकिन फिर आप पहले अजीब हिस्से से टकराते हैं।
00:03:32मोजो अपने कंपाइलर के ओपन सोर्स होने से पहले ही 1.1 पर पहुँच गया था।
00:03:37मानक लाइब्रेरी मार्च 2024 में पहले ही खुल चुकी थी।
00:03:40अधिकतम कर्नेल 2025 में खुले।
00:03:43लेकिन कंपाइलर, वास्तविक चीज़ जो संकलन कर रही है, वह इस वर्ष 18 अगस्त तक मालिकाना हक वाली रही।
00:03:50अपाचे 2.0, और यह महत्वपूर्ण है क्योंकि ठीक सात दिन पहले जब मोजो 1.0 शिप किया गया था, तब यह अभी भी बंद था।
00:03:57और यह मोजो की लगातार तीन वर्षों में सबसे बड़ी आलोचनाओं में से एक का उत्तर देता है।
00:04:02आप यह कह सकते थे, ज़रूर, लेकिन कंपाइलर बंद है।
00:04:05हम अब वास्तव में ऐसा नहीं कह सकते, जो ऐसा लगता है जैसे, ठीक है, यह सही दिशा में आगे बढ़ रहा है।
00:04:10यह हो सकता है।
00:04:10जब तक आप यह न देखें कि तीन सप्ताह पहले क्या हुआ था।
00:04:14क्वालकॉम का अधिग्रहण 29 जुलाई को पूरा हुआ।
00:04:16मोजो 1.0 11 अगस्त को शिप हुआ।
00:04:19कंपाइलर 18 अगस्त को खुला।
00:04:21तो मोजो के इतिहास में सबसे बड़ा खुलापन मील का पत्थर मॉड्यूलर के अपनी स्वतंत्र कंपनी बनना बंद करने के तीन सप्ताह से भी कम समय के भीतर हुआ।
00:04:29और यह तुरंत इसे पढ़ने के दो पूरी तरह से अलग तरीके बनाता है।
00:04:33नंबर एक यह है कि क्वालकॉम ने मॉड्यूलर को खरीदा क्योंकि वह हर जगह मोजो चाहता है।
00:04:37शायद नहीं।
00:04:37या एक क्वालकॉम बॉट मॉड्यूलर, और अंततः यह पूरी चीज़ एक बहुत बड़ी कंपनी में समाहित हो जाती है।
00:04:44क्वालकॉम चिप्स बनाता है।
00:04:45एक ऐसी भाषा जो चिप्स के लिए अच्छी तरह से संकलित होती है, बहुत अधिक मूल्यवान हो जाती है।
00:04:49हम वास्तव में इसका स्वतंत्र रूप से उपयोग कर सकते हैं।
00:04:50तो, ओपन सोर्स कदम, यह समझ में आता है।
00:04:53लेकिन क्या मोजो सफल होता है, यह शायद क्वालकॉम पर निर्भर नहीं होगा।
00:04:57यह इस बात पर निर्भर करेगा कि क्या भाषा वास्तव में पहली जगह में स्विच करने को उचित ठहराने के लिए पर्याप्त अच्छी है।
00:05:02लेकिन फिर से, यहीं से यह सब गन्दा होने लगता है।
00:05:05मोजो के पास एक बेंचमार्क समस्या है।
00:05:072023 में वापस, बड़ी संख्या यह थी कि मोजो पाइथन से 68,000 गुना तेज हो सकता है।
00:05:13यह पागलपन है।
00:05:14डीएनए पार्सिंग पर मोजो के रस्ट से 50% तेज होने का दावा करने वाली एक पोस्ट भी अभी भी लाइव है।
00:05:19उस बेंचमार्क को अलग कर दिया गया था।
00:05:21उन्होंने दिखाया कि बेंचमार्क उस चीज़ को नहीं माप रहा था जिसे मापने का उसने दावा किया था।
00:05:25और आप अभी भी 35,000 गुना घूमते हुए देखेंगे।
00:05:29वह मैट्रिक्स गुणन से आता है।
00:05:31लेकिन वे जिसकी तुलना कर रहे हैं वह यह है,
00:05:34एक तरफ, एक पूरी तरह से सन्निहित, समानांतर, टाइल वाला मोजो कार्यान्वयन।
00:05:40दूसरी तरफ, एक शुद्ध पाइथन ट्रिपल लूप।
00:05:44हाँ, एक ट्रिपल लूप।
00:05:45NumPy नहीं, केवल एक नेस्टेड लूप जिसका उपयोग पृथ्वी पर कोई भी वास्तव में नहीं करेगा।
00:05:49तो मुझे 35,000 गुना तेज़ चीज़ की परवाह नहीं है।
00:05:52मैं इस मशीन से नंबर चाहता था।
00:05:54मैं शुद्ध पाइथन के मुकाबले M4 Pro पर हूँ।
00:05:57शुद्ध पाइथन के मुकाबले, 26.5 गुना तेज़।
00:06:00NumPy के मुकाबले, प्रति ऑपरेशन, लगभग दो गुना तेज़।
00:06:05अब, स्पष्ट रूप से, 26 68,000 नहीं है।
00:06:08लेकिन 26 गुना अभी भी एक अच्छा नंबर है क्योंकि NumPy के नीचे पहले से ही C है।
00:06:14उस बिंदु पर, आप वास्तव में पाइथन को हरा नहीं रहे हैं।
00:06:16आप बेहतर मेमोरी व्यवहार के साथ C को हरा रहे हैं।
00:06:19और मोजो के बारे में यही निराशाजनक बात है।
00:06:21लेकिन प्रदर्शन वास्तव में सबसे बड़ा कारण नहीं है जिससे मैं आज मोजो का उपयोग करने में संकोच करूँगा।
00:06:25मैंने इसके साथ पहले खेला है।
00:06:27मैं आज इसे यहाँ चला रहा हूँ।
00:06:28बड़ी बात यह है कि स्थिर।
00:06:30अब, यह कितना स्थिर है?
00:06:32क्योंकि मोजो 1.0 41 अस्थिर एपीआई चेतावनियों के साथ आता है, जिसमें int, print और len, कोर बिल्ट-इन शामिल हैं।
00:06:40उन्हें तथाकथित स्थिरता रिलीज़ के भीतर अस्थिर के रूप में चिह्नित किया गया था।
00:06:45और उसी दिन मोजो ने वादा किया कि आपका कोड टूटेगा नहीं, FN कीवर्ड को हटाने से लगभग 39 पैकेज इकोसिस्टम टूट गए।
00:06:52अब, FN कीवर्ड जो मोजो के काम करने के तरीके में बहुत बड़ा था, पूरी तरह से हटा दिया गया है।
00:06:58कोई FC प्रक्रिया नहीं।
00:06:59और जबकि कंपाइलर अब ओपन सोर्स है, वे अभी इसके लिए योगदान स्वीकार नहीं कर रहे हैं।
00:07:04तो मोजो 1.0 स्थिर है, मेरा अनुमान है।
00:07:07लेकिन शायद उतना स्थिर नहीं जितना वे कह रहे हैं।
00:07:09जो हमें एकमात्र ऐसे प्रश्न पर लाता है जो वास्तव में मायने रखता है।
00:07:12क्या आपको इसका उपयोग करना चाहिए?
00:07:13अब, यदि आप GPU कर्नेल, CUDA, Triton, उस दुनिया को लिखते हैं, तो मुझे लगता है कि Mojo निश्चित रूप से एक या दो दिन के लायक है।
00:07:21CPU और GPU में एक भाषा, और मैंने एक लैपटॉप पर एक काम करने वाला GPU कर्नेल संकलित किया है।
00:07:27ऐसा कुछ और नहीं है जो ऐसा करता हो।
00:07:29लेकिन इसमें अभी भी बढ़ने के लिए बहुत गुंजाइश है।
00:07:31इसलिए मैं अभी किसी भी तरह से इसे प्राथमिकता नहीं दूंगा।
00:07:35तीन साल पहले, मोजो के खिलाफ तर्क काफी सरल था।
00:07:38कूल नई भाषा, लेकिन इसका उपयोग कौन करने जा रहा है?
00:07:40यह एक स्टार्टअप से एक बंद भाषा थी जो डेवलपर्स से इस पर सब कुछ दांव पर लगाने के लिए कह रही थी।
00:07:44आज, कंपाइलर Apache 2.0 है।
00:07:47भाषा 1.0 है।
00:07:48और वह स्टार्टअप अब क्वालकॉम का हिस्सा है।
00:07:51मैं बेटरस्टैक से जोश हूँ।
00:07:53यदि आप इस तरह के कोडिंग टिप्स और ट्रिक्स का आनंद लेते हैं, तो सब्सक्राइब करना न भूलें।
00:07:56हम आपको दूसरे वीडियो में मिलेंगे।

Key Takeaway

मोजो प्रोग्रामिंग भाषा अंततः 1.0 पर पहुँच गई है और इसका कंपाइलर ओपन-सোর্স हो गया है, लेकिन महत्वपूर्ण एपीआई अस्थिरता और क्वालकॉम द्वारा अधिग्रहण के बावजूद यह अभी भी उत्पादन उपयोग के लिए पूरी तरह से तैयार होने से दूर है।

Highlights

  • मोजो प्रोग्रामिंग भाषा 1.0 संस्करण पर पहुँच गई है और इसका कंपाइलर अब अपाचे 2.0 लाइसेंस के तहत ओपन-सোর্স है।

  • मोजो शुद्ध पायथन की तुलना में एम4 प्रो पर 26.5 गुना तेज है और न numpy की तुलना में प्रति ऑपरेशन लगभग दो गुना तेज है।

  • क्वालकॉम ने 29 जुलाई को मॉड्यूलर का अधिग्रहण पूरा किया, जिसके तुरंत बाद मोजो 1.0 शिप हुआ और कंपाइलर ओपन-सোর্স हुआ।

  • मोजो 1.0 के स्थिर रूप में लॉन्च होने के बावजूद इसमें int, print और len जैसे कोर बिल्ट-इन सहित 41 अस्थिर एपीआई चेतावनियां मौजूद हैं।

  • एफएन कीवर्ड को हटाने से मोजो में लगभग 39 पैकेज इकोसिस्टम टूट गए।

Timeline

मोजो भाषा का परिचय और परीक्षण

  • मोजो का उद्देश्य सी++ या सीयूडीए को छोड़े बिना पायथन जैसा दिखने वाला कोड लिखना है जो सीपीयू और जीपीयू दोनों पर चल सके।
  • मोजो प्रोग्राम को संकलित करने पर यह पायथन की तुलना में अलग तरह से निर्देश निष्पादित करता है।
  • एक ही भाषा का उपयोग करके मैकबुक पर एक कार्यशील जीपीयू कर्नेल संकलित किया जा सकता है।

मोजो एक ऐसी प्रोग्रामिंग भाषा के रूप में सामने आती है जो डेवलपर्स को पायथन की तरह आसानी से कोड लिखने की अनुमति देती है, जबकि प्रदर्शन के लिए सी++ या सीयूडीए की ओर जाने की आवश्यकता को समाप्त करती है। परीक्षण के दौरान यह दिखाया गया है कि कैसे एक ही लूप को पायथन और मोजो दोनों में निष्पादित किया जा सकता है, जिसमें मोजो कंपाइलर निर्देशों को अधिक कुशलता से विलीन करता है। यह डेवलपर्स को अलग-अलग फाइलों को बनाए रखने से बचाता है और सीधे जीपीयू थ्रेड्स पर काम करने की अनुमति देता है।

क्वालकॉम अधिग्रहण और ओपन-सোর্স रिलीज़

  • क्रिस लैटनर ने एलवीवीएम, क्लैंग और स्विफ्ट के बाद मोजो का निर्माण किया है।
  • मोजो 1.0 का मुख्य अर्थ कोड की स्थिरता है ताकि आज लिखा गया कोड टूटे नहीं।
  • क्वालकॉम द्वारा अधिग्रहण के तीन सप्ताह के भीतर मोजो का कंपाइलर अपाचे 2.0 के तहत ओपन-सোর্স कर दिया गया।

मोजो के पीछे क्रिस लैटनर का हाथ है जिन्होंने पहले कई प्रमुख तकनीकों का निर्माण किया है। 1.0 संस्करण का अर्थ कोड स्थिरता है, हालांकि इसका कंपाइलर इस वर्ष 18 अगस्त तक मालिकाना हक वाला रहा था। 29 जुलाई को क्वालकॉम द्वारा मॉड्यूलर के अधिग्रहण और 18 अगस्त को कंपाइलर के ओपन-सোর্স होने के बीच का समय इस बात पर सवाल खड़े करता है कि भाषा का भविष्य क्या होगा, क्योंकि क्वालकॉम चिप्स के लिए ऐसी भाषा अत्यधिक मूल्यवान है।

बेंचमार्क और स्थिरता की समस्याएं

  • मोजो के शुरुआती 68,000 गुना तेज होने के दावे अत्यधिक अनुकूलित नेस्टेड लूप और शुद्ध पायथन की तुलना पर आधारित थे।
  • शुद्ध पायथन की तुलना में M4 Pro पर मोजो 26.5 गुना तेज और NumPy की तुलना में लगभग दो गुना तेज है।
  • मोजो 1.0 में अभी भी 41 अस्थिर एपीआई चेतावनियां हैं और fn कीवर्ड को हटाने से पैकेज टूट गए हैं।

मोजो के शुरुआती बेंचमार्क दावों की व्यापक आलोचना हुई क्योंकि वे एक अवास्तविक शुद्ध पायथन ट्रिपल लूप से तुलना कर रहे थे। वास्तविक परीक्षणों में यह M4 Pro पर शुद्ध पायथन से 26.5 गुना तेज और NumPy से दो गुना तेज प्रदर्शन करता है। इसके अलावा, 1.0 संस्करण होने के बावजूद इसमें कई अस्थिर एपीआई और महत्वपूर्ण बदलाव मौजूद हैं, जैसे fn कीवर्ड को हटाना, जिसके कारण कई पैकेज टूट गए हैं।

Community Posts

No posts yet. Be the first to write about this video!

Write about this video