تم تقديم مواصفات OpenCL 3.0

شركة Khronos، المسؤولة عن تطوير مواصفات عائلة OpenGL وVulkan وOpenCL، объявил عند الانتهاء من تطوير مواصفات OpenCL 3.0 التي تحدد واجهات برمجة التطبيقات وامتدادات لغة C لتنظيم الحوسبة المتوازية عبر الأنظمة الأساسية باستخدام وحدات المعالجة المركزية متعددة النواة ووحدات معالجة الرسوميات وFPGAs وDSPs وغيرها من الرقائق المتخصصة، من تلك المستخدمة في أجهزة الكمبيوتر العملاقة والخوادم السحابية إلى الرقائق التي يمكن العثور عليها في الأجهزة المحمولة والتكنولوجيا المدمجة. معيار OpenCL مفتوح بالكامل ولا يتطلب رسوم ترخيص. شاركت شركات مثل IBM وNVIDIA وIntel وAMD وApple وARM وElectronic Arts وQualcomm وTexas Instruments وToshiba في العمل على المعيار.

في المرحلة الحالية، تم تعيين حالة مؤقتة للمواصفات، مما يعني إمكانية التحسين بناءً على التعليقات المرسلة عبر GitHub جيثب:. بمجرد أخذ التعليقات في الاعتبار، سيتم الانتهاء من المواصفات وسيتم نشر مجموعة اختبار نهائية لاختبار مدى توافق التطبيقات الحالية.

تم تقديم مواصفات OpenCL 3.0

أبرزها ملامح أوبينكل شنومكس:

  • تغطي واجهة برمجة تطبيقات OpenCL 3.0 الآن جميع إصدارات OpenCL (1.2، 2.x)، دون توفير مواصفات منفصلة لكل إصدار. يوفر OpenCL 3.0 القدرة على توسيع الوظائف الأساسية من خلال دمج المواصفات الإضافية التي سيتم وضعها في طبقات في شكل خيارات دون حجب الطبيعة المتجانسة لـ OpenCL 1.2/2.X.
  • تم الإعلان عن الوظائف التي تتوافق مع OpenCL 1.2 فقط كإلزامية، وتم تصنيف جميع الميزات المقترحة في مواصفات OpenCL 2.x على أنها اختيارية. سيسهل هذا الأسلوب إنشاء تطبيقات مخصصة متوافقة مع OpenCL 3.0، وسيوسع نطاق الأجهزة التي يمكن استخدام OpenCL 3.0 عليها. على سبيل المثال، يمكن للمصنعين تنفيذ دعم OpenCL 3.0 دون تطبيق ميزات OpenCL 2.x محددة. للوصول إلى ميزات اللغة الاختيارية، أضاف OpenCL 3.0 نظامًا لاستعلامات الاختبار الذي يسمح لك بتقييم دعم عناصر واجهة برمجة التطبيقات الفردية، بالإضافة إلى وحدات الماكرو الخاصة.
  • يؤدي التوحيد مع المواصفات التي تم إصدارها مسبقًا إلى تسهيل ترحيل التطبيقات إلى OpenCL 3.0. ستكون تطبيقات OpenCL 1.2 قادرة على العمل على الأجهزة التي تدعم OpenCL 3.0 دون تعديل. لن تتطلب تطبيقات OpenCL 2.x أيضًا تغييرات في التعليمات البرمجية، طالما أن بيئة OpenCL 3.0 توفر الوظائف المطلوبة (لضمان إمكانية النقل في المستقبل، يوصى بتطبيقات OpenCL 2.x لإضافة استعلامات اختبار لتقييم الدعم لميزات OpenCL 2.x تم استخدامها). يمكن لمطوري برامج التشغيل الذين يستخدمون تطبيقات OpenCL ترقية منتجاتهم بسهولة إلى OpenCL 3.0، وإضافة معالجة الاستعلام فقط لاستدعاءات معينة لواجهة برمجة التطبيقات (API)، وزيادة الوظائف تدريجيًا بمرور الوقت.
  • تتوافق مواصفات OpenCL 3.0 مع البيئة والامتدادات ومواصفات التمثيل الوسيط العام SPIR-V، والذي يتم استخدامه أيضًا بواسطة Vulkan API. يتم تضمين دعم مواصفات SPIR-V 1.3 في OpenCL 3.0 الأساسي كميزة اختيارية. من خلال استخدام التمثيل الوسيط SPIR-V تمت إضافة دعم للعمليات مع المجموعات الفرعية لنوى الحوسبة.
    تم تقديم مواصفات OpenCL 3.0

  • تمت إضافة دعم لملحق تنفيذ عمليات DMA غير المتزامنة (Asynchronous DMA)، المدعومة في شرائح تشبه DSP مع إمكانية الوصول المباشر إلى الذاكرة. يتيح DMA غير المتزامن استخدام معاملات DMA لنقل البيانات بين الذاكرة العامة والمحلية بشكل غير متزامن، بالتوازي مع الحسابات أو عمليات نقل البيانات الأخرى.
  • تم تحديث مواصفات ملحقات البرمجة المتوازية C إلى الإصدار 3.0، وتم إيقاف تطوير امتدادات لغة OpenCL لـ C++ لصالح مشروع "C++ for OpenCL". C++ for OpenCL هو مترجم يعتمد على Clang/LLVM و البث نواة C++ وOpenCL C إلى تمثيل متوسط ​​SPIR-V أو رمز آلة منخفض المستوى. من خلال البث، ينظم SPIR-V أيضًا تجميع تطبيقات C++ باستخدام مكتبة قوالب SYCL، مما يبسط إنشاء التطبيقات المتوازية.

    تم تقديم مواصفات OpenCL 3.0

  • تم اقتراح مترجم لبث OpenCL عبر Vulkan API com.clspv، الذي يحول نواة OpenCL إلى تمثيل Vulkan SPIR-V وطبقة com.clvk لتمكين OpenCL API من العمل فوق Vulkan.

    تم تقديم مواصفات OpenCL 3.0

المصدر: opennet.ru

إضافة تعليق