Ana içeriğe atla

Veri Bilimi Okulu

LLM İçin GPU Rehberi
LLM İçin GPU Rehberi
llm_icin_gpu_rehberi_kapak_960x640

LangChain ile uygulama geliştiriyorsunuz, lokalde model koşturuyorsunuz, RAG kuruyorsunuz. Sonra sohbet H100’e, 4090’a, “şu kart kaç GB” muhabbetine geliyor ve kafanız duruyor. Bu yazıda bir GPU’nun içinde ne olduğunu, kart isimlerinin neyi kodladığını ve “bu model bu karta sığar mı” sorusunu kâğıt üstünde cevaplamayı birlikte öğreneceğiz.

Şunu baştan söyleyelim: bu kafa karışıklığı sizin eksiğiniz değil. NVIDIA aynı anda dört ayrı isimlendirme şeması kullanıyor, aynı kartın SXM ve PCIe sürümleri farklı sayılar veriyor, üstelik ürün sayfalarındaki TFLOPS rakamları gerçekte ulaşamayacağınız koşullar için yazılmış. Ama işin özü sandığınızdan çok daha basit ve tek cümleye sığıyor: LLM çalıştırırken aldığınız şey hesap gücü değil, bellek.

Yazının sonunda şunları yapabileceksiniz: bir kartın adına bakıp hangi kuşaktan ve hangi segmentten olduğunu söyleyebileceksiniz, elinizdeki modelin hangi karta sığacağını hesaplayabileceksiniz, bir kartın o modeli kabaca kaç token/saniye üreteceğini kâğıt üstünde tahmin edebileceksiniz ve “2.000 dolarlık kart mı 25.000 dolarlık kart mı” sorusunun cevabının aslında neye bağlı olduğunu bileceksiniz.

Bu konularda kendinizi yetiştirmek istiyorsanız VBO MLOps/LLMOps Bootcamp tam sizlik.

1. GPU Aslında Ne Yapıyor?

CPU ile GPU arasındaki farkı anlatan klasik benzetme şudur: CPU birkaç tane çok zeki profesördür, GPU ise binlerce tane ortaokul öğrencisi. Profesöre karmaşık bir problemi verirsiniz, adım adım çözer. Öğrencilere ise aynı basit çarpma işlemini binlerce farklı sayı çifti için aynı anda yaptırırsınız. Bir sinir ağının yaptığı iş tam olarak ikincisidir — devasa matris çarpımları.

Bir NVIDIA GPU’sunun içinde SM (Streaming Multiprocessor) denen bloklar vardır; kartın gerçek yapı taşı budur. Her SM’in içinde iki tür hesap birimi bulunur[21][22]:

  • CUDA core — genel amaçlı, tek tek sayılarla çarpma-toplama yapan basit birim. Oyunda piksel gölgelendirmesi de bunun işi.
  • Tensor Core — küçük matrisleri tek hamlede çarpıp toplayan özel birim. Volta kuşağıyla (2017) geldi, bugün Blackwell’de 5. nesli çalışıyor. LLM’in ağır işinin neredeyse tamamı buradan geçer.

Kart tanıtımlarında gördüğünüz TFLOPS (saniyede trilyon kayan noktalı işlem) rakamı işte bu Tensor Core’ların teorik zirve hızıdır. Ve burada ilk tuzağa geliyoruz: NVIDIA’nın kendi ürün sayfasındaki H100 rakamı olan 1.979 TFLOPS FP16, sayfanın dibindeki dipnotta yazdığı gibi sparsity (seyreklik) ile ölçülmüş bir değerdir[1]. Yani ağırlıkların yarısının sıfır olduğu, LLM inference’ta gerçekleşmeyen bir senaryo. Dense (yoğun) gerçek değer bunun yarısı. Rakamları karşılaştırırken hep aynı temele indirin.

Ama asıl mesele şu ki, TFLOPS zaten sizin darboğazınız değil.

2. Asıl Kısıt: Bellek — Kapasite ve Bant Genişliği

Bir GPU’nun iki tane birbirinden bağımsız bellek kısıtı vardır ve ikisini karıştırmak en sık yapılan hatadır.

Birincisi kapasite: VRAM. Kartın üstündeki bellek. Model ağırlıkları (weights), KV cache ve ara hesaplar buraya sığmak zorunda. Sığmazsa program açılmaz bile — “CUDA out of memory” alır, iş biter. Bu bir eşik meselesidir: ya sığar ya sığmaz.

İkincisi hız: bellek bant genişliği (memory bandwidth). O bellekten saniyede kaç GB veri okunabildiği. Bu bir hız meselesidir: geniş olursa hızlı, dar olursa yavaş çalışır.

Neden ikincisi bu kadar önemli? Çünkü model bir token üretirken tüm ağırlıklarını bellekten bir kez okumak zorundadır. 8 milyar parametreli bir modeli FP16 hassasiyette çalıştırıyorsanız, her tek kelime parçası için 16 GB veriyi bellekten hesap birimlerine taşırsınız. Hesabın kendisi mikrosaniyeler sürer; taşıma işi zamanın neredeyse tamamını yer[13].

Bunun ne kadar dramatik olduğunu ölçmenin bir yolu var: arithmetic intensity (aritmetik yoğunluk), yani bellekten çekilen her bayt başına yapılan işlem sayısı. H100’ün hesap gücünü tam kullanabilmesi için bayt başına yaklaşık 591 işlem yapması gerekir. LLM’in token üretme fazında bu değer 1 ile 10 arasında kalır[13][23]. Yani kartın o meşhur petaflop’larının çok büyük kısmı boşta bekler, elinizdeki 25.000 dolarlık cihaz bir veri taşıma bandına dönüşür.

