يطور مشروع VeriGPU وحدة معالجة رسومات مفتوحة بلغة Verilog

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

تم وضع VeriGPU كمعالج خاص بالتطبيقات (ASIC) مُحسّن لتسريع العمليات الحسابية المتعلقة بأنظمة التعلم الآلي. تتضمن الخطط التوافق مع إطار عمل التعلم الآلي العميق PyTorch والقدرة على تطوير تطبيقات لـ VeriGPU باستخدام واجهة برمجة تطبيقات HIP (واجهة الحوسبة غير المتجانسة). في المستقبل، من الممكن إضافة دعم لواجهات برمجة التطبيقات الأخرى، مثل SYCL وNVIDIA CUDA.

تتطور وحدة معالجة الرسومات من مجموعة تعليمات RISC-V، ولكن البنية الداخلية الناتجة لمجموعة تعليمات وحدة معالجة الرسومات متوافقة بشكل ضعيف مع RISC-V ISA، لأنه في المواقف التي لا يتناسب فيها تصميم وحدة معالجة الرسومات مع تمثيل RISC-V، ليس المقصود منه الحفاظ على توافق RISC-V. يركز التطوير على القدرات المطلوبة لأنظمة التعلم الآلي، وذلك لتقليل حجم وتعقيد مصفوفة الرقاقة، ويستخدم فقط تنسيق النقطة العائمة BF16 وعمليات النقطة العائمة المطلوبة للتعلم الآلي فقط، مثل exp، وlog، تانه وsqrt، متوفرة.

من بين المكونات المتوفرة بالفعل وحدة التحكم GPU، وAPU (وحدة المعالجة السريعة) لعمليات الأعداد الصحيحة (“+”، و-“، و”/، و*”)، ووحدة لعمليات الفاصلة العائمة (“+،” ،"*") وكتلة متفرعة. لإنشاء التطبيقات، فهو يوفر مُجمّعًا ودعمًا لتجميع كود C++ استنادًا إلى LLVM. من بين القدرات المخططة، يتم تسليط الضوء على التنفيذ المتوازي للتعليمات، والتخزين المؤقت للبيانات وذاكرة التعليمات، وعمليات SIMT (تعليمات واحدة متعددة الخيط).

يطور مشروع VeriGPU وحدة معالجة رسومات مفتوحة بلغة Verilog


المصدر: opennet.ru

إضافة تعليق