Voltaj Hata Enjeksiyonu (Voltage Glitching) ile Madencilik Kartımdaki A100'ü Ortaya Çıkarmak
Kaynak: Hacker News
İçindekiler 3 başlık
Özet (Summary)#
GA100 yongası (die) üzerinde keşfedilen bir voltaj hata enjeksiyonu (voltage fault injection) güvenlik açığı, operatörlerin rastgele sigortaları (fuses) patlatmasına olanak tanımaktadır. Bu zafiyet kullanılarak, standart bir CMP 170HX 8GB madencilik kartı fiilen bir A100-80G modeline dönüştürülmüştür.
Üstelik kilidi açılan bu kartlar, perakende satışta olan standart bir A100'den yaklaşık 1.2 kat daha hızlı performans göstermektedir. Bunun nedeni, NVIDIA'nın üretim verimliliğini (yield-safe) korumak amacıyla tüm ticari A100 kartlarında tercih ettiği 108 SM (Streaming Multiprocessor) sınırı yerine, silikon piyangosuna bağlı olarak kart üzerindeki tüm işlevsel SM birimlerinin (~120-126 adet) etkinleştirilmesidir. Ayrıca bu yaklaşımla, CMP serisinde devre dışı bırakılmış olan birçok donanım özelliği de geri kazanılabilmektedir:
- NVLink ve PCIe Gen4 bağlantı teknolojileri kilidi açılarak aktif hale getirilebilir.
- NVJPG, NVDEC ve MIG (Multi-Instance GPU) özellikleri de bu yöntemle açılabilir durumdadır (ancak bu çalışmada NVJPG, NVDEC ve MIG özel olarak test edilmemiştir).
Yazılım Geliştirme ve Öğrenme Çıkarımı: Donanım seviyesindeki kısıtlamaların çoğunlukla fiziksel sigortalarla (fuses) yönetildiğini anlamak, sistem mimarisi ve gömülü güvenlik çalışan geliştiriciler için kritik bir derstir. Yazılım katmanında yapılan kısıtlamalar ne kadar güçlü olursa olsun, donanım tabanlı hata enjeksiyonu (fault injection) saldırıları silikon düzeyindeki yapılandırmaları değiştirebilir.
GPU Envanteri ve Topolojisi (GPU Inventory and Topology)#
Kilidi açılmış "A100-80G" kartların sistemdeki görünümü ve topoloji çıktıları incelendiğinde donanımın kapasitesi net bir şekilde doğrulanmaktadır:
- GPU 0 (
00000000:81:00.0):0x20C210DEcihaz kimliği ile NVIDIA Graphics Device olarak tanımlanmakta ve 81920 MiB toplam belleğe sahip görünmektedir. - GPU 1 (
00000000:C1:00.0): Aynı şekilde0x20C210DEkimliği ve 81920 MiB bellek kapasitesiyle listelenmektedir. - Topoloji ve Bağlantı (
nvidia-smi topo -m): Her iki GPU birbirine NV12 (NVLink) üzerinden doğrudan bağlıdır, 0–127 CPU yakınlığına (CPU affinity) ve NUMA 0 düğümüne atanmıştır.
Pratik Çıkarım: Çoklu GPU (Multi-GPU) üzerinde derin öğrenme veya dağıtık model eğitimi yapan mühendisler için nvidia-smi topo -m çıktısını okumak temel bir beceridir. Kartlar arası NV12 bağlantısının aktif olması, PCIe darboğazına takılmadan yüksek hızlı veri aktarımı yapılmasını sağlar.
FP16 FMA İşlem Hacmi ve OpenCL Çıktısı (FP16 FMA Throughput & Full OpenCL Output)#
Ham OpenCL test çıktıları üzerinden yapılan karşılaştırmada, donanım kilidi açılmış kartın hesaplama gücü standart modeli geride bırakmaktadır:
- Perakende A100 (Retail A100): 72.488 TFLOP/s (1.00× referans hız)
- Donanım Kilidi Açılmış CMP 170HX: 85.858 TFLOP/s (1.18× daha yüksek hız)
Linux üzerinde 610.43.03 sürücüsü ve OpenCL C 3.0 ile derlenen testin detaylı donanım ve bant genişliği metrikleri şunlardır:
- Hesaplama Birimleri (Compute Units): 1410 MHz'de çalışan 124 birim (7936 çekirdek, 22.380 TFLOPs/s) ve maksimum 1024 iş parçacığı (workgroup).
- Bellek ve Önbellek: 81338 MB VRAM, 3472 KB global / 48 KB yerel önbellek; 20334 MB global ve 64 KB sabit tampon sınırı (buffer limits).
- Aritmetik İşlem Performansı: FP64'te 11.287 TFLOPs/s, FP32'de 22.781 TFLOPs/s, FP16'da 85.858 TFLOPs/s, INT64'te 2.759 TIOPs/s, INT32'de 22.769 TIOPs/s, INT16'da 20.273 TIOPs/s ve INT8'de 81.169 TIOPs/s.
- Bellek Bant Genişliği (Memory Bandwidth): Birleştirilmiş (coalesced) okumada 1883.17 GB/s, yazmada 2137.93 GB/s; hizasız (misaligned) okumada 1460.81 GB/s, yazmada ise 250.13 GB/s.
- PCIe Bant Genişliği (Gen3 x16): Gönderim 13.10 GB/s, alım 11.69 GB/s ve çift yönlü 11.58 GB/s.
Pratik Çıkarım: GPU programlama (CUDA/OpenCL) öğrenen geliştiriciler için buradaki en çarpıcı veri, birleştirilmiş (coalesced) yazma hızı (2137.93 GB/s) ile hizasız (misaligned) yazma hızı (250.13 GB/s) arasındaki devasa farktır. Yazılımda bellek erişim desenlerini doğru hizalamak, donanım potansiyelini tam kullanmak için zorunludur.
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:
- blog.kate.land/posts/using-voltage-glitching-to-unlock-the-a100