پروژه gpu-unlock: باز کردن نرخ دستورات FP/BF16 در کارتهای گرافیک سری ۳۰۰۰ انویدیا — GPU-unlock: FP/BF16 instruction issue rate on Nvidia 3000's cards
خلاصه
ابزار gpu-unlock یک ماژول هسته لینوکس است که نرخ اجرای دستورات FP/BF16 را در کارتهای گرافیک سری ۳۰۰۰ انویدیا به سطح مدلهای حرفهای ارتقا میدهد. این پروژه با اعمال تنظیمات پیشدرایور و تزریق فریمور پیش از بارگذاری درایور اصلی انویدیا کار میکند و کارایی پردازش را دوبرابر میکند.
معرفی پروژه gpu-unlock و مشکل آن
پروژه gpu-unlock یک ماژول هسته لینوکس (Kernel Module) است که توسعهدهندگان را قادر میسازد نرخ صدور دستورات (Instruction Issue Rate) مربوط به محاسبات ممیز شناور FP و BF16 را در کارتهای گرافیک سری ۳۰۰۰ انویدیا (معماری Ampere شامل تراشههای GA102، GA103، GA104 و GA106) به سطح همتایان حرفهای و دیتاسنتری خود برسانند.
به طور پیشفرض، انویدیا برخی از قابلیتهای عملکردی این تراشهها را در مدلهای مصرفی محدود میکند. این ابزار با دور زدن محدودیتها، سرعت اجرای دستورات FMA مربوط به FP/BF16 را در عملیات FP32 تا حد زیادی افزایش میدهد.
معماری و نحوه کارکرد
این ماژول زبان C رویکردی ترکیبی دارد و تکنیک V67/PLM متعلق به آنلاکرهای CMP را با زمانبندی پیشدرایور مبتنی بر UEFI ترکیب میکند. نحوه عملکرد آن به شکل زیر است:
- پیش از اینکه درایور اصلی انویدیا کارت را اصطلاحاً Bind کند، ماژول کنترل را به دست میگیرد.
- انتخابگرهای سرعت (Speed Selectors) مانند SS0 و SS1 را مقداردهی میکند تا نرخ کامل BF16 فعال شود.
- یک عملیات FLR (Function Level Reset) روی سختافزار انجام میدهد.
- کل این فرآیند از طریق تزریق در مرحله initramfs و پیش از بالا آمدن کامل درایور انجام میشود.
مزیت بزرگ این رویکرد در مقایسه با پچ کردن دستی درایور این است که با هر بار آپدیت شدن درایور انویدیا، نیازی به پچ کردن مجدد نخواهید داشت.
نحوه نصب و استفاده
برای نصب و راهاندازی این ماژول در توزیعهای مختلف لینوکس، مراحل زیر دنبال میشود:
ابتدا مخزن را کلون کرده و نصب را اجرا کنید:
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install
سپس باید پارامتر gpu_unlock.targets=all را به خط فرمان کرنل (Kernel Command Line) اضافه کنید. این کار بسته به بوتلودر شما متفاوت است:
- در گراب (Debian / Ubuntu): پارامتر را در
GRUB_CMDLINE_LINUX_DEFAULTدر فایل/etc/default/grubاضافه کرده و سپسsudo update-grubرا اجرا کنید. - در Fedora / RHEL: از دستور `sudo grubby --update-kernel=ALL --args=
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل