قدم مشروع LLVM HPVM 1.0، وهو مترجم لوحدة المعالجة المركزية (CPU)، ووحدة معالجة الرسومات (GPU)، وFPGA، والمسرعات.

نشر مطورو مشروع LLVM إصدار برنامج التحويل البرمجي HPVM 1.0 (الآلة الافتراضية المتوازية غير المتجانسة)، والذي يهدف إلى تبسيط البرمجة للأنظمة غير المتجانسة وتوفير أدوات لإنشاء التعليمات البرمجية لوحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPU) وFPGAs ومسرعات الأجهزة الخاصة بالمجال (دعم لم يتم تضمين FGPA والمسرعات في الإصدار 1.0). يتم توزيع رمز المشروع بموجب ترخيص Apache 2.0.

الفكرة الرئيسية لـ HPVM هي توفير تمثيل موحد للبرامج القابلة للتنفيذ المتوازي عند التجميع، والتي يمكن استخدامها للتنفيذ باستخدام أنواع مختلفة من الأجهزة التي تدعم الحوسبة المتوازية، بما في ذلك وحدات معالجة الرسومات وتعليمات المتجهات والمعالجات متعددة النواة وFPGAs و مختلف رقائق التسريع المتخصصة. على عكس الأنظمة الأخرى، حاول HPVM الجمع بين ثلاث إمكانيات لتنظيم الحوسبة غير المتجانسة: التمثيل الوسيط المستقل عن اللغة والأجهزة، وهندسة مجموعة التعليمات الافتراضية (ISA)، وجدولة وقت التشغيل.

يعتمد التمثيل الوسيط المستقل عن الهدف (IR) الخاص بـ HPVM على تمثيل التعليمات الوسيطة LLVM 9.0 ويمتد باستخدام رسم بياني لتدفق البيانات الهرمي لالتقاط التوازي على مستوى المهام والبيانات وخطوط الأنابيب. يتضمن تمثيل HPVM الوسيط أيضًا تعليمات المتجهات والذاكرة المشتركة. الغرض الرئيسي من استخدام التمثيل الوسيط هو إنشاء التعليمات البرمجية بكفاءة وتحسين الأنظمة غير المتجانسة.

تسمح بنية مجموعة التعليمات الافتراضية (ISA) بإمكانية النقل بين أنواع مختلفة من أجهزة الحوسبة المتوازية وتجعل من الممكن عدم فقدان الأداء عند استخدام عناصر مختلفة من الأنظمة غير المتجانسة. يمكن أيضًا استخدام Virtual ISA لتقديم كود برنامج عالمي قابل للتنفيذ والذي يمكن تشغيله باستخدام وحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPU) وFPGAs والمسرعات المختلفة.

في المرحلة الحالية من التطوير، توفر HPVM مولدات أكواد قادرة على ترجمة عقد التطبيق المحددة باستخدام ISA افتراضي للتنفيذ باستخدام وحدات معالجة الرسومات NVIDIA (cuDNN وOpenCL)، وتعليمات ناقل Intel AVX ووحدات المعالجة المركزية x86 متعددة النواة. في وقت التشغيل، تطبق HPVM سياسات جدولة العمليات الحسابية المرنة، والتي يتم تنفيذها بناءً على معلومات البرنامج (بنية الرسم البياني) ومن خلال تجميع عقد البرنامج الفردية للتنفيذ على أي من أجهزة الحوسبة المستهدفة المتوفرة في النظام.

ويلاحظ أن استخدام HPVM يمكن أن يحقق زيادة كبيرة في الإنتاجية. أداء مترجمي HPVM يمكن مقارنته برمز OpenCL المكتوب بخط اليد لوحدات معالجة الرسومات وأجهزة الحوسبة المتجهة.

بالمقارنة مع إصدار المعاينة الأول، يتضمن HPVM 1.0 دعمًا لعمليات موتر الجبر الخطي، والواجهات الأمامية لـ Pytorch وKeras، وتقريبات مشغل الالتواء، وإطار ضبط التقريب الذي يحدد تلقائيًا التقديرات التقريبية الأمثل لعمليات موتر محددة ويحدد التكوين الذي يوفر الأداء الأمثل.

المصدر: opennet.ru

إضافة تعليق