أخبار
أخبار
هل تم زرع CUDA، وهل يتم تشغيل GPU القائم على risc-v؟
2022-03-17 459

لقد كان RISC-V واحدًا من أهم المواضيع في مجال الحوسبة لأن بنية مجموعة التعليمات هذه (ISA) تسمح بالتخصيص الشامل وسهلة الفهم، بالإضافة إلى المصدر المفتوح بالكامل والمزايا الخالية من الترخيص. يوجد أيضًا مشروع لتصميم وحدة معالجة رسومات للأغراض العامة استنادًا إلى RISC-V ISA، ونحن الآن نشهد نقل مكتبة برامج CUDA من Nvidia إلى منصة Vortex RISC-V GPGPU.


تمثل CUDA (هندسة الأجهزة الموحدة للحوسبة) من Nvidia منصة حوسبة فريدة وواجهة برمجة تطبيقات (API) تعمل على خط بطاقات الرسومات من Nvidia. عند كتابة تطبيق لدعم CUDA، بمجرد أن يكتشف النظام وحدة معالجة الرسومات المستندة إلى CUDA، فإنه يحصل على الكثير من تسريع GPU للتعليمات البرمجية.


اليوم، قام الباحثون بالتحقيق في طريقة لتمكين دعم مجموعة أدوات برنامج CUDA في مشروع RISC-V GPGPU يسمى Vortex. تم تصميم Vortex RISC-V GPGPU لتوفير وحدة معالجة الرسومات RISC-V على مستوى النظام استنادًا إلى RV32IMF ISA. وهذا يعني أن نوى 32 بت يمكن أن تتوسع من تصميمات وحدة معالجة الرسومات ذات 1 نواة إلى 32 نواة. وهو يدعم واجهة برمجة التطبيقات الرسومية OpenCL 1.2، ويدعم اليوم أيضًا بعض عمليات CUDA.


يشرح الباحثون: "...في هذا المشروع، نقترح ونبني خطًا لدعم ترحيل CUDA من طرف إلى طرف: يقبل خط الأنابيب كود مصدر CUDA كمدخل وينفذها على بنية GPU الموسعة RISC-V. يتكون خط الأنابيب من عدة خطوات: ترجمة كود مصدر CUDA إلى NVVM IR، وتحويل NVVM IR إلى SPIR-V IR، وإعادة توجيه SPIR-V IR إلى POCL للحصول على ثنائي RISC-V، وأخيرًا التنفيذ على بنية الملف الثنائي RISC-V GPU الموسعة. "



يتم عرض العملية في الصورة أعلاه، مع عرض جميع الخطوات اللازمة لإنجاحها. بعبارات بسيطة، يتم تمثيل كود مصدر CUDA بتنسيق تمثيل وسيط (IR) يسمى NVVM IR، استنادًا إلى المصدر المفتوح LLVM IR. تم تحويله لاحقًا إلى التمثيل الوسيط المحمول القياسي (SPIR-V) IR، والذي تم بعد ذلك توجيهه إلى تطبيق محمول مفتوح المصدر لمعيار OpenCL، يسمى POCL. نظرًا لأن Vortex يدعم OpenCL، فإنه يوفر تعليمات برمجية مدعومة ويمكن تنفيذه دون مشاكل.


لمزيد من التفاصيل حول هذه العملية المعقدة، انقر أدناه لقراءة المقال الأصلي. الأهم من ذلك، يجب أن تشكر هؤلاء الباحثين على جهودهم لجعل CUDA يعمل على وحدات RISC-V GPGPU. في حين أن هذه ليست سوى خطوة صغيرة في الوقت الحالي، إلا أنها قد تكون بداية عصر يتم فيه استخدام RISC-V لتسريع تطبيقات الحوسبة، تمامًا مثل مجموعة GPU من Nvidia اليوم.


القراءة الموسعة: هل يمكن لـ RISC-V تغيير وحدة معالجة الرسومات؟


هل يستطيع RISC-V التعامل مع معاملات GPU؟ هذا عمل قيد التقدم ويمكن تحقيقه من خلال إنشاء تصميم صغير فعال للمساحة مع إمكانية البرمجة المخصصة وقابلية التوسع.  
  أي شخص درس بنية GPU يعرف أن هذا هو بناء SIMD للمعالج المتجه. إنه معالج متوازي فائق الكفاءة يتم استخدامه في كل شيء بدءًا من تشغيل عمليات المحاكاة والألعاب الرائعة إلى تعليم الروبوتات كيفية الحصول على الذكاء الاصطناعي ومساعدة الأشخاص الأذكياء على التعامل مع سوق الأسهم. حتى أنه يتحقق من قواعدي وأنا أكتب هذا.  
  لكن مجال وحدة معالجة الرسوميات أصبح مجالًا خاصًا، ويتم تنفيذ العمل الداخلي فيه بواسطة الملكية الفكرية و ستارفيل إمدادات المطورين مثل AMD وIntel وNvidia. ماذا لو وُجدت مجموعة جديدة من تعليمات الرسومات المصممة للرسومات ثلاثية الأبعاد ومعالجة الوسائط؟ حسنًا، ربما.  
  يتم بناء التعليمات الجديدة على مجموعة تعليمات المتجهات الأساسية RISC-V. سيضيفون دعمًا لأنواع البيانات الجديدة الخاصة بالرسوم البيانية كامتدادات ذات طبقات بروح RISC-V ISA الأساسية. يدعم عمليات المتجهات والرياضيات السابقة والبكسل والملمس وعمليات المخزن المؤقت Z/Frame. يمكن أن يكون CPU-GPU ISA مدمجًا. المكتبة - مجموعة RISC 3D تسميها RV64X (الشكل 1) لأن التعليمات ستكون بطول 64 بت (32 بت لن تكون كافية لدعم ISA قوي).  
 

الشكل 1. يتضمن معالج الرسومات RV64X عدة معالجات رقمية (DSP) بالإضافة إلى وحدات نسيج مخصصة وكتل وظيفية.
 
  ذكرت المجموعة أن دوافعهم وهدفهم هو إنشاء تصميم صغير وفعال مع قابلية البرمجة والتوسعة المخصصة. ويجب أن توفر ملكية الملكية الفكرية وتطويرها بتكلفة منخفضة، وليس التنافس مع المنتجات التجارية. يمكن تنفيذه على أهداف FPGA وASIC وهو مجاني ومفتوح المصدر. يستهدف التصميم الأصلي وحدات التحكم الدقيقة منخفضة الطاقة والتي ستكون متوافقة مع Khronos Vulkan وتدعم واجهات برمجة التطبيقات الأخرى (OpenGL وDirectX وما إلى ذلك).  
               

وحدة معالجة الرسومات + RISC-V


