LLVM تخلیق کار نے نئی پروگرامنگ لینگویج Mojo تیار کی۔

کرس لیٹنر، LLVM کے بانی اور چیف آرکیٹیکٹ اور سوئفٹ پروگرامنگ لینگویج کے خالق، اور Tim Davis، Tensorflow اور JAX جیسے Google AI پروجیکٹس کے سابق سربراہ، نے ایک نئی پروگرامنگ لینگویج، Mojo متعارف کروائی، جو تحقیق کی ترقی اور استعمال میں آسانی کو یکجا کرتی ہے۔ تیز رفتار پروٹو ٹائپنگ جس میں اعلیٰ کارکردگی کے اختتامی مصنوعات تیار کرنے کی صلاحیت ہے۔ پہلا Python زبان کے مانوس نحو کے استعمال کے ذریعے حاصل کیا جاتا ہے، اور دوسرا مشین کوڈ، میموری سے محفوظ میکانزم، اور ہارڈویئر ایکسلریشن ٹولز کے استعمال کے ذریعے حاصل کیا جاتا ہے۔

پروجیکٹ مشین لرننگ کے شعبے میں ترقی کے لیے استعمال پر مرکوز ہے، لیکن اسے ایک عام مقصد کی زبان کے طور پر پیش کیا گیا ہے جو سسٹم پروگرامنگ ٹولز کے ساتھ Python کی صلاحیتوں کو بڑھاتا ہے اور کاموں کی ایک وسیع رینج کے لیے موزوں ہے۔ مثال کے طور پر، زبان کا اطلاق اعلی کارکردگی والے کمپیوٹنگ، ڈیٹا پروسیسنگ اور تبدیلی جیسے شعبوں پر ہوتا ہے۔ موجو کی ایک دلچسپ خصوصیت یہ ہے کہ ایموجی کیریکٹر "🔥" کو کوڈ فائلز (مثال کے طور پر، "helloworld.🔥") ٹیکسٹ ایکسٹینشن ".mojo" کے علاوہ ایکسٹینشن کے طور پر بیان کرنے کی صلاحیت ہے۔

فی الحال، زبان انتہائی ترقی کے مرحلے پر ہے اور جانچ کے لیے صرف آن لائن انٹرفیس پیش کیا جاتا ہے۔ مقامی نظاموں پر چلنے کے لیے علیحدہ اسمبلیوں کو بعد میں شائع کرنے کا وعدہ کیا گیا ہے، انٹرایکٹو ویب ماحول کے آپریشن کے بارے میں رائے حاصل کرنے کے بعد۔ کمپائلر، جے آئی ٹی اور پروجیکٹ سے متعلق دیگر پیشرفت کے لیے سورس کوڈ کو اندرونی فن تعمیر مکمل ہونے کے بعد کھولنے کا منصوبہ ہے (بند دروازوں کے پیچھے ورکنگ پروٹو ٹائپ تیار کرنے کا ماڈل ایل ایل وی ایم، کلینگ اور کی ترقی کے ابتدائی مرحلے کی یاد دلاتا ہے۔ تیز رو). چونکہ موجو نحو کی بنیاد ازگر کی زبان پر ہے، اور ٹائپ سسٹم C/C++ کے قریب ہے، اس لیے مستقبل میں وہ C/C++ اور Python سے Mojo میں لکھے گئے موجودہ پروجیکٹس کے ترجمہ کو آسان بنانے کے لیے ٹولز تیار کرنے کا ارادہ رکھتے ہیں۔ Python کوڈ اور Mojo کو ملا کر ہائبرڈ پروجیکٹ تیار کرنا۔

پراجیکٹ کو اس لیے ڈیزائن کیا گیا ہے کہ حسابات کو انجام دینے میں متضاد نظاموں کے دستیاب ہارڈویئر وسائل کو شامل کیا جائے۔ مثال کے طور پر، GPUs، خصوصی مشین لرننگ ایکسلریٹر، اور پروسیسر انسٹرکشن ویکٹرز (SIMD) کو Mojo ایپلی کیشنز کو چلانے اور کمپیوٹیشن کو متوازی بنانے کے لیے استعمال کیا جا سکتا ہے۔ موجودہ CPython آپٹیمائزیشن کے کام میں شامل ہونے کے بجائے Python لینگویج کا الگ ذیلی سیٹ تیار کرنے کی جو وجوہات دی گئی ہیں ان میں تالیف پر توجہ مرکوز کرنا، سسٹم پروگرامنگ کی صلاحیتوں کا انضمام، اور بنیادی طور پر مختلف اندرونی فن تعمیر کا استعمال شامل ہے جو GPUs پر کوڈ کو چلانے کی اجازت دیتا ہے۔ ہارڈ ویئر ایکسلریٹر تاہم، Mojo ڈویلپرز CPython کے ساتھ زیادہ سے زیادہ ہم آہنگ رہنے کا ارادہ رکھتے ہیں۔

