1 puan yazan GN⁺ 1 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Yalnızca RTX 4080 16GB ile yetersiz kalan yerel LLM ortamını tamamlamak için ikinci el bir Tesla V100 SXM2 16GB ve adaptör yaklaşık 200 £’a eklenerek toplam 32GB VRAM elde edildi
  • V100 SXM2, PCIe yuvası, ekran çıkışı ve standart güç konnektörü olmayan sunucu sınıfı bir GPU olsa da, SXM2-to-PCIe adaptörüyle oyun bilgisayarına takılabildi
  • Sunucu tipi fan varsayılan olarak 82dB ile iç mekânda kullanılamayacak kadar gürültülüydü; ancak PH2.0-2.54mm jumper kablosuyla anakart fan başlığına bağlanarak PWM kontrolü ve düşük gürültülü çalışma sağlandı
  • llama.cpp’nin tensor splitting özelliğiyle Qwen3.6-27B-MTP Q5_K_M, RTX 4080 ve V100 arasında bölünerek yüklendi; 128k context ve yaklaşık 32 tok/s çıkarım hızı elde edildi
  • Tek bir 32GB GPU kadar temiz bir çözüm değil ve sürücü, CUDA, warm reboot sorunları sürüyor; ancak ikinci el sunucu GPU’ları, yerel LLM için ucuz bir VRAM genişletme alternatifi olabilir

200 £’a kurulan 32GB yerel LLM ortamı

  • Yalnızca RTX 4080 16GB VRAM, istenen yerel modelleri çalıştırmak için yeterli olmayınca, ikinci el bir veri merkezi GPU’su adaptörle oyun bilgisayarına eklendi
  • Tesla V100 SXM2 16GB ile SXM2-to-PCIe adaptörü birlikte yaklaşık 200 £’a satın alındı ve iki GPU toplamında 32GB VRAM’li bir sistem kuruldu
  • 27B parametreli model iki GPU arasında bölünerek yaklaşık 32 tokens/s hızında çalıştırıldı; tüm model ve context VRAM’e sığdı
  • Deneyim tek bir 32GB tüketici GPU’su kadar sorunsuz değil, ancak RTX 5090 32GB’a göre çok daha düşük maliyetle VRAM kapasitesi elde ediliyor

Tesla V100 SXM2 ve adaptör

  • Tesla V100 SXM2 16GB, NVIDIA DGX sunucuları ve hyperscaler rack sistemleri için tasarlanmış bir GPU
    • Standart PCIe yuvası, ekran çıkışı ve standart güç konnektörü yok
    • Sunucu içindeki özel kartlara takılıyor ve NVLink üzerinden haberleşiyor
    • Doğrudan anakarta takmak için ayrı bir adaptör gerekiyor
  • V100 bir Volta GPU ve 16GB HBM2 bellek ile 5120 CUDA çekirdeğine sahip
    • eBay alış fiyatı yaklaşık 150 £ idi
    • 2017 çıkışlı bir GPU olsa da, hesaplama gücü ve VRAM kapasitesi yerel LLM kullanımında hâlâ geçerli
  • Başlıca avantajı HBM2 bellek bant genişliği
    • V100, 4096-bit bellek veri yolu üzerinden 900GB/s bant genişliği sunuyor
    • Bu, RTX 4080’in 736GB/s GDDR6X bant genişliğinden %22 daha yüksek
    • Apple M3 Max 400GB/s, M4 Max 546GB/s ve M5 Max 614GB/s değerlerinden de yüksek
  • AMD RX 7900 XTX, 24GB GDDR6 ve 960GB/s bant genişliğiyle V100’ün biraz üzerinde, ancak fiyatı 700 £’un üstünde
    • ROCm’nin LLM çıkarım desteği, CUDA’ya kıyasla hâlâ daha pürüzlü olarak değerlendiriliyor
    • V100, RX 7900 XTX bant genişliğinin %94’ünü dörtte birden düşük fiyata sunuyor ve llama.cpp ile çalışıyor
  • RTX 5090, 1.792GB/s bant genişliğiyle V100’ü açık şekilde geride bırakıyor, ancak fiyatı 2.000 £’un üzerinde
    • LLM çıkarımında tokens/s değerini belirleyen darboğaz genellikle bellek bant genişliği olduğu için bu önemli bir unsur
  • SXM2-to-PCIe adaptörü resmi bir NVIDIA ürünü değil ve resmi destek de yok
    • Bir tarafında SXM2 soketi, diğer tarafında PCIe edge connector bulunan çıplak PCB biçiminde
    • Fiyatı yaklaşık 50 £ ve toplam kurulum maliyeti böylece yaklaşık 200 £ oldu
    • Adaptör sayesinde V100 16GB, RTX 4080 ile birlikte anakarta takılabildi

Sunucu tipi soğutma fanı sorunu ve çözümü

  • V100 SXM2, 2U sunucuların endüstriyel soğutma ortamı için tasarlanmış
    • Adaptör üzerindeki fan, normal bir odada kullanılmayacak kadar gürültülü
    • Apple Watch ile ölçülen gürültü 82dB çıktı; çöp öğütücü ile çim biçme makinesi arasında bir seviyeye benzetiliyor
  • Varsayılan durumda fan kontrolü yapılamadı
    • nvidia-smi, Linux cihaz taraması ve Windows Afterburner denemelerinin hepsi başarısız oldu
    • Adaptör fanının, sunucu rack içinde sürekli %100 çalışacağı varsayımıyla tasarlandığı anlaşılıyor
  • 9V pil testi ile fan pin dizilimi doğrulandı
    • VCC ve ground uçlarına jumper kablo takılıp 9V pil bağlanınca fan döndü
    • 12V varsayılan çalışmaya göre çok daha sessizdi ve fanın kontrol edilebileceği görüldü
  • Fanın, standart PC kasa fanına benzer şekilde çalıştığı ortaya çıktı
    • Jumper kablo fan konnektörüne takıldı, diğer ucu anakarttaki boş fan başlığına bağlandı
    • Anakart RPM değerini okuyabildi ve PWM kontrolü de yapabildi
    • Hız %10’da tutulduğunda bile tam yükte 50°C’yi geçmedi ve neredeyse duyulmaz hâle geldi
  • Nihai kablo çözümü 2.54mm male to PH2.0 female jumper cable oldu
    • Adaptörün fan konnektörü 4 pin JST PH2.0 fiş kullanıyor
    • Anakart fan başlığı standart 0.1 inch, yani 2.54mm pitch
    • PH2.0 female tarafı fanın tachometer ve PWM pinlerine, 2.54mm male tarafı ise anakart fan başlığına bağlandı
    • Yaklaşık 2 £’luk jumper kablo ve doğru konnektörü doğrulamak, 82dB sorununu çözdü

İki GPU ile VRAM genişletme

  • Nihai GPU yapısı şu şekilde
    • RTX 4080: 16GB VRAM, Ada mimarisi
    • Tesla V100: 16GB VRAM, Volta mimarisi
    • Toplam: iki GPU’ya yayılmış 32GB VRAM
  • llama.cpp, tensor splitting ile modeli iki GPU arasında bölerek çalıştırabiliyor
    • Katmanlar PCIe veri yolu üzerinden pipeline şeklinde işleniyor
    • RTX 4080 bazı katmanları, V100 ise kalanları işliyor
    • Tek bir 32GB GPU’dan daha hızlı değil, ancak çalışıyor ve 32GB GPU maliyetinin yaklaşık %10’una kurulabiliyor
  • V100’ün güç tüketimi en fazla yaklaşık 150W seviyesinde gözlendi
    • Yerel LLM çıkarımı için küçük sayılmaz, ama olağan dışı derecede yüksek de değil
  • V100 32GB modeli de bir seçenek olarak duruyor
    • Satın alınan kartın iki katından pahalı, ancak tek kartta birkaç yüz pound karşılığında 32GB HBM2 sağlıyor
    • İki adet 32GB V100 ile 64GB VRAM elde edilebilir; bunun da güncel RTX 5090 fiyatının yaklaşık %20’sine denk geldiği belirtiliyor
  • SXM2 formu NVLink desteğini doğal olarak sunuyor
    • Düzgün bir çoklu GPU kurulumu yapılırsa GPU’lar yüksek bant genişliğiyle birbiriyle haberleşebiliyor
    • PCIe adaptörü üzerinden bile tensor split performansı yeterince sağlam bulundu

NixOS üzerinde sürücü ve CUDA sürümlerini eşleştirmek

  • Yazılım kurulumu NixOS sayesinde nispeten sorunsuz ilerledi
  • V100, Volta tabanlı bir çip ve NVIDIA, sürücü branch 560’tan itibaren Volta desteğini sonlandırdı
    • RTX 4080 Ada ile V100 Volta’yı aynı anda destekleyen son sürücü 550.x branch oldu
    • NixOS tarafında bu, nvidiaPackages.legacy_535 paketine karşılık geliyor
  • Bu sürücü yalnızca CUDA 12.2’ye kadar destekliyor
    • Güncel nixpkgs ise CUDA 12.6 ve üzerini sunuyor
    • Bu yüzden CUDA 12.2’nin nixpkgs 24.05’ten çekilmesi gerekti
  • Sürücü Linux kernel 6.6 gerektiriyor
    • legacy sürücü daha yeni kernel sürümlerini desteklemiyor
  • Headless bir çıkarım sunucusu olmasına rağmen services.xserver.enable = true gerekli oldu
    • Bu ayar olmadan NVIDIA kernel modülü yüklenmedi
  • Temel NixOS yapılandırması kernel, NVIDIA legacy sürücüsü ve X server için NVIDIA sürücüsünün belirtilmesinden oluşuyor
boot.kernelPackages = pkgs.linuxPackages_6_6;
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_535;
services.xserver.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
  • CUDA 12.2, eski bir nixpkgs sürümünden overlay ile alındı
nixpkgs.overlays = [
  (final: prev: {
    cudaPackages_12_2 = nixpkgs-cuda.legacyPackages.${prev.system}.cudaPackages_12_2;
  })
];
  • Her iki GPU da görünür hâle geldi ve CUDA da sorunsuz çalıştı
  • Tüm makine tanımı dotfiles repo’daki şu commit içinde yer alıyor
    • Doğru sürüme sabitlenmiş özel bir llama.cpp build’i ve servis tanımı da buna dahil

Çalıştırılan model ve performans

  • Çalıştırılan model, Qwen3.6-27B-MTP Q5_K_M quantized sürümü
    • Model boyutu yaklaşık 19GB
    • İki GPU birlikte kullanıldığında tüm model VRAM’e sığıyor ve context için de boşluk kalıyor
  • Başlıca çalışma ayarları şöyle
    • Model: Qwen3.6-27B-MTP Q5_K_M, 19GB
    • Context size: 128k tokens
    • GPU layers: 99, tamamı offload ediliyor
    • Tensor split: -ts 1.0,1.0, iki GPU’ya eşit dağıtım
  • Performans değerleri şöyle
    • Inference speed: yaklaşık 32 tok/s
    • Prompt processing: yaklaşık 133~160 tok/s
  • 32 tokens/s, etkileşimli kullanım için yeterli bir hız olarak değerlendiriliyor
    • Birbirinden farklı iki GPU mimarisinin PCIe üzerinden tensor split ile bağlandığı bir yapıda elde edildi
    • Ağ gecikmesi de hesaba katıldığında, çoğu cloud API endpoint’inden daha hızlı olduğu ifade ediliyor

MTP ve görsel girişi

  • MTP, Multi-Token Prediction anlamına geliyor
    • Normal LLM çıkarımı aynı anda yalnızca bir token tahmin eder, bunu kabul ettikten sonra sıradaki token’a geçer
    • MTP ise birden fazla gelecekteki token’ı aynı anda tahmin eder ve ardından doğru olanları doğrular
    • Kabul edilen token’lar neredeyse bedava sayılabilir; yanlış tahminler ise normal yola geri döner
  • MTP’nin sonucu, doğruluk kaybı olmadan üretim hızının yaklaşık 1.5~2 kat artması
    • Bu kurulumda yaklaşık 32 tok/s seviyesinden, MTP iyi çalıştığında 50~60 tok/s düzeyine çıkılabildiği belirtiliyor
    • Özellikle kod gibi tahmin edilebilir çıktılarda etkisi büyük
  • llama.cpp’deki MTP desteği henüz yeni bir özellik
    • nixpkgs içindeki llama.cpp sürümü, Qwen3.6 MTP mimarisini desteklemiyor
    • Bu desteğin eklendiği belirli bir commit üzerinden llama.cpp’nin kaynak koddan derlenmesi gerekti
    • NixOS’ta özel bir derivation, ilgili commit’e sabitlenerek tekrarlanabilir biçimde yapılandırıldı
    • Model veya llama.cpp sürümü değiştirmek, yapılandırmada tek satır değiştirip nixos-rebuild switch çalıştırarak yapılıyor
  • Qwen3.6-27B, ayrı bir multimodal projector dosyası olan mmproj aracılığıyla görsel girişini destekliyor
    • Ek dosyanın boyutu yaklaşık 928MB
    • Vision encoder, görüntü piksellerini LLM’in token embedding alanına dönüştürüyor
    • Model görüntüleri insan gibi “görmüyor”
    • LLM, dönüştürülmüş vektörleri başka bir token dizisi gibi işliyor
  • llama.cpp çalıştırma bayrakları şöyle
--mmproj /mnt/nas/llamacpp/mmproj-F16.gguf --mmproj-offload
  • --mmproj-offload, vision encoder’ı modelle birlikte GPU’ya yüklüyor
    • Böylece görsel girişinde de hızlı çıkarım korunabiliyor

Yerelde kullanım şekli

  • Bu kurulum OpenCode ile birlikte kullanılıyor
    • OpenCode, yerel modelleri hedef alarak çalışabilen bir yapay zeka kodlama asistanı
  • LLM sunucusu masaüstünde çalışsa da kullanım başka cihazlardan yapılıyor
    • Ev içindeki diğer makineler ağ üzerinden bağlanıyor
    • Dışarıdan erişim ise Tailscale ile sağlanıyor
  • OpenCode içinde llama.cpp sunucusunu kullanmak, API URL’sini ayarlayarak yapılıyor
    • Model yerelde çalışıyor
    • Yanıtlar hızlı geliyor ve veriler ağın dışına çıkmıyor

Kalan sorunlar ve sınırlamalar

  • V100’ün warm reboot sonrası kaybolması sorunu zaman zaman yaşanıyor
    • Yalnızca işletim sistemi yeniden başlatılıp anakart enerjili kalmaya devam ettiğinde, yeniden açılış sonrası lspci ve nvidia-smi içinde V100 bazen görünmüyor
    • Bunun PCIe yuvasının ACPI enumeration sorunuyla ilgili olduğu düşünülüyor
    • Gücü tamamen kesip birkaç saniye bekledikten sonra yapılan cold reboot ile her zaman düzeliyor
  • V100 olmadan llama.cpp başlayamıyor
    • Çünkü model tek bir 16GB GPU’ya sığmıyor
    • GPU geri dönene kadar servis crash loop içinde kalıyor
    • Yeniden başlatma sırasında genelde cihazın yanında olunduğundan, pratik kullanımda büyük sorun sayılmıyor
  • Farklı mimarilere sahip iki GPU’yu tensor split ile kullanmak, tek GPU kadar temiz bir kurulum değil
    • V100, çıkarım için de en hızlı GPU değil
    • Buna rağmen fiyat/performans açısından çok yüksek değer sunduğu düşünülüyor

Seçenekler ve sonuç

  • Yaklaşık 200 £’luk bu kurulumun sundukları şöyle
    • Oyun GPU’suyla birlikte çalışan 16GB veri merkezi GPU’su
    • Yerel LLM çıkarımı için toplam 32GB VRAM
    • 27B parametreli modelde 32 tokens/s
    • 128k token context window
    • Görsel giriş için vision desteği
    • Bulut veya token başı ücret olmadan tamamen yerelde çalışan model
  • Gerçek maliyet fan gürültüsüydü ve bu da jumper kablo ile doğru konnektörü bulup doğrulayarak çözüldü
  • Gerçek anlamda yerel model çalıştırmak isteyenler için ikinci el sunucu GPU pazarı bir alternatif olabilir
    • Mevcut bir GPU’nuz olmasa bile, tek bir V100’ü ucuz bir sunucu kutusuna takarak 16GB VRAM’li kullanılabilir bir yerel LLM ortamı kurulabilir
    • Tek seçenek yalnızca V100 SXM2 değil
    • P40 benzer maliyete 24GB sunuyor, ancak daha yavaş ve Tensor Cores içermiyor
    • V100 32GB modeli daha pahalı, ama aynı VRAM kapasitesine sahip tüketici GPU’larına kıyasla hâlâ daha ucuz
  • Ancak fan sorununa hazırlıklı olmak gerekiyor

1 yorum

 
GN⁺ 1 시간 전
Lobste.rs görüşleri
  • Yaklaşım gerçekten harika ve GPU’nun PCIe’de kaybolması olayı, nedeni çok fazla olduğu için daha da merak uyandırıyor
    GPU fanının yüksek sesle dönmesi, NVIDIA CUDA ekibinde olduğum zamanı hatırlatıyor. Bir iş arkadaşım NVML ve nvidia-smi’ye fan kontrolü özelliği ekliyordu; bölmenin öte yanından fanın hızlanıp yavaşladığı duyuluyordu, sonra o da parlak bir gülümsemeyle başını uzatmıştı
    Kod çalıştığı anda sonucu kulaklarıyla duyabildiği için, üzerinde çalıştığı özellikler arasında en sevdiği bunun olduğunu söylemişti

  • Kendi barındırdığınız LLM’lerle ilgileniyorsanız, Dell OEM RTX 3090 genelde büyük markaların ürünlerinden daha ucuz oluyor ve yaklaşık 800 Kanada dolarına bulunabiliyordu
    Şimdi vLLM’in nasıl çalıştığını daha fazla okumam gerek. Model bazen ilgili isimleri ve sıfatları uzun bir liste halinde kusmaya başlıyor; muhtemelen bir şeyi yanlış yapılandırdım

    • RTX 3090’da hangi modeli çalıştırdığınızı merak ediyorum
      İşe yarar modellerin çoğunu düzgün çalıştırmak için en az 48~64GB VRAM gerektiğini sanıyordum; bu yüzden birleşik bellek mimarisine sahip Apple M serisi çiplerin bu alanda popüler olduğunu düşünüyordum
  • Böyle ürünler zaten paketlenmiş biçimde de çıkıyor, ama olay 3 aylık üretici garantisi alıp işin orada bitmesi gibi
    https://ebay.com/itm/297819576914/…

    • Bu gerçekten cazip. Buradaki yazıda bahsedilen fan modifikasyonu bunda yapılmış gibi görünmüyor
  • ABD’de ikinci el 32GB model yaklaşık 600 dolara alıcı buluyor
    Adaptörü muhtemelen menşei olan Çin’den doğrudan alırdım

  • AMD tarafında buna karşılık gelen bir ürün olup olmadığını merak ediyorum. Şu anda iki adet 48GB W7900 kullanıyorum ve daha büyük modeller çalıştırabilmek için sistemi genişletmek istiyorum

    • Bir ölçüde var. V100 ile aynı dönemden Instinct MI60 var; epey eski ama 32GB VRAM sunuyor ve zaten PCIe kart sürümüyle geliyor
      Soğutmayı ayrıca halletmek gerekiyor ama adaptörle uğraşmaya gerek yok
      Yerel model kurulumlarıyla ilgili denk geldikçe okuyorum; şu an 48~128GB arası orta ölçekli VRAM ihtiyacında gerçekten fiyat/performans açısından tatlı nokta yok gibi görünüyor. Seçenekler kabaca üçe ayrılıyor: önceki üçüncü nesil veri merkezi GPU’larından birkaç tane (Tesla V100, Instinct MI60), yüksek VRAM’li güncel giriş seviyesi ürünlerden birkaç tane (Arc Pro B70), ya da güncel hepsi bir arada kutular (DGX Spark, Mac Mini, Strix Halo)
      Tek bir 32GB tüketici GPU’sundan ya da iki adet 16GB karttan yükseltme yapanlar için her birinin bazı ödünleşimleri var ama avantajları da mevcut. Zaten iki adet 48GB kart kullanıyorsanız, hissedilir bir iyileştirme gibi gelecek ikinci el donanım yükseltmesi var mı, doğrusu emin değilim