سيكون للجهاز المستهدف وحدة GPU وظيفية ونواة RISC-V. يأتي هذا المزيج في شكل معالجات حيث يتم تشفير تعليمات 64 بت كتعليمات عددية. النقطة المهمة هي أن المترجم سيقوم بإنشاء تعليمات SIMD من أكواد التشغيل العددية البادئة. تتضمن الميزات الأخرى مشكلات قابلة للتغيير، وواجهة خلفية SIMD قائمة على المسند؛ تتبع الفروع؛ استثناءات دقيقة؛ وواجهة متجهة. ستتضمن التصميمات إصدار النقطة الثابتة 16 بت وإصدار النقطة العائمة 32 بت. الأول مناسب لتنفيذ FPGA.  
  وقال الفريق: "ليست هناك حاجة لاستخدام آلية استدعاء RPC/IPC لإرسال مكالمات API ثلاثية الأبعاد إلى مساحة ذاكرة وحدة المعالجة المركزية غير المستخدمة أو مساحة ذاكرة وحدة المعالجة المركزية غير المستخدمة إلى مساحة ذاكرة وحدة معالجة الرسومات والعكس صحيح".  
  تتمثل ميزة أسلوب CPU-GPU ISA "المدمج" في أنه يمكن استخدام خطوط أنابيب الرسومات القياسية في الكود الصغير، ويمكن دعم التظليل المخصص. يمكن أن يتضمن أيضًا امتدادات تتبع الأشعة.  
  سيكون التصميم بتنسيق Vblock (من مجهود Libre GPU):  
 
  • إنه يشبه VLIW نوعًا ما (ولكن ليس حقًا).
  • تُسبق كتل التعليمات بعلامات تسجيل توفر سياقًا إضافيًا للتعليمات العددية داخل تلك الكتلة.
  • تتضمن الكتل الفرعية طول المتجه والدوران وتراكب المتجه/العرض والتنبؤ.
  • كل هذا يضاف إلى رموز التشغيل العددية!
  • لا توجد أكواد تشغيل متجهة (ولا تحتاج إلى أي منها).
  • في سياق المتجه، يكون الأمر على النحو التالي: إذا كان كود التشغيل العددي يستخدم سجلاً، وكان هذا السجل مدرجًا في سياق المتجه، فسيتم تنشيط وضع المتجه.
  • يؤدي التنشيط إلى قيام حلقة for على مستوى الأجهزة بإصدار عمليات عددية متتالية متعددة (بدلاً من عملية واحدة فقط).
  • يتمتع القائمون على التنفيذ بالحرية في تنفيذ الحلقات بأي طريقة يريدونها - SIMD، ومتعددة المشكلات، وتنفيذ فردي؛ أي شيء إلى حد كبير.

  يتعامل المتجه RV32-V مع عمليات المتجهات ذات 8 بت أو 16 بت أو 32 بت/العنصر من 2 إلى 4 عناصر. سيكون هناك أيضًا تعليمات مخصصة لخط أنابيب عرض الرسومات ثلاثية الأبعاد العام لنقاط XYZW ذات النقطة الثابتة والعائمة 3 بت و64 بت. 128 و8 و16 و24 بت RGBA بكسل؛ 32 بت، 8 بت UVW تيكسل لكل مكون؛ وإعدادات الإضاءة والمواد (Ia، ka، Id، kd، Is، ks، إلخ).  
  يتم تمثيل ناقل السمة كمصفوفة 4 × 4. سيدعم النظام أصلاً المصفوفات 2 × 2 و 3 × 3. قد يكون دعم المتجهات مناسبًا أيضًا لعمليات المحاكاة الرقمية باستخدام أنواع البيانات الصحيحة ذات 8 بت الشائعة في تطبيقات الذكاء الاصطناعي والتعلم الآلي.  
  يمكن تضمين أدوات المسح المخصصة مثل الخطوط وأسطح SubDiv والتصحيحات في التصميم. تسمح هذه الطريقة أيضًا بتضمين مراحل خطوط الأنابيب المخصصة، ومراحل الهندسة/البكسل/مخزن الإطارات المخصصة، والمقسمات الفرعية المخصصة، وعمليات التثبيت المخصصة.  
             

RV64X


يتضمن التنفيذ المرجعي لـ RV64X ما يلي:
 
 
  • ذاكرة التخزين المؤقت للتعليمات/البيانات SRAM (32 كيلو بايت)

  • الرمز الصغير SRAM (8 كيلو بايت)

  • وحدة فك ترميز التعليمات ذات الوظيفة المزدوجة (موصولة بأسلاك صلبة لـ RV32V وX؛ وحدة فك ترميز التعليمات المشفرة الصغيرة لـ ISA المخصص)

  • ALU رباعي المتجهات (32 بت/ALU ثابت/عائم)

  • ملف تسجيل 136 بت (عناصر 1 كيلو)

  • وحدة وظيفية خاصة

  • وحدة الملمس

  • مخزن إطارات محلي قابل للتكوين


  RV64X عبارة عن بنية قابلة للتطوير (الشكل 2). تعتبر طريقة الدمج الخاصة بها جديدة، كما هو الحال مع استخدام السجلات القابلة للتكوين لأنواع البيانات المخصصة. يمكن استخدام الرمز الصغير المستند إلى SRAM المحدد من قبل المستخدم لتنفيذ ملحقات مثل مراحل النقطية المخصصة وتتبع الشعاع والرؤية الآلية والتعلم الآلي. يمكن تطبيق تصميم واحد على وحدة تحكم رسومية مستقلة أو حل متعدد النواة مع وحدات تظليل قابلة للتطوير.  
 

الشكل 2. يمكن لـ RV64X التوسع من تصميم بسيط منخفض النهاية (يسار) إلى حل متعدد النواة (يمين).  
  تتناول ملحقات الرسومات لـ RISC-V قابلية التوسع وتعدد اللغات. وهذا يتيح حالات استخدام ذات مستوى أعلى تؤدي إلى المزيد من الابتكار.  
             

ماذا بعد


لا تزال مواصفات RV64X في مرحلة التطوير المبكر وقابلة للتغيير. ويجري إنشاء منتدى للمناقشة. الهدف المباشر هو بناء مثال للتنفيذ باستخدام محاكي مجموعة التعليمات. سيتم فتح هذا باستخدام تطبيقات Source IP وFPGA لعنوان IP المخصص المصمم كمشاريع مفتوحة المصدر.





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

whatsapp

الخط الساخن للخدمة

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950