تم نشر الإصدار الثاني من مشروع Vortex، وهو تطوير GPGPU مفتوح استنادًا إلى بنية مجموعة التعليمات RISC-V، المصممة لأداء الحوسبة المتوازية باستخدام OpenCL API ونموذج تنفيذ SIMT (تعليمات فردية، خيوط متعددة). يمكن أيضًا استخدام المشروع لإجراء أبحاث في مجال الرسومات ثلاثية الأبعاد وتطوير بنيات GPU جديدة. يتم توزيع المخططات وأوصاف كتل الأجهزة بلغة Verilog والمحاكاة وبرامج التشغيل ووثائق التصميم المصاحبة بموجب ترخيص Apache 3.
جوهر GPGPU هو RISC-V ISA عام، ممتد مع بعض الإرشادات الإضافية اللازمة لدعم وظائف وحدة معالجة الرسومات والتحكم في الخيوط. وفي الوقت نفسه، يتم الاحتفاظ بالتغييرات في بنية مجموعة تعليمات RISC-V إلى الحد الأدنى، ويتم استخدام تعليمات المتجهات الموجودة كلما أمكن ذلك. يتم استخدام نهج مماثل في مشروع RV64X، الذي يقوم أيضًا بتطوير وحدة معالجة رسومات مفتوحة تعتمد على تقنيات RISC-V.

بالنسبة للرسومات المستندة إلى تقنيات Vortex، يجري تطوير GPU Skybox المفتوح، الذي يدعم واجهة برمجة تطبيقات الرسومات Vulkan. النموذج الأولي لـ Skybox، الذي تم إنشاؤه على أساس Altera Stratix 10 FPGA ويتضمن 32 نواة (512 موضوعًا)، أتاح إمكانية تحقيق أداء تعبئة يبلغ 230 جيجا بكسل في الثانية (3.7 جيجا معاملات في الثانية) بتردد 29.4 ميجا هرتز. تجدر الإشارة إلى أن هذه هي أول وحدة معالجة رسومات مفتوحة مع تنفيذ البرامج والأجهزة التي تدعم Vulkan.
الميزات الرئيسية لـ Vortex:
- يدعم معماريات مجموعة تعليمات RISC-V 32 و64 بت RV32IMF وRV64IMAFD.
- عدد قابل للتكوين من النوى وكتل المهام (الإعوجاج) والخيوط.
- عدد قابل للتكوين من وحدات ALU وFPUs وLSUs وSFUs لكل مركز.
- عرض إصدار خط الأنابيب قابل للتعديل.
- ذاكرة مشتركة اختيارية وذاكرة تخزين مؤقت L1 وL2 وL3.
- دعم مواصفات OpenCL 1.2.
- إمكانية التنفيذ على أساس FPGA Altera Arria 10 وAltera Stratix 10 وXilinx Alveo U50 وU250 وU280 وXilinx Versal VCK5000.
- التعليمات المتقدمة: "tex" لتسريع معالجة النسيج، vx_rast للتحكم في التنقيط، vx_rop للتعامل مع الأجزاء والعمق والشفافية، vx_imadd لإجراء عمليات الضرب والإضافة، vx_wspawn، vx_tmc و vx_bar لتنشيط حواف التعليمات وواجهات الموجات، مجموعة من الخيوط يتم تنفيذها بالتوازي بواسطة محرك SIMD)، vx_split وvx_join.
- يتم تنفيذ دعم التمثيل الوسيط لتظليل SPIR-V عبر الترجمة إلى OpenCL.
- لتطوير التطبيقات، يتم تقديم مجموعة أدوات، بما في ذلك متغيرات PoCL (المترجم ووقت التشغيل OpenCL)، وLLVM/Clang، وGC، وBinutils المُكيَّفة للعمل مع Vortex.
- يتم دعم محاكاة الشريحة باستخدام Verilator (محاكاة Verilog)، وRTLSIM (محاكاة RTL)، وSimX (محاكاة البرامج).
من بين التغييرات في Vortex 2.0:
- تم تحسين البنية الدقيقة.
- تمت إضافة دعم لبنية مجموعة التعليمات RISC-V RV64IMAFD ذات 64 بت.
- تمت إضافة إمكانية التنفيذ بناءً على Xilinx FPGA.
- Добавлена поддержка LLVM 16 и Ubuntu 20.04.
- تم تنفيذ إعادة الهيكلة وتم تصحيح العيوب التي تم تحديدها أثناء تقييم الجودة.
المصدر: opennet.ru