Şekil 1 — Kapasite “sığar mı” sorusunu, bant genişliği “ne kadar hızlı” sorusunu cevaplar. İkisi bağımsızdır: 48 GB’lık bir L40S, 32 GB’lık bir RTX 5090’dan daha çok model alır ama daha yavaş çalıştırır [1][8][10][13].

Bu şekildeki alt satır, elinizde kalması gereken tek formül:

Token/saniye tavanı ≈ bellek bant genişliği ÷ her token’da okunan ağırlık boyutu. Pratikte bu tavanın %50–75’ine ulaşırsınız; gerisini attention hesabı, KV cache okuması ve framework payı yer.

Bu formülü bir kere test edelim, çünkü işe yaradığını görmek gerekiyor. Qwen3 27B modelinin Q4 sürümü yaklaşık 16 GB yer kaplar. RTX 4090’ın bant genişliği 1.008 GB/s → tavan 63 token/s. Ölçülen gerçek değer 47 token/s, yani tavanın %75’i. RTX 3090’da (936 GB/s) tavan 58, ölçülen 38 — %65. RTX 5090’da (1.792 GB/s) tavan 112, ölçülen 62 — %55[10]. Formül tutuyor, üstelik büyük kartlarda verimin neden düştüğünü de görüyoruz: bant genişliği arttıkça darboğaz yavaş yavaş başka yerlere kayıyor.

3. Terminoloji

Şimdi sohbetlerde geçen kelimeleri tek tek yerine oturtalım. Bu tabloyu ezberlemeyin, bir kere okuyup geçin; ihtiyacınız olunca zaten geri döneceksiniz.

TerimNe demekLLM’ci için önemi
VRAMKartın üstündeki bellek, GB cinsindenEn kritik tek sayı. Model buraya sığmazsa hiçbir şey olmaz
HBM (High Bandwidth Memory)Çipin yanına dikey istiflenen pahalı bellek. HBM2e → HBM3 → HBM3eVeri merkezi kartlarının niye pahalı olduğunun cevabı. Bant genişliği GDDR’ın 3–8 katı
GDDROyuncu kartlarının belleği. GDDR6 → GDDR6X → GDDR7Ucuz ve hızlı, ama HBM kadar geniş değil
Bant genişliğiSaniyede bellekten okunabilen veri, GB/sToken üretme hızınızı doğrudan belirler
CUDA coreGenel amaçlı hesap birimiLLM’de neredeyse hiç bakmayın. Oyun ve grafik metriği
Tensor CoreMatris çarpımına özel birimAsıl işi yapan birim. Nesli (4./5.) hangi hassasiyetleri desteklediğini belirler
SMStreaming Multiprocessor — core’ların gruplandığı blokKartın “kaç işçi grubu var” ölçüsü
TFLOPSSaniyede trilyon işlemPazarlama rakamı. Hangi hassasiyette ve seyreklikle ölçüldüğüne bakın
FP32 / FP16 / BF1632 / 16 bitlik sayı formatları (4 / 2 / 2 bayt)FP16 ve BF16 standart inference hassasiyeti
FP8 / FP4 / INT48 ve 4 bitlik formatlar (1 ve 0,5 bayt)Belleği yarıya, çeyreğe indirir. Ama donanım desteği kuşağa bağlı
Sparsity (seyreklik)Ağırlıkların yarısını sıfır kabul eden hızlandırma tekniğiDatasheet’teki TFLOPS’u ikiye katlar, sizin işinizde genelde devreye girmez
NVLinkGPU’ları birbirine bağlayan özel yol (H100’de 900 GB/s)Modeli birden fazla karta böleceksiniz diye şart. PCIe’ye göre ~10 kat hızlı
PCIeKartın anakarta takıldığı standart yuva (Gen5 x16 ≈ 64 GB/s)NVLink yoksa kartlar arası trafik buradan geçer — ve yavaştır
SXMNVIDIA’nın kendi soket formatı, PCIe kartı değilAynı çipin SXM sürümü daha yüksek güç çeker, daha hızlıdır ve NVLink’i tamdır
TDPKartın çektiği azami güç, wattElektrik faturası ve güç kaynağı hesabı. H100 = 700 W, B200 = 1.000 W
ECCBellek hatalarını tespit/düzeltmeGünlerce süren eğitim işlerinde tek bit hatası her şeyi çöpe atar
MIGBir fiziksel GPU’yu izole parçalara bölmeSadece A100/H100 sınıfında var. Çok kiracılı ortamlarda işe yarar
Unified memoryCPU ve GPU’nun aynı belleği paylaşması (Apple Silicon)Mac’te 128 GB “VRAM” yapan şey bu — ama bant genişliği düşük

Precision formatları: bir bayt tablosu

Yazının geri kalanında sürekli kullanacağımız için bunu ayrıca yazalım. Bir parametrenin bellekte kapladığı yer[12]:

Tablodaki isimler ne? NVIDIA her GPU kuşağına bir bilim insanının soyadını veriyor: Ampere (2020, elektrikteki amper biriminin sahibi André-Marie Ampère’den), Ada Lovelace (2022, tarihin ilk programcısı), Hopper (2022, amiral ve bilgisayarcı Grace Hopper), Blackwell (2024, istatistikçi David Blackwell). Bunlar kronolojik sırayla çıkmıştır — yani “Ampere ve sonrası” demek, “2020’den bu yana çıkan bütün kartlar” demek. Hangi kartın hangi kuşaktan olduğunu bir sonraki bölümde tek tek göreceğiz.

Precision (hassasiyet)Parametre başına8B model70B modelHangi kuşakta donanım desteği var
FP324 bayt32 GB280 GBHepsinde (ama LLM’de kullanılmaz)
FP16 / BF162 bayt16 GB140 GBAmpere ve sonrası
FP8 / INT81 bayt8 GB70 GBAda, Hopper, Blackwell (Ampere’de yok)
4-bit (INT4 / NF4 / FP4)0,5 bayt*4 GB35 GBYazılımla her yerde; donanım FP4’ü yalnızca Blackwell’de

* Pratikte tam 0,5 bayt olmaz — her ağırlık grubunun bir de scale değeri saklanır. Neden ve ne kadar, 8. bölümde.

Buradaki en can alıcı satır üçüncüsü. RTX 3090 ve A100 Ampere kuşağıdır ve FP8 için donanım desteği yoktur. INT4 quantization’ı yazılımla yaparsınız, bellek yine yarıya iner, ama Ada ve sonrasının aldığı hız kazancını alamazsınız[27].

4. NVIDIA GPU KArtlardaki A, H, B Neyi Anlatıyor?

Şimdi kafa karışıklığının kaynağına gelelim. NVIDIA’nın isimlendirmesi aslında iki eksenli: mimari kuşağı ve segment.

Veri merkezi kartlarında baş harf mimarinin adıdır ve mimariler bilim insanlarından isim alır: A100 = Ampere, H100 = Hopper (Grace Hopper), B200 = Blackwell. GB200’deki G ise Grace, yani NVIDIA’nın kendi ARM tabanlı CPU’su — GB200 bir GPU değil, CPU+GPU’nun aynı pakete konduğu bir “superchip”tir[4].

Oyuncu tarafında ise mimari isme değil, seri numarasına yansır: RTX 3090 Ampere, RTX 4090 Ada Lovelace, RTX 5090 Blackwell. Yani RTX 5090 ile B200 aynı mimari kuşaktan, bambaşka segmentlerden.

Şekil 2 — Aynı mimari kuşağı üç ayrı segmentte ürüne dönüşür. Hopper’ın masaüstü sürümü hiç olmadı; Ada’nın da HBM’li veri merkezi sürümü. Segmentleri ayıran şey çip değil, bellek tipi ve bağlantı mimarisi [3][4][8][10][27].

5. Kartların Karşılaştırması: Rakamlar

Şimdi somut sayılara bakalım. İki ayrı tablo yapalım, çünkü bu kartlar aynı ligde değil.

Masaüstü ve iş istasyonu kartları

KartMimariVRAMBant genişliğiCUDA coreTDPAğustos 2026 sokak fiyatıQwen3 27B Q4 hızı
RTX 3090Ampere24 GB GDDR6X936 GB/s10.496350 W~1.200–1.400 $ (2. el)38 tok/s
RTX 4090Ada24 GB GDDR6X1.008 GB/s16.384450 W~2.150–2.400 $ (2. el)47 tok/s
RTX 5090Blackwell32 GB GDDR71.792 GB/s21.760575 W~3.900–4.400 $62 tok/s
L40SAda48 GB GDDR6864 GB/s350 Wbulutta ~0,72–0,86 $/saat
RTX PRO 6000Blackwell96 GB GDDR7 ECC1.792 GB/s24.064600 W~11.400–13.300 $

Kaynaklar: sokak fiyatları ve token hızları[10], L40S ve RTX PRO 6000 özellikleri[8][9], bulut fiyatları[15].

Bu tabloda dikkatinizi çekmek istediğim iki satır var. Birincisi 3090 ile 4090 arasındaki bant genişliği farkı sadece %8 — ama ölçülen hız farkı %24. Aradaki farkı Ada’nın daha güçlü Tensor Core’ları ve FP8 desteği kapatıyor. İkincisi RTX PRO 6000: 96 GB ile piyasadaki en yüksek VRAM’li tekil kart, üstelik H100’ün yarı fiyatına[9]. Tek sunucuda inference yapacaksanız bu kart son iki yılın en dikkate değer ürünü.

Veri merkezi kartları

KartMimariVRAMBant genişliğiFP16 Tensor*FP8*TDPNVLinkBulut $/saat**
A100 80GB SXMAmpere80 GB HBM2e2.039 GB/s312 TFLOPSdonanım yok400 W600 GB/s~1,07
H100 SXMHopper80 GB HBM33.350 GB/s1.979 TFLOPS3.958 TFLOPS700 W900 GB/s~2,50
H200 SXMHopper141 GB HBM3e4.800 GB/s1.979 TFLOPS3.958 TFLOPS700 W900 GB/s~4,54
B200 SXMBlackwell180–192 GB HBM3e~8.000 GB/s9 PFLOPS
(FP4: 20 PFLOPS)
~1.000 W1,8 TB/s~6,02
GB200 NVL72Blackwell + Grace72 GPU’luk rack130 TB/s (rack içi)1,1 ExaFLOPS FP41,8 TB/s / GPU

* NVIDIA’nın kendi ürün sayfasındaki değerler ve seyreklikle ölçülmüştür; yoğun (dense) gerçek değer bunun yarısıdır[1][2]. ** Ucuz sağlayıcılardaki on-demand fiyat; AWS ve Azure’da 2–3 katı[15].

Kaynaklar: NVIDIA H100 ve H200 ürün sayfaları[1][2], konsolide spec tabloları[3][24], A100[7], B200[5][6], Blackwell mimarisi[4].

Tabloyu okurken şuna dikkat edin: H100’den H200’e geçerken hesap gücü hiç değişmiyor. Aynı çip. Değişen tek şey bellek: 80 GB HBM3 yerine 141 GB HBM3e, 3,35 TB/s yerine 4,8 TB/s[2]. Ve buna rağmen H200, LLM inference’ta H100’den belirgin şekilde hızlı. Yazının başında söylediğimiz cümlenin en net kanıtı bu: bellek alıyorsunuz.

Bir uyarı: B200 için hem 180 GB hem 192 GB rakamını göreceksiniz. İkisi de dolaşımda — 192 GB fiziksel kapasite, 180 GB ise bazı sağlayıcıların kullanıma sunduğu değer[5][6]. Aynı şekilde TDP için 700 W ve 1.000 W ikisi de dolaşıyor; SXM modülünün konfigürasyonuna göre değişiyor. Bir kartı satın alırken ya da kiralarken sağlayıcının kendi spec sayfasına bakın.

NVIDIA dışı iki alternatif

Tabloları NVIDIA üzerinden kurduk çünkü ekosistemin fiili standardı orada. Ama iki alternatifi de bilelim. AMD tarafında MI300X ve MI355X, bellek kapasitesinde açık ara önde — MI355X 288 GB ile H200’ün 141 GB’ının iki katından fazlasını veriyor[28]. Yazılım tarafı (ROCm) eskisi kadar sorunlu değil; vLLM ve SGLang AMD’yi destekliyor. Apple Silicon tarafında ise unified memory ilginç bir yer tutuyor: M3 Ultra 96 GB belleği 819 GB/s bant genişliğiyle sunuyor ve 70B bir modeli Q4’te 25–30 token/s ile çalıştırıyor[16]. Bant genişliği bir 4090’ın altında ama kapasite hiçbir masaüstü NVIDIA kartında olmayan seviyede. Tek kişilik lokal geliştirme için gayet mantıklı bir tercih.

6. Oyuncu Kartı mı Veri Merkezi Kartı mı? Gerçek Farklar

“RTX 5090 32 GB, 4.000 dolar. H100 80 GB, 25.000 dolar. Sekiz tane 5090 alsam 256 GB etmez mi?” Bu soruyu herkes soruyor ve cevabı hayır. Nedenleri sırayla:

NVLink yok. Bu en büyük fark. Modeli iki karta böldüğünüzde (tensor parallel) kartlar her katmanda birbirleriyle konuşmak zorundadır. H100’de bu trafik 900 GB/s NVLink üzerinden akar[1]. RTX 4090 ve 5090’da NVLink hiç yoktur — trafik PCIe Gen5 üzerinden, yaklaşık 64 GB/s ile geçer. On dört kat dar bir boru. İlginç bir ayrıntı: RTX 3090’da NVLink vardı, 4090’la birlikte kaldırıldı. Bu yüzden ikinci el 3090 çifti, lokal 70B çalıştıranlar arasında hâlâ popüler[16].

ECC yok. Oyuncu kartlarında bellek hatası düzeltmesi yoktur. Bir haftalık fine-tuning işinin ortasında sessizce bozulan bir bit, işin tamamını çöpe atabilir.

Lisans meselesi. NVIDIA 2018’de GeForce sürücü lisansını değiştirip veri merkezinde kullanımı yasakladı[19][20]. Metin blockchain madenciliğini istisna tutuyor ama genel olarak GeForce kartlarını ticari veri merkezi dağıtımından dışlıyor. Kendi ofisinizdeki makinede sorun yok; müşteriye GPU kiralayan bir servis kuracaksanız bu hukuki bir mesele.

Soğutma ve form faktör. Veri merkezi kartları pasif soğutmalıdır — havayı rack’in kendi fanları basar. Oyuncu kartları kendi fanlarıyla gelir, üç slot kaplar ve yan yana dizildiklerinde birbirlerinin havasını emerler.

Sürekli çalışma. Bir H100 %100 yükte yıllarca çalışmak üzere tasarlanmıştır. Bir 5090 bunun için tasarlanmadı.

Peki oyuncu kartı ne zaman doğru tercih? Cevap net: tek makinede, tek karta sığan modellerle, kendi kontrolünüzdeki bir ortamda çalışıyorsanız. Prototipleme, lokal geliştirme, küçük ekip içi servis, fine-tuning denemeleri. Bu senaryolarda RTX 4090 fiyat/performansta hâlâ zor yenilir. Aradaki boşluğu dolduran ürün ise RTX PRO 6000: ECC’si var, 96 GB’ı var, sunucuya takılabiliyor, ama NVLink’i yok ve fiyatı H100’ün yarısı[9].

7. Bu Model Bu Karta Sığar mı?

Geldik yazının en pratik bölümüne. Bir modelin VRAM ihtiyacı üç parçadan oluşur:

Toplam VRAM ≈ model ağırlıkları
            + KV cache
            + activation ve framework payı (~%10-15)

Parça 1: Model ağırlıkları

En kolay parça. Parametre sayısı × parametre başına bayt. Aklınızda tutmanız gereken kaba oran şu — milyar parametre başına:

HassasiyetGB / milyar parametre8B32B70B
FP16 / BF162,0 GB16 GB64 GB140 GB
INT8 / FP81,0 GB8 GB32 GB70 GB
4-bit (INT4 / NF4 / FP4)0,5–0,65 GB4–5 GB16–21 GB35–46 GB

4 bitte aralık vermemin sebebi şu: pratikte quantization tam 4 bit olmaz. Her ağırlık grubunun yanında bir de scale değeri saklanır ve bu ortalamayı 4,25–4,5 bite çıkarır; üstüne Q4_K_M gibi karma formatlar bazı katmanları daha yüksek hassasiyette tutar[14]. Bir sonraki bölümde bunun neden böyle olduğuna bakacağız.

Parça 2: KV cache — sinsi olan

Model ağırlıkları sabittir; KV cache değişkendir ve sistemleri asıl çökerten budur. Formülü şöyle[11]:

KV cache = 2 × katman_sayısı × kv_head_sayısı × head_boyutu
           × context_uzunluğu × eşzamanlı_istek × bayt

# baştaki 2: key ve value tensörleri ayrı ayrı tutuluyor

Llama-3-70B için sayıları yerine koyalım: 80 katman, 8 KV head, 128 head boyutu, BF16 (2 bayt). Token başına 320 KB eder. 4.096 token’lık context ve 8 eşzamanlı istekte bu 10 GB’a çıkar[11]. Yani 140 GB’lık modelin yanına 10 GB daha. 128K context’e çıkarsanız tek istek için bile 40 GB’a dayanır[12].

Buradaki kurtarıcı mimari detay GQA (Grouped-Query Attention). Llama-3-70B’nin 64 query head’i var ama sadece 8 KV head’i. Eğer klasik MHA kullansaydı KV cache 8 kat büyük, yani 80 GB olacaktı ve model iki değil dört GPU isteyecekti[11]. Modern modellerin hemen hepsi GQA kullanıyor — bu yüzden context penceresi büyürken bellek ihtiyacı o kadar hızlı büyümüyor.

Şekil 3 — Aynı model, üç ayrı precision’da. 70B FP16 tek karta hiçbir şekilde sığmaz; 4 bite indiğinde tek bir L40S’e ya da RTX PRO 6000’e girer. Quantization bir hız numarası değil, kapasite numarasıdır [12].

Parça 3: Hepsini birleştirelim

Hangi model hangi karta sığar? (ağırlıklar + makul KV cache payı)04080120160GB24 GB · 3090/409032 GB · 509048 GB · L40S80 GB · H10096 GB · PRO 6000141 GB · H200201178BLlama 3.1 8B76402232BQwen3 32B168844670BLlama 3.3 70BFP168-bit4-bitKesikli çizgiler kart kapasiteleridir. Çubuk çizgiyi aşıyorsa o karta sığmaz — üstelik bu değerlerde uzun context yok.Şekil 3 — Aynı model, üç ayrı precision’da. 70B FP16 tek karta hiçbir şekilde sığmaz; 4 bite indiğinde tek bir L40S’e ya da RTX PRO 6000’e girer. Quantization bir hız numarası değil, kapasite numarasıdır [12].

Şimdi bunu bir karar tablosuna çevirelim:

Ne çalıştırmak istiyorsunuzYaklaşık VRAMEn ucuz makul kartNot
8B, Q4, kısa context~7 GB8–12 GB’lık herhangi bir kartDizüstü kartlarında bile döner
8B, FP16, 8K context~20 GBRTX 3090 / 4090 (24 GB)Sınırda; context’i büyütürseniz taşar
32B, Q4, 8K context~24 GBRTX 5090 (32 GB)24 GB’lık kartta context’e yer kalmaz
32B, FP8, 32K context~45 GBL40S (48 GB)Tek kart, sunucuya takılır
70B, Q4, 8K context~50 GB2× RTX 3090 (NVLink’li) veya RTX PRO 60004090 çiftinde NVLink olmadığı için yavaş
70B, FP8, 32K context~85 GBH100 (80 GB) sınırda, RTX PRO 6000 (96 GB) rahatTek H100’de context’i kısmanız gerekir
70B, FP16, 32K context~150 GB2× H100 veya tek H200 + kısıtlı contextH200 çifti (282 GB) rahat çalışır
70B tam fine-tuning570–660 GB8× H100Aşağıdaki bölüme bakın — büyük ihtimalle gerekmiyor

Kaynak[11][12].

8. Quantization: “4 Bit” Ne Demek, Ne Kadar Kaybediyoruz?

Üç ay sonra bu yazıya dönüp tek cümle okuyacaksanız şu olsun: modeli 4 bite indirmek, ağırlıkları kırpmak değildir. Her ağırlık grubuna 16 çentikli bir cetvel veririz ve bellekte yalnızca “kaçıncı çentik” bilgisini tutarız. Cetvelin boyu ayrıca, grup başına bir kez saklanır.

“Integer tam sayı demek — ondalık ağırlık nasıl sığıyor?”

Bu soru derste de yorumlarda da mutlaka geliyor, üstelik çok yerinde bir soru. Integer tam sayı demek; model ağırlıkları ise 0,0317 gibi ondalık değerler. Nasıl oluyor bu iş?

Şöyle bir sahne düşünelim. Elinizde bir cetvel var ama üzerinde sadece 16 çentik işaretli. Bu cetvelle 0,31 gibi bir değeri nasıl ölçersiniz?

İşin sırrı şu: cetvelin boyunu siz seçiyorsunuz. Ölçeceğiniz sayılar ±0,42 aralığındaysa cetveli tam o boyda yaparsınız. 16 çentik bu aralığa yayılır ve iki çentik arası 0,42 ÷ 8 = 0,0525 olur. Sonra ölçmek istediğiniz değeri cetvele dayar, en yakın çentiğe bakar ve deftere sadece çentik numarasını yazarsınız.

0,31 için adım adım:

1) Hangi çentiğe denk geliyor?     0,31 ÷ 0,0525 = 5,90
2) En yakın tam çentiğe yuvarla:   6           ← bellekte duran TEK şey bu
3) Okurken geri çarp:              6 × 0,0525 = 0,315
4) Kaybettiğimiz:                  0,315 − 0,31 = 0,005   (binde beş)

Yani integer “ondalık tutamıyor” değil. Ondalığı cetvel taşıyor, integer sadece kaçıncı çentik olduğunu söylüyor. Bu yüzden 4 bit gerçekten 4 bit: 16 çentiği numaralamak için tam olarak 4 bit yetiyor.

Şekil 4 — Üstte INT4: 16 çentik cetvele eşit aralıkla dağılmış. Altta FP4: aynı 16 çentik, ama ağırlıkların toplandığı yere sıklaştırılmış. Bellekte her iki durumda da yalnızca çentik numarası duruyor [25][29].

Cetvelin boyuna teknik olarak scale (ölçek) deniyor, sıfırın hangi çentiğe denk geldiğini tutan değere de zero_point. Geri kurma formülü bundan ibaret:

ağırlık ≈ scale × (çentik_no − zero_point)

Buradan iki pratik sonuç çıkıyor. Birincisi: grup ne kadar küçükse cetvel o kadar iyi oturur. 128 ağırlığa tek cetvel vermek yerine 32’lik gruplara ayrı cetveller verirseniz her cetvel kendi grubunun aralığına göre ayarlanır ve hata düşer. İkincisi: GPTQ ve AWQ’nun bütün marifeti bu cetvelleri en az hata verecek şekilde ayarlamaktan ibarettir[30].

Neden birkaç farklı 4 bit var?

Şekil 4’ün alt yarısına bakın. Model ağırlıkları rastgele dağılmaz — çoğu sıfırın etrafında toplanır, uçlara doğru seyrekleşir. INT4’ün eşit aralıklı cetveli bu dağılıma tam oturmaz: kalabalığın olduğu yerde çözünürlük az kalır, kimsenin olmadığı uçlarda çentik israf olur.

FP4 ve NF4 tam bunu düzeltir — aynı 16 çentiği sıfıra yakın sıklaştırır. Yani üç aile de aynı işi yapar, sadece çentikleri farklı dağıtır:

AileÇentikler nasıl dağılmışNerede karşınıza çıkar
INT4eşit aralıklıGPTQ, AWQ, GGUF’un Q4 varyantları
NF4normal dağılıma göre optimizeQLoRA / bitsandbytes
FP4sıfıra yakın sık, uzakta seyrekMXFP4, NVFP4 — Blackwell’in donanım formatı

Bir de donanım tarafı var: Blackwell’in Tensor Core’ları FP4’ü doğrudan çarpabiliyor, INT4 ise çoğu yolda önce FP16’ya açılıyor. İsimleri karıştırırsanız dert değil — pratikte hangi formatı kullanacağınıza zaten aracınız karar veriyor (vLLM’de AWQ ya da FP8, QLoRA’da NF4, llama.cpp’de Q4_K_M).

Meraklısına — “4 bit neden tam 0,5 bayt etmiyor?” Çünkü cetvellerin kendisi de yer kaplıyor. 128’lik bir grupta 128 çentik numarası (512 bit) + bir FP16 scale + bir FP16 zero_point (32 bit) = ağırlık başına 4,25 bit. Blackwell’in NVFP4’ünde bloklar 16’lık olduğu için cetvel yükü daha sık düşer, ağırlık başına 4,5 bit eder[25]. Bu yüzden 70B bir model 4 bitte kâğıt üstünde 35 GB görünürken gerçekte 37–40 GB geliyor. Tablolardaki “0,5–0,65 GB / milyar” aralığının sebebi bu.

Peki ne kadar kalite kaybediyoruz?

Neyse ki bu artık ölçülmüş bir şey[14]:

FormatEfektif bitPerplexity artışıGSM8K doğruluk kaybıVRAM tasarrufu
Q8_08%0–0,2~%0%50
Q6_K6,5%0,3–0,6~%60
Q5_K_M5,5%0,9–1,2~%0,5%65
Q4_K_M4,5%1,5–1,9~%1,5%71
AWQ 4-bit4,0%1,2–1,7~%1,3%73
GPTQ 4-bit4,0%2,0–2,5%73
Q3_K_M3,5%3,8–5,0~%5%78
Q2_K2,5%11–14~%14%82

Tablodan çıkan pratik sonuç net: 4 bit, işin en makul durduğu yer. Belleğin %70’inden fazlasını geri kazanıyor, kaliteyi yüzde bir buçuk düşürüyorsunuz. Q3’ün altına inmek ise pek nadir mantıklı — orada kayıp hızla açılıyor.

Bir ayrıntı daha var ve önemli: reasoning (akıl yürütme) yetenekleri, perplexity’den daha hızlı bozuluyor. Q3’te perplexity %4 kötüleşirken matematik doğruluğu %5 düşüyor — yani üç kat daha sert[14]. Modelinizi kod yazdırmak ya da hesap yaptırmak için kullanıyorsanız agresif quantization’a girmeden önce kendi test setinizde ölçün.

Format seçimine gelince: GGUF (Q4_K_M) llama.cpp ve Ollama dünyasının formatıdır, CPU offload yapabilir. AWQ ve GPTQ ise vLLM tarafında kullanılır ve GPU’da daha hızlıdır; ikisinden AWQ genelde daha az kalite kaybeder[30]. FP8 ise ayrı bir hikâye: donanım desteği olduğu için (Ada ve sonrası) hem bellek hem hız kazandırır, kalite kaybı ise neredeyse ölçülemez.

9. MoE Hilesi: 120B Modeli 32 GB’lık Kartta Çalıştırmak

Son iki yılda hesap kitabı bozan bir şey oldu: MoE (Mixture of Experts) modelleri. Bu mimaride model devasa olabilir ama her token için parametrelerin yalnızca küçük bir kısmı çalışır.

En temiz örnek OpenAI’ın gpt-oss-120b modeli: toplam 117 milyar parametre, ama token başına yalnızca 5,1 milyarı aktif[18]. Model MXFP4 formatında yaklaşık 60 GB yer kaplıyor — yani 32 GB’lık bir RTX 5090’a doğrudan sığmıyor[17].

Numara şu: attention katmanlarını GPU’da tutup expert ağırlıklarını sistem RAM’ine taşıyorsunuz. llama.cpp’de bunun flag’i --n-cpu-moe. Normalde CPU’ya bir şey taşımak felaket demektir, ama burada değil — çünkü token başına o expert’lerin sadece küçük bir kısmı okunuyor[17][26]. Şart: 64 GB’ın üzerinde sistem RAM’i.

Bu yüzden 2026’da “modelin kaç B’si var” sorusu tek başına yetmiyor. Yeni soru şu: kaç parametresi aktif? Bir MoE modeli bellekte 60 GB yer kaplayıp 5B’lik bir modelin hızında çalışabilir. Yoğun (dense) bir 70B ile toplam boyutu aynı olan bir MoE’nin donanım profili tamamen farklıdır.

10. Fine-tuning: Bambaşka Bir Bütçe

Buraya kadar hep inference konuştuk. Eğitim tarafı bambaşka bir dünya, çünkü ağırlıkların yanına üç yeni kalem ekleniyor: gradient’ler, optimizer state’leri ve backpropagation için saklanan activation’lar.

70B bir model için FP16 + Adam ile tam fine-tuning’in dökümü şöyle[12]:

KalemBoyutNe için
Model ağırlıkları~140 GBEğitilen parametreler
Gradient’ler~140 GBHer parametre için hesaplanan gradient
Optimizer state (Adam)~280 GBFP32 momentum buffer’ları
Activation’lar10–100+ GBBackpropagation için saklanan ara değerler
Toplam570–660 GB8× H100 gerekir

Aklınızda kalacak oran: tam fine-tuning, milyar parametre başına kabaca 8 GB ister. Inference’ın FP16’da 2 GB olduğunu düşünürseniz, dört katı.

İyi haber şu ki bunu neredeyse hiç yapmanız gerekmiyor. QLoRA ile base model 4 bitte donmuş halde tutulur, sadece küçük adaptör katmanları eğitilir. Aynı 70B model bu şekilde tek bir A100 80GB’da — hatta bazı yapılandırmalarda tek bir RTX 4090’da — fine-tune edilebiliyor[12]. 660 GB’dan 24 GB’a. Yaptığınız iş domain adaptasyonu ya da üslup öğretmekse QLoRA fazlasıyla yeter.

11. Hız Tahmini: Elinizdeki Kart Kaç Token/Saniye Yapar?

Şimdi Bölüm 2’deki formülü tekrar çıkaralım ve tablolaştıralım. Tavan = bant genişliği ÷ ağırlık boyutu, gerçek ≈ tavanın %50–75’i:

SenaryoOkunan ağırlıkRTX 3090
936 GB/s
RTX 4090
1.008 GB/s
RTX 5090
1.792 GB/s
H100
3.350 GB/s
H200
4.800 GB/s
8B, FP1616 GB5863112209300
8B, Q45 GB187202358670960
32B, Q419 GB49 †53 †94176253
70B, Q440 GBsığmazsığmazsığmaz84120

Teorik tavan değerleridir, token/saniye cinsinden. Gerçekte bunun %50–75’ini görürsünüz. † Ağırlıklar 24 GB’a giriyor ama KV cache’e yer kalmıyor; ancak çok kısa context ile çalışır.

Bu tabloyu kullanırken üç şeyi hatırlayın. Birincisi bu rakamlar tek kullanıcı içindir; batch’leyerek servis ettiğinizde toplam throughput çok daha yükseğe çıkar, çünkü aynı ağırlık okumasıyla birden fazla isteğe cevap verirsiniz. İkincisi bu sadece decode fazıdır; prompt’un işlendiği prefill fazı hesap sınırlıdır ve orada TFLOPS gerçekten önemlidir. Üçüncüsü context uzadıkça KV cache okuması da devreye girer ve hız düşer — Şekil 1’in ölçümlerinde 32K context’te 4090’ın hızı 47’den 30 token/s’ye iniyordu[10].

12. Pratik Öneriler

Toparlayalım. Kendinizi hangi cümlede buluyorsanız oradan devam edin:

“Lokalde model deneyeceğim, öğrenmek istiyorum.” İkinci el RTX 3090. 24 GB’ı 1.200–1.400 dolara veren başka bir şey yok[10]. 8B–14B modelleri rahat, 32B’yi Q4’te sınırda çalıştırırsınız. Mac kullanıcısıysanız zaten elinizdekiyle başlayın; 32 GB’lık bir M-serisi makine 14B’ye kadar gayet iyidir[16].

“Ciddi bir lokal iş istasyonu kuracağım.” RTX 5090 (32 GB) tek kart olarak en dengeli seçim: en yüksek bant genişliği, FP4 desteği ve 32 GB. Bütçe uzuyorsa RTX PRO 6000 ile 96 GB’a çıkarsınız — 70B modelleri FP8’de tek kartta çalıştırmak buradan geçiyor[9].

“Ekibe servis edeceğim, 10–50 kişi kullanacak.” Artık VRAM kapasitesi kadar eşzamanlılık da önemli, yani KV cache için bol yer gerekiyor. L40S (48 GB) ya da RTX PRO 6000 (96 GB) tek kartla; üstüne vLLM ile continuous batching. Bulutta kiralamak da tamamen makul: L40S saatlik 0,72–0,86 dolar[15].