موجو کو JIT کا استعمال کرتے ہوئے تشریحی موڈ میں، اور قابل عمل فائلوں (AOT، وقت سے پہلے) میں تالیف کے لیے استعمال کیا جا سکتا ہے۔ مرتب کرنے والے کے پاس خودکار اصلاح، کیشنگ اور تقسیم شدہ تالیف کے لیے بلٹ ان جدید ٹیکنالوجیز ہیں۔ موجو زبان میں ماخذ کے متن کو LLVM پروجیکٹ کے ذریعہ تیار کردہ کم سطح کے انٹرمیڈیٹ کوڈ MLIR (ملٹی لیول انٹرمیڈیٹ ریپریزنٹیشن) میں تبدیل کیا جاتا ہے اور ڈیٹا فلو گراف کی پروسیسنگ کو بہتر بنانے کے لیے اضافی صلاحیتیں فراہم کی جاتی ہیں۔ کمپائلر آپ کو مختلف بیک اینڈ استعمال کرنے کی اجازت دیتا ہے جو مشین کوڈ بنانے کے لیے MLIR کو سپورٹ کرتے ہیں۔

حسابات کو تیز کرنے کے لیے اضافی ہارڈویئر میکانزم کا استعمال اس کارکردگی کو حاصل کرنا ممکن بناتا ہے جو گہرے حساب کے دوران C/C++ ایپلی کیشنز سے بہتر ہو۔ مثال کے طور پر، مینڈیل بروٹ سیٹ بنانے کے لیے کسی ایپلیکیشن کی جانچ کرتے وقت، موجو زبان میں ایک مرتب کردہ ایپلیکیشن جب AWS کلاؤڈ (r7iz.metal-16xl) میں عمل میں آئی تو C++ (6 سیکنڈ بمقابلہ) میں عمل درآمد سے 0.03 گنا تیز نکلی۔ 0.20 سیکنڈ)، اور معیاری CPython 35 (3.10.9 سیکنڈ بمقابلہ 0.03 سیکنڈ) استعمال کرتے وقت Python ایپلی کیشن سے 1027 ہزار گنا تیز اور PYPY (1500 سیکنڈ بمقابلہ 0.03 سیکنڈ) استعمال کرتے وقت 46.1 گنا تیز۔ .

مشین لرننگ کے مسائل کو حل کرنے کے شعبے میں کارکردگی کا جائزہ لیتے وقت، ٹینسر فلو لائبریری پر مبنی حل کے مقابلے موجو زبان میں لکھا گیا AI اسٹیک ماڈیولر انفرنس انجن، 3 گنا تیز تھا جب کسی سسٹم پر لینگویج ماڈل پر کارروائی کرتے ہوئے ایک Intel پروسیسر، 6.4 گنا تیز جب سفارشی جنریشن ماڈل پر عملدرآمد کرتے وقت اور 2.1 گنا تیز جب بصری معلومات کی پروسیسنگ کے لیے ماڈلز کے ساتھ کام کرتا ہے۔ AMD پروسیسر استعمال کرتے وقت، Mojo استعمال کرتے وقت حاصلات 3.2، 5 اور 2.2 گنا تھے، اور ARM پروسیسر استعمال کرتے وقت - بالترتیب 5.3، 7.5 اور 1.7 گنا۔ PyTorch پر مبنی حل Intel CPUs پر Mojo سے 1.4، 1.1 اور 1.5 گنا، AMD CPUs پر 2.1، 1.2 اور 1.5 گنا اور ARM CPUs پر 4، 4.3 اور 1.3 گنا پیچھے رہ گیا۔

LLVM تخلیق کار نے نئی پروگرامنگ لینگویج Mojo تیار کی۔

زبان جامد ٹائپنگ اور نچلی سطح کی میموری سے محفوظ خصوصیات کو سپورٹ کرتی ہے جو زنگ کی یاد دلاتی ہے، جیسے حوالہ زندگی بھر ٹریکنگ اور قرضہ چیکر۔ پوائنٹرز کے ساتھ محفوظ کام کے لیے سہولیات کے علاوہ، زبان نچلے درجے کے کام کے لیے خصوصیات بھی فراہم کرتی ہے، مثال کے طور پر، پوائنٹر کی قسم کا استعمال کرتے ہوئے غیر محفوظ موڈ میں میموری تک براہ راست رسائی، انفرادی SIMD ہدایات کو کال کرنا، یا ہارڈویئر ایکسٹینشن جیسے TensorCores اور AMX تک رسائی۔ .

LLVM تخلیق کار نے نئی پروگرامنگ لینگویج Mojo تیار کی۔

تمام متغیرات کے لیے واضح قسم کی تعریفوں کے ساتھ فنکشنز کے لیے کلاسک اور آپٹمائزڈ Python کوڈ کی علیحدگی کو آسان بنانے کے لیے، "def" کے بجائے ایک علیحدہ کلیدی لفظ "fn" استعمال کرنے کی تجویز ہے۔ اسی طرح کلاسز کے لیے، اگر آپ کو تالیف کے دوران میموری میں ڈیٹا کو جامد طور پر پیک کرنے کی ضرورت ہے (جیسا کہ C میں)، آپ "کلاس" کے بجائے "struct" قسم استعمال کر سکتے ہیں۔ صرف C/C++ زبانوں میں ماڈیولز درآمد کرنا بھی ممکن ہے، مثال کے طور پر، ریاضی کی لائبریری سے cos فنکشن درآمد کرنے کے لیے، آپ "math.h" import cos سے وضاحت کر سکتے ہیں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں