GPU-unlock: Nvidia 3000 Serisi Kartlarda FP/BF16 Komut İşleme Hızının Kilidini Açma
Kaynak: Hacker News
İçindekiler 3 başlık
GPU unlock 1.0.0: Profesyonel Seviye Performans Kilidini Açma#
Bu Linux çekirdek modülü (kmod), Nvidia 3000 serisi ekran kartlarındaki FP/BF16 komut işleme hızını profesyonel eşdeğerlerinin seviyesine çıkarmak için tasarlanmıştır. CMP kilit açıcının V67/PLM tekniğini, UEFI yaklaşımının sürücü öncesi (pre-driver) zamanlamasıyla birleştirir. Modül; kilidi açar, hız seçicilerini (SS0 0x88888888 tam BF16 hızını seçer ve 4-bit SS1 0x8 IMLA4) yazar ve değiştirilmemiş resmi NVIDIA sürücüsü karta bağlanmadan önce FLR (Function Level Reset) gerçekleştirir.
Bu araç ne bir UEFI uygulamasıdır ne de yamalanmış bir NVIDIA sürücüsüdür. Erken aşamada çalışan bu çekirdek modülü yaklaşımının yazılım geliştirme ve sistem yönetimi açısından en büyük pratik avantajı, NVIDIA her yeni sürücü sürümü yayınladığında manuel olarak yama yapma zorunluluğunu ortadan kaldırmasıdır.
Bu işlemin sonucunda GA102, GA103, GA104 ve GA106 grafik işlemcilerinde FP32 birikimli (accumulation) FP/BF16 FMA komut yürütme hızı iki katına çıkar. Derin öğrenme modelleri eğiten veya yerel çıkarım (inference) yapan geliştiriciler için bu, mevcut tüketici donanımıyla kurumsal seviyeye yakın matris çarpımı performansı elde etmek anlamına gelir.
3090 Ti yoğun 8192³ GEMM (450 W, FP32 birikimli beş örneklemli medyan değerleri):
- FP16: Önce 87.46 TFLOPS | Sonra 118.39 TFLOPS
- BF16: Önce 87.50 TFLOPS | Sonra 157.41 TFLOPS
- TF32: Önce 42.58 TFLOPS | Sonra 82.61 TFLOPS
Nasıl Kurulur (How to install)#
İlk olarak depoyu klonlayın ve kurulumu başlatın:
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install
Ardından mevcut seçeneklerinizi koruyarak çekirdek komut satırınıza (kernel command line) gpu_unlock.targets=all parametresini ekleyin:
- GRUB (Debian/Ubuntu/Mint):
/etc/default/grubiçindekiGRUB_CMDLINE_LINUX_DEFAULTsatırına ekleyin, ardındansudo update-grubkomutunu çalıştırın. - GRUB (Arch/CachyOS): Aynı düzenlemeyi yapın, ardından
sudo grub-mkconfig -o /boot/grub/grub.cfgkomutunu çalıştırın. - Fedora/RHEL:
sudo grubby --update-kernel=ALL --args="gpu_unlock.targets=all"komutunu çalıştırın. - systemd-boot: Önyükleme girdinizdeki
optionssatırına ekleyin (bootctl statuskonumu gösterir). - UKI / oluşturulan girdiler:
/etc/kernel/cmdlinedosyasına ekleyin ve önyükleme imajlarınızı/girdilerinizi yeniden oluşturun (örneğin mkinitcpio UKI'leri içinsudo mkinitcpio -P).
Yerel Derleme (Local build)#
Her derleme işlemi, sabitlenmiş NVIDIA/CachyOS girdilerini HTTPS üzerinden indirir, SHA-256 doğrulamasını yapar ve yalnızca derleme dizininde ve ikili (binary) pakette donanım yazılımı (firmware) üretir. Bu yaklaşım, güvenli yazılım tedarik zinciri ve tekrarlanabilir derlemeler (reproducible builds) açısından kritik bir mühendislik pratiğidir. Üç paket formatı da aynı make install-* hedefleri üzerinden kurulur ve paketler mevcut HEAD üzerinden inşa edilir.
Derleme, bağımlılıkları yükleme ve paket kurulumunu tek adımda gerçekleştirmek için (sudo parolası gerektirir):
make install— Dağıtımı algılar ve uygun yükleyiciyi seçer.make install-arch—makepkg -sifçalıştırır.make install-deb—apt-get build-dep,dpkg-buildpackage,apt-get installçalıştırır.make install-rpm—dnf builddep,rpmbuild,dnf installçalıştırır.
make install komutu Arch, Debian/Ubuntu veya Fedora/RHEL/CentOS ailelerini tespit etmek için /etc/os-release (ID ve ardından ID_LIKE) dosyasını kullanır. RPM yükleyicisi DNF gerektirir; diğer dağıtımlar için yukarıdaki uyumlu hedeflerden birini doğrudan seçebilirsiniz. Sadece paket derlemek için make arch, make deb ve make rpm komutları kullanılır; oluşturulan Debian ve RPM paketleri build/deb ile build/rpm dizinlerine kaydedilir.
Kaynak ve atıf
Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- github.com/Zagitta/gpu-unlock