يتضمن تحسين سرعة البناء لـ Pytorch و Pytorch/XLA عدة استراتيجيات:
تحسين سرعة بناء Pytorch
1. استخدم الثنائيات التي تم بناؤها مسبقًا: بدلاً من البناء من المصدر ، استخدم الثنائيات التي تم إنشاؤها مسبقًا من موقع Pytorch الرسمي. يتم تحسين هذه الثنائيات مع مكتبات مثل MKL و Magma ، والتي تعد حاسمة للأداء [5].
2. تحسين عملية الإنشاء: إذا كان يجب أن تبني من المصدر ، فاستخدم أدوات مثل `ccache` إلى ملفات Cache المترجمة. هذا يقلل بشكل كبير من أوقات إعادة البناء بعد إجراء تغييرات صغيرة على الكود [7].
3. التوازي التجميع: استخدم المعالجات متعددة النواة عن طريق تعيين عدد وظائف البناء لتتناسب مع عدد نوى وحدة المعالجة المركزية المتاحة. يمكن القيام بذلك باستخدام أعلام مثل "-j" مع "Make" أو خيارات مماثلة في نظام الإنشاء الخاص بك.
تحسين أداء Pytorch/XLA
1. استخدم التنفيذ الكسول: يستخدم Pytorch/XLA تنفيذ الموتر الكسول ، والذي يسجل العمليات في رسم بياني قبل التنفيذ. يسمح ذلك بالتحسين عن طريق دمج عمليات متعددة في عملية محسّنة واحدة [4] [6].
2. بيانات التحميل المسبق: استخدم `mpdeviceloader` لتنفيذ البيانات المسبقة على أجهزة XLA ، مما يقلل من الاتصالات العامة بين وحدة المعالجة المركزية المضيفة والجهاز [8].
3. قلل من اتصالات وحدة المعالجة المركزية: تقليل أو إزالة العمليات التي تتطلب التزامن بين جهاز وحدة المعالجة المركزية وجهاز XLA ، مثل عبارات الطباعة أو عمليات الاسترجاع [8].
4. استخدم الحواجز لتحسين: أدخل حواجز مثل `xm.mark_step ()` لكسر الرسوم البيانية الحسابية الكبيرة إلى أحداث أصغر ، مما يسمح لمترجم XLA بتحسينها بشكل أكثر فعالية [8].
5. الاستفادة من السحابة السحابية: للتدريب على نطاق واسع ، استخدم TPUs السحابة مع Pytorch/XLA لتحقيق التدريب عالي الأداء وفعالية من حيث التكلفة [2] [9].
الاستشهادات:[1]
[2] https://www.youtube.com/watch؟v=PSPMRTWUMS8
[3] https://sebastianraschka.com/blog/2023/pytorch-faster.html
[4] https://pytorch.org/xla/release/r2.4/index.html
[5] https://discuss.pytorch.org/t/is-building-from-source-real-peed-uped--derfection-peed/91057
[6] https://pytorch.org/xla/release/2.2/index.html
[7] https://discuss.pytorch.org/t/any-tips-for-aped-the-source-build-process/184558
[8] https://pytorch.org/xla/master/learn/xla-overview.html
[9] https://cloud.google.com/blog/topics/developers-practitioners/scaling-deep-learning-workloads-pytorch-xla-and-cloud-tpu-vm