يهدف مشروع Torch-Mlir إلى توفير دعم برنامج التحويل البرمجي من الدرجة الأولى من النظام الإيكولوجي Pytorch إلى النظام البيئي MLIR.
يشارك هذا المشروع في عملية حاضنة LLVM: على هذا النحو ، فهو ليس جزءًا من أي إصدار رسمي LLVM. على الرغم من أن حالة الحضانة ليست بالضرورة انعكاسًا لاكتمال أو استقرار الرمز ، إلا أنها تشير إلى أن المشروع لم يتم اعتماده بعد كمكون من LLVM.
Pytorch Pytorch هو إطار عمل للتعلم الآلي مفتوح المصدر يسهل الانتقال السلس من البحث والنماذج الأولية إلى النشر على مستوى الإنتاج.
يقدم مشروع MLIR MLIR مقاربة جديدة لبناء بنيات مترجم قابلة للتمديد وقابلة لإعادة الاستخدام ، والتي تتناول مسألة تجزئة البرمجيات ، وتقلل من تكلفة تطوير المترجمين الخاصة بالمجال ، وتحسين تجميع الأجهزة غير المتجانسة ، وتعزيز التوافق بين المترجمين الحاليين.
اعتمد Torch-Mlir العديد من البائعين MLIR كطبقة متوسطة في أنظمتهم ، مما يتيح لهم تعيين الأطر مثل Pytorch و Jax و Tensorflow في MLIR ثم خفضها بعد ذلك إلى أجهزتهم المستهدفة. لقد لاحظنا نصف دزينة من السجلات المخصصة من Pytorch إلى MLIR ، مما يسهل على بائعي الأجهزة التركيز على قيمتهم الفريدة ، بدلاً من الحاجة إلى تنفيذ واجهة Pytorch أخرى لـ MLIR. الهدف النهائي هو أن تكون مشابهاً لبائعي الأجهزة الحاليين الذين يضيفون دعمًا مستهدفًا LLVM ، بدلاً من كل واحد ينفذ Clang أو C ++.
لدينا عدد قليل من المسارات لخفض إلى لهجة الشعلة mlir.
#torch-mlir Channel على Discord LLVM - هذه هي قناة الاتصال الأكثر نشاطًاtorch-mlir في خطاب LLVM في وقت كتابة هذا التقرير ، نطلق لقطات تم إنشاؤها مسبقًا من Torch-Mlir لـ Python 3.11 و Python 3.10.
إذا كنت قد دعمت إصدار Python ، فإن الأوامر التالية تهيئة بيئة افتراضية.
python3.11 -m venv mlir_venv
source mlir_venv/bin/activateأو ، إذا كنت ترغب في تبديل إصدارات متعددة من Python باستخدام Conda ، فيمكنك إنشاء بيئة Conda مع Python 3.11.
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pipبعد ذلك ، يمكننا تثبيت Torch-Mlir مع Lightlies Torch و Torchvision المقابلة.
pip install --pre torch-mlir torchvision
--extra-index-url https://download.pytorch.org/whl/nightly/cpu
-f https://github.com/llvm/torch-mlir-release/releases/expanded_assets/dev-wheels
Torch-Mlir هو في المقام الأول مشروع تم دمجه في المترجمين لسدها إلى Pytorch و Onnx. إذا تفكر في تكامل جديد ، فقد يكون من المفيد الإشارة إلى مجرى النهر الحالي:
بينما يتم ممارسة معظم المشروع عبر مسارات الاختبار ، هناك بعض الطرق التي يمكن للمستخدم النهائي استخدام واجهات برمجة التطبيقات مباشرة دون مزيد من التكامل:
# Get the latest example if you haven't checked out the code
wget https://raw.githubusercontent.com/llvm/torch-mlir/main/projects/pt1/examples/fximporter_resnet18.py
# Run ResNet18 as a standalone script.
python projects/pt1/examples/fximporter_resnet18.py
# Output
load image from https://upload.wikimedia.org/wikipedia/commons/2/26/YellowLabradorLooking_new.jpg
...
PyTorch prediction
[( ' Labrador retriever ' , 70.65674591064453), ( ' golden retriever ' , 4.988346099853516), ( ' Saluki, gazelle hound ' , 4.477451324462891)]
torch-mlir prediction
[( ' Labrador retriever ' , 70.6567153930664), ( ' golden retriever ' , 4.988325119018555), ( ' Saluki, gazelle hound ' , 4.477458477020264)]يتبع المشروع اتفاقيات المشاريع النموذجية المستندة إلى MLIR:
include/torch-mlir ، بنية lib لهجات/تمريرات برمجيات التحويل البرمجية C ++ MLIR.test لعقد رمز الاختبار.tools ل torch-mlir-opt وما شابه.python لرمز بيثون إذا كنت ترغب في تطوير وبناء Torch-Mlir من المصدر ، فيرجى النظر في ملاحظات التطوير