“Prod’da yüzlerce kullanıcıya servis edeceğim.” H100 veya H200. H200’ün 141 GB’ı, 70B sınıfı bir modeli uzun context’le tek kartta tutmanızı sağlar — bu tek başına mimarinizi basitleştirir. NVLink’li bir konfigürasyon alın.

“Sıfırdan model eğiteceğim.” Bu yazının kapsamı dışında, ama kısaca: 8× H100 ya da B200 node’ları, InfiniBand ağ, ve muhtemelen bulut. Kendi donanımınızı almak yerine ilk denemeleri kiralayarak yapın.

Kiralama tarafında aklınızda tutabileceğiniz güncel on-demand fiyatlar: A100 80GB ~1,07 $/saat, H100 ~2,50 $/saat, H200 ~4,54 $/saat, B200 ~6,02 $/saat. AWS ve Azure’da aynı kartlar 2–3 kat pahalı[15]. Kesintiye dayanıklı işleriniz için spot fiyatlar %40–65 indirim veriyor.

Sonuç: Aklınızda Kalması Gereken Beş Şey

Bu yazı uzun oldu ama özü kısa:

Bir. LLM çalıştırırken darboğazınız hesap gücü değil bellektir. VRAM “sığar mı” sorusunu, bant genişliği “ne kadar hızlı” sorusunu cevaplar.

İki. Token/saniye tavanı kabaca bant genişliği ÷ modelin bellekteki boyutudur. Bu tek formülle herhangi bir kartın herhangi bir modeldeki hızını kâğıt üstünde tahmin edebilirsiniz.

Üç. İsimlerde harf mimariyi söyler (A/H/B), sayı segmenti. H100 ile H200 aynı çiptir; aralarındaki tek fark bellektir — ve bu fark yeterlidir.

Dört. Quantization bir hız numarası değil, kapasite numarasıdır. 4 bit, kaliteden %1,5 verip belleğin %70’ini geri alır. Bu takas neredeyse her zaman kârlıdır.

Beş. Oyuncu kartlarının eksiği FLOPS değil; NVLink, ECC ve lisans. Tek karta sığan işlerde fiyat/performansta yenilmezler, ölçeklenmeleri gerektiği anda duvara toslarlar.

Ve son bir tavsiye: kart seçerken önce modelinizi seçin, sonra hesabı yapın. “Hangi kartı alsam” sorusunun cevabı yoktur; “70B’yi 32K context ile 20 kişiye servis edeceğim” sorusunun cevabı vardır. Artık o hesabı yapabiliyorsunuz. Kolay gelsin — kartınız dolu, kuyruğunuz boş olsun!


Kaynaklar

  1. NVIDIA — H100 Tensor Core GPU (Official Product Page & Specs)
  2. NVIDIA — H200 Tensor Core GPU (Official Product Page & Specs)
  3. IntuitionLabs — NVIDIA Data Center GPU Specs: A Complete Comparison Guide
  4. Cudo Compute — NVIDIA’s Blackwell Architecture: Breaking Down the B100, B200 and GB200
  5. Runpod — NVIDIA B200 GPU: 180GB VRAM, Specs, Price & Benchmarks
  6. Introl — H100 vs H200 vs B200: Choosing the Right NVIDIA GPUs for Your AI Workload
  7. Thunder Compute — NVIDIA A100 GPU: Full Specs, Performance and Use Cases
  8. GPUPerHour — L40S vs RTX PRO 6000 Blackwell: Specs and Price Comparison
  9. Thunder Compute — NVIDIA RTX PRO 6000 Blackwell Pricing (August 2026)
  10. InsiderLLM — RTX 5090 Benchmarks: 5090 vs 4090 vs Used 3090 (2026)
  11. Lyceum Technology — KV Cache Memory Calculation for LLMs: Technical Guide
  12. Spheron — LLM VRAM Requirements: How Much GPU Memory You Need (2026)
  13. Jimin Lee — What Does “LLMs Are Memory Bandwidth Bound” Really Mean?
  14. Presenc AI — Local LLM Quantization Quality Benchmarks 2026 (GGUF, MLX, AWQ, GPTQ)
  15. Spheron — GPU Cloud Pricing Comparison 2026
  16. InsiderLLM — M4 Max and M3 Ultra for Local LLMs: Apple Silicon in 2026
  17. Aliteq — gpt-oss-120b Hardware Requirements and the MoE Offload Trick
  18. Hugging Face — openai/gpt-oss-120b Model Card
  19. TechPowerUp — NVIDIA Forbids GeForce Driver Deployment in Data Centers
  20. Data Center Dynamics — Nvidia Updates GeForce EULA to Prohibit Data Center Use
  21. Wevolver — Tensor Cores vs CUDA Cores: The Powerhouses of GPU Computing
  22. Abhik Sarkar — GPU Streaming Multiprocessor (SM) Explained
  23. APXML — LLM Inference Bottlenecks: Memory and Compute
  24. Exxact — Comparing Blackwell vs Hopper: B300 & B200 vs H200 & H100
  25. ai.rs — 4-Bit Quantization Decoded: INT4 QAT, MXFP4 and NVFP4
  26. Hardware Corner — GPT-OSS 120B: Offloading MoE Layers to CPU
  27. Ace Cloud — NVIDIA Ada vs Ampere vs Hopper vs Blackwell: GPU Architecture Guide
  28. GPUPerHour — H200 vs MI355X: NVIDIA 141GB vs AMD 288GB
  29. Michael Brenndoerfer — Weight Quantization Basics: Scale, Zero-Point and Calibration
  30. VRLA Tech — LLM Quantization Explained: INT4, INT8, FP8, AWQ and GPTQ in 2026
  31. Kapak Görseli: Photo by Nana Dua on Unsplash

Bir yanıt yazın