PoCL 1.6 ، تطبيق مستقل لمعيار OpenCL

اطلاق ال .. انطلاق ال .. اقلاع ال النسخة الجديدة من المشروع PoCL 1.6 تحديث (لغة ​​الحوسبة المحمولة OpenCL) ، من أبرز ميزات الإصدار 1.6 دعم Clang / LLVM 11.0 ، بالإضافة إلى العمل المنجز لتحسين أداء ووظائف CUDA ، وتحسين التوافق مع PowerPC وتحسين استخدام تصحيح OpenCL.

بالنسبة لأولئك الذين ليسوا على دراية بـ PoCL ، يجب أن تعرف ما هو تطبيق محمول مفتوح المصدر (مرخصة من MIT) من معيار OpenCL (1.2 مع دعم بعض الميزات 2.0). بالإضافة إلى كونه تطبيق OpenCL مفتوح المصدر متعدد الأجهزة (غير متجانس حقًا) سهل الحمل ، والهدف الأساسي لهذا المشروع هو تحسين قابلية التشغيل البيني لتنوع الأجهزة المتوافقة مع OpenCL من خلال دمجها في منصة واحدة منسقة مركزيًا.

بالإضافة إلى ذلك ، يتمثل أحد الأهداف الرئيسية طويلة المدى في تحسين قابلية نقل الأداء لبرامج OpenCL على أنواع الأجهزة التي تستخدم تقنيات وقت التشغيل والتجميع.

يعتمد مترجم OpenCL kernel على LLVM ويستخدم Clang كواجهة لـ OpenCL C. لتوفير أداء وقابلية مناسبة ، يمكن لمترجم OpenCL kernel إنشاء وظائف مدمجة يمكنها استخدام موارد الأجهزة المختلفة لموازاة تنفيذ التعليمات البرمجية. ، مثل VLIW و superscalar و SIMD و SIMT ومتعدد النوى ومتعدد الخيوط. هناك دعم لبرامج تشغيل ICD (برنامج تشغيل العميل القابل للتثبيت). هناك واجهات خلفية لتوفير العمل من خلال وحدة المعالجة المركزية (CPU) و ASIP (TCE / TTA) و GPU على أساس بنية HSA و NVIDIA GPU (CUDA).

الميزات الرئيسية الجديدة لـ PoCL 1.6

يسلط هذا الإصدار الجديد من PoCL 1.6 الضوء على القدرة على تجميع هذا التنفيذ باستخدام برامج تشغيل الأجهزة التي تم تمكينها في وقت الترجمة ، بالإضافة إلى أنه سيتم التحقق من توفر الجهاز عند بدء التشغيل (سابقًا ، الأنظمة التي تم إنشاء PoCL وتشغيلها كان يجب أن يكون لديهم نفس دعم وحدة التحكم). نفذت القدرة على استخدام مدير حزمة conda لتوزيع حزم PoCL الثنائية مع دعم CUDA لأنظمة Linux-x86_64 و Linux-ppc64le.

التغيير الآخر الذي يبرز هو دعم LLVM 11 جنبًا إلى جنب مع الاحتمالات الموسعة لتصحيح أخطاء كود OpenCL عند استخدام وحدة تحكم وحدة المعالجة المركزية.

بالإضافة إلى ذلك ، تجدر الإشارة إلى أنه تم تنفيذ تحسين أداء الواجهة الخلفية لـ CUDA ، مما أدى إلى تبسيط العمليات المتعلقة باستخدام الذاكرة المحلية (FFT و GEMM).

تُظهر المعايير التي تستخدم معايير SHOC (التي يتم اختبارها باستمرار الآن أن هذه التحسينات أدت إلى أداء أفضل بكثير ، لا سيما بالنسبة للمعايير التي تتضمن ذاكرة محلية مثل FFT و GEMM ، مقارنةً بمجموعة من المرجع أعلاه. تحقق PoCL الآن غالبًا أداءً تنافسيًا مع برنامج OpenCL الخاص بشركة Nvidia). ونرحب بالمساهمات لتحديد وإزالة الأسباب الجذرية لما تبقى من مجالات المشاكل. نرحب أيضًا بالمساهمات لتحسين تغطية الميزات لمعايير OpenCL 1.2 / 3.0.

  • أصبح أداء PoCL في العديد من الاختبارات قريبًا الآن من برنامج تشغيل OpenCL الخاص بـ NVIDIA.
  • تمت إضافة معلمة الترجمة HARDENING_ENABLE لتمكين خيارات المحول البرمجي لإنشاء libpocl.so أكثر أمانًا على حساب تدهور الأداء.
  • تم إرجاع الدعم لأنظمة PowerPC 8/9 ، والذي يتوافق مستوى تنفيذ OpenCL الخاص به عند استخدام أجهزة pthread و CUDA مع مستوى CUDA على أنظمة x86_64.
  • تم تغيير ABI لنواة CUDA التي تستخدم __ الكتل المحلية. بعد الترقية ، يحتاج المستخدمون إلى مسح ذاكرة التخزين المؤقت pocl.
  • تمت إزالة الدعم لخيار الإنشاء SINGLE_LLVM_LIB ، بدلاً من استخدام STATIC_LLVM و llvm-config لتحديد المكتبات التي يجب الارتباط بها.

أخيرًا ، إذا كنت تريد معرفة المزيد عن هذا الإصدار الجديد ، فيمكنك التحقق من التفاصيل في الإعلان الأصلي. 

بينما للمهتمين بمعرفة المزيد عن هذا التنفيذ ، يمكنهم التشاور الموقع الرسمي من هذا ، حيث يمكنك العثور على الوثائق وتنزيل الملفات.

يتم توزيع رمز المشروع بموجب ترخيص MIT ويتم دعم العمل على الأنظمة الأساسية X86_64 و MIPS32 و ARM v7 و AMD HSA APU والعديد من معالجات TTA المتخصصة مع بنية VLIW.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.