پروژه VeriGPU با هدف ایجاد یک پردازنده گرافیکی متنباز توسعهیافته با استفاده از زبان توصیف و مدلسازی سیستم الکترونیکی Verilog انجام میشود. در ابتدا، این پروژه با استفاده از شبیهساز Verilog توسعه داده میشود، اما پس از آماده شدن، برای تولید تراشههای واقعی مورد استفاده قرار خواهد گرفت. توسعههای این پروژه تحت مجوز MIT توزیع میشوند.
VeriGPU به عنوان یک پردازنده ASIC بهینه شده برای تسریع محاسبات یادگیری ماشینی قرار گرفته است. برنامههایی شامل سازگاری با چارچوب یادگیری عمیق PyTorch و امکان توسعه برنامههای کاربردی برای VeriGPU با استفاده از API رابط محاسبات ناهمگن (HIP) وجود دارد. پشتیبانی از سایر APIها، مانند SYCL و NVIDIA CUDA، نیز در آینده امکانپذیر است.
این پردازنده گرافیکی (GPU) بر اساس مجموعه دستورالعملهای RISC-V توسعه داده میشود، اما معماری داخلی حاصل از مجموعه دستورالعملهای GPU با RISC-V ISA سازگاری ضعیفی دارد. در شرایطی که طراحی پردازنده گرافیکی در چارچوب RISC-V جای نمیگیرد، حفظ سازگاری RISC-V هدف نیست. توسعه بر قابلیتهای مورد نیاز برای سیستمهای یادگیری ماشین متمرکز است. بنابراین، برای کاهش اندازه و پیچیدگی تراشه، فقط از فرمت ممیز شناور BF16 استفاده میشود و فقط عملیات ممیز شناور مورد نیاز برای یادگیری ماشین، مانند exp، log، tanh و sqrt، در دسترس هستند.
اجزای موجود شامل یک کنترلکننده GPU، یک APU (واحد پردازش شتابیافته) برای عملیات عدد صحیح ("+"، "-"، "/"، "*")، یک واحد ممیز شناور ("+"، "*") و یک واحد شاخهبندی است. یک اسمبلر و پشتیبانی از کامپایل کد C++ مبتنی بر LLVM برای توسعه برنامه در دسترس هستند. ویژگیهای برنامهریزیشده شامل اجرای موازی دستورالعملها، ذخیرهسازی دادهها و دستورالعملها در حافظه و عملیات SIMT (دستورالعمل واحد چند رشتهای) است.

منبع: opennet.ru
