
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.

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.
| Terim | Ne demek | LLM’ci için önemi |
|---|---|---|
| VRAM | Kartın üstündeki bellek, GB cinsinden | En kritik tek sayı. Model buraya sığmazsa hiçbir şey olmaz |
| HBM (High Bandwidth Memory) | Çipin yanına dikey istiflenen pahalı bellek. HBM2e → HBM3 → HBM3e | Veri merkezi kartlarının niye pahalı olduğunun cevabı. Bant genişliği GDDR’ın 3–8 katı |
| GDDR | Oyuncu kartlarının belleği. GDDR6 → GDDR6X → GDDR7 | Ucuz ve hızlı, ama HBM kadar geniş değil |
| Bant genişliği | Saniyede bellekten okunabilen veri, GB/s | Token üretme hızınızı doğrudan belirler |
| CUDA core | Genel amaçlı hesap birimi | LLM’de neredeyse hiç bakmayın. Oyun ve grafik metriği |
| Tensor Core | Matris çarpımına özel birim | Asıl işi yapan birim. Nesli (4./5.) hangi hassasiyetleri desteklediğini belirler |
| SM | Streaming Multiprocessor — core’ların gruplandığı blok | Kartın “kaç işçi grubu var” ölçüsü |
| TFLOPS | Saniyede trilyon işlem | Pazarlama rakamı. Hangi hassasiyette ve seyreklikle ölçüldüğüne bakın |
| FP32 / FP16 / BF16 | 32 / 16 bitlik sayı formatları (4 / 2 / 2 bayt) | FP16 ve BF16 standart inference hassasiyeti |
| FP8 / FP4 / INT4 | 8 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ği | Datasheet’teki TFLOPS’u ikiye katlar, sizin işinizde genelde devreye girmez |
| NVLink | GPU’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ı |
| PCIe | Kartın anakarta takıldığı standart yuva (Gen5 x16 ≈ 64 GB/s) | NVLink yoksa kartlar arası trafik buradan geçer — ve yavaştır |
| SXM | NVIDIA’nın kendi soket formatı, PCIe kartı değil | Aynı çipin SXM sürümü daha yüksek güç çeker, daha hızlıdır ve NVLink’i tamdır |
| TDP | Kartın çektiği azami güç, watt | Elektrik faturası ve güç kaynağı hesabı. H100 = 700 W, B200 = 1.000 W |
| ECC | Bellek hatalarını tespit/düzeltme | Günlerce süren eğitim işlerinde tek bit hatası her şeyi çöpe atar |
| MIG | Bir fiziksel GPU’yu izole parçalara bölme | Sadece A100/H100 sınıfında var. Çok kiracılı ortamlarda işe yarar |
| Unified memory | CPU 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şına | 8B model | 70B model | Hangi kuşakta donanım desteği var |
|---|---|---|---|---|
| FP32 | 4 bayt | 32 GB | 280 GB | Hepsinde (ama LLM’de kullanılmaz) |
| FP16 / BF16 | 2 bayt | 16 GB | 140 GB | Ampere ve sonrası |
| FP8 / INT8 | 1 bayt | 8 GB | 70 GB | Ada, Hopper, Blackwell (Ampere’de yok) |
| 4-bit (INT4 / NF4 / FP4) | 0,5 bayt* | 4 GB | 35 GB | Yazı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.

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ı
| Kart | Mimari | VRAM | Bant genişliği | CUDA core | TDP | Ağustos 2026 sokak fiyatı | Qwen3 27B Q4 hızı |
|---|---|---|---|---|---|---|---|
| RTX 3090 | Ampere | 24 GB GDDR6X | 936 GB/s | 10.496 | 350 W | ~1.200–1.400 $ (2. el) | 38 tok/s |
| RTX 4090 | Ada | 24 GB GDDR6X | 1.008 GB/s | 16.384 | 450 W | ~2.150–2.400 $ (2. el) | 47 tok/s |
| RTX 5090 | Blackwell | 32 GB GDDR7 | 1.792 GB/s | 21.760 | 575 W | ~3.900–4.400 $ | 62 tok/s |
| L40S | Ada | 48 GB GDDR6 | 864 GB/s | — | 350 W | bulutta ~0,72–0,86 $/saat | — |
| RTX PRO 6000 | Blackwell | 96 GB GDDR7 ECC | 1.792 GB/s | 24.064 | 600 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ı
| Kart | Mimari | VRAM | Bant genişliği | FP16 Tensor* | FP8* | TDP | NVLink | Bulut $/saat** |
|---|---|---|---|---|---|---|---|---|
| A100 80GB SXM | Ampere | 80 GB HBM2e | 2.039 GB/s | 312 TFLOPS | donanım yok | 400 W | 600 GB/s | ~1,07 |
| H100 SXM | Hopper | 80 GB HBM3 | 3.350 GB/s | 1.979 TFLOPS | 3.958 TFLOPS | 700 W | 900 GB/s | ~2,50 |
| H200 SXM | Hopper | 141 GB HBM3e | 4.800 GB/s | 1.979 TFLOPS | 3.958 TFLOPS | 700 W | 900 GB/s | ~4,54 |
| B200 SXM | Blackwell | 180–192 GB HBM3e | ~8.000 GB/s | — | 9 PFLOPS (FP4: 20 PFLOPS) | ~1.000 W | 1,8 TB/s | ~6,02 |
| GB200 NVL72 | Blackwell + Grace | 72 GPU’luk rack | 130 TB/s (rack içi) | 1,1 ExaFLOPS FP4 | — | 1,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:
| Hassasiyet | GB / milyar parametre | 8B | 32B | 70B |
|---|---|---|---|---|
| FP16 / BF16 | 2,0 GB | 16 GB | 64 GB | 140 GB |
| INT8 / FP8 | 1,0 GB | 8 GB | 32 GB | 70 GB |
| 4-bit (INT4 / NF4 / FP4) | 0,5–0,65 GB | 4–5 GB | 16–21 GB | 35–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.

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 istiyorsunuz | Yaklaşık VRAM | En ucuz makul kart | Not |
|---|---|---|---|
| 8B, Q4, kısa context | ~7 GB | 8–12 GB’lık herhangi bir kart | Dizüstü kartlarında bile döner |
| 8B, FP16, 8K context | ~20 GB | RTX 3090 / 4090 (24 GB) | Sınırda; context’i büyütürseniz taşar |
| 32B, Q4, 8K context | ~24 GB | RTX 5090 (32 GB) | 24 GB’lık kartta context’e yer kalmaz |
| 32B, FP8, 32K context | ~45 GB | L40S (48 GB) | Tek kart, sunucuya takılır |
| 70B, Q4, 8K context | ~50 GB | 2× RTX 3090 (NVLink’li) veya RTX PRO 6000 | 4090 çiftinde NVLink olmadığı için yavaş |
| 70B, FP8, 32K context | ~85 GB | H100 (80 GB) sınırda, RTX PRO 6000 (96 GB) rahat | Tek H100’de context’i kısmanız gerekir |
| 70B, FP16, 32K context | ~150 GB | 2× H100 veya tek H200 + kısıtlı context | H200 çifti (282 GB) rahat çalışır |
| 70B tam fine-tuning | 570–660 GB | 8× H100 | Aşağıdaki bölüme bakın — büyük ihtimalle gerekmiyor |
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.

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 |
|---|---|---|
| INT4 | eşit aralıklı | GPTQ, AWQ, GGUF’un Q4 varyantları |
| NF4 | normal dağılıma göre optimize | QLoRA / bitsandbytes |
| FP4 | sıfıra yakın sık, uzakta seyrek | MXFP4, 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]:
| Format | Efektif bit | Perplexity artışı | GSM8K doğruluk kaybı | VRAM tasarrufu |
|---|---|---|---|---|
| Q8_0 | 8 | %0–0,2 | ~%0 | %50 |
| Q6_K | 6,5 | %0,3–0,6 | — | ~%60 |
| Q5_K_M | 5,5 | %0,9–1,2 | ~%0,5 | %65 |
| Q4_K_M | 4,5 | %1,5–1,9 | ~%1,5 | %71 |
| AWQ 4-bit | 4,0 | %1,2–1,7 | ~%1,3 | %73 |
| GPTQ 4-bit | 4,0 | %2,0–2,5 | — | %73 |
| Q3_K_M | 3,5 | %3,8–5,0 | ~%5 | %78 |
| Q2_K | 2,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]:
| Kalem | Boyut | Ne için |
|---|---|---|
| Model ağırlıkları | ~140 GB | Eğitilen parametreler |
| Gradient’ler | ~140 GB | Her parametre için hesaplanan gradient |
| Optimizer state (Adam) | ~280 GB | FP32 momentum buffer’ları |
| Activation’lar | 10–100+ GB | Backpropagation için saklanan ara değerler |
| Toplam | 570–660 GB | 8× 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:
| Senaryo | Okunan ağırlık | RTX 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, FP16 | 16 GB | 58 | 63 | 112 | 209 | 300 |
| 8B, Q4 | 5 GB | 187 | 202 | 358 | 670 | 960 |
| 32B, Q4 | 19 GB | 49 † | 53 † | 94 | 176 | 253 |
| 70B, Q4 | 40 GB | sığmaz | sığmaz | sığmaz | 84 | 120 |
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
- NVIDIA — H100 Tensor Core GPU (Official Product Page & Specs)
- NVIDIA — H200 Tensor Core GPU (Official Product Page & Specs)
- IntuitionLabs — NVIDIA Data Center GPU Specs: A Complete Comparison Guide
- Cudo Compute — NVIDIA’s Blackwell Architecture: Breaking Down the B100, B200 and GB200
- Runpod — NVIDIA B200 GPU: 180GB VRAM, Specs, Price & Benchmarks
- Introl — H100 vs H200 vs B200: Choosing the Right NVIDIA GPUs for Your AI Workload
- Thunder Compute — NVIDIA A100 GPU: Full Specs, Performance and Use Cases
- GPUPerHour — L40S vs RTX PRO 6000 Blackwell: Specs and Price Comparison
- Thunder Compute — NVIDIA RTX PRO 6000 Blackwell Pricing (August 2026)
- InsiderLLM — RTX 5090 Benchmarks: 5090 vs 4090 vs Used 3090 (2026)
- Lyceum Technology — KV Cache Memory Calculation for LLMs: Technical Guide
- Spheron — LLM VRAM Requirements: How Much GPU Memory You Need (2026)
- Jimin Lee — What Does “LLMs Are Memory Bandwidth Bound” Really Mean?
- Presenc AI — Local LLM Quantization Quality Benchmarks 2026 (GGUF, MLX, AWQ, GPTQ)
- Spheron — GPU Cloud Pricing Comparison 2026
- InsiderLLM — M4 Max and M3 Ultra for Local LLMs: Apple Silicon in 2026
- Aliteq — gpt-oss-120b Hardware Requirements and the MoE Offload Trick
- Hugging Face — openai/gpt-oss-120b Model Card
- TechPowerUp — NVIDIA Forbids GeForce Driver Deployment in Data Centers
- Data Center Dynamics — Nvidia Updates GeForce EULA to Prohibit Data Center Use
- Wevolver — Tensor Cores vs CUDA Cores: The Powerhouses of GPU Computing
- Abhik Sarkar — GPU Streaming Multiprocessor (SM) Explained
- APXML — LLM Inference Bottlenecks: Memory and Compute
- Exxact — Comparing Blackwell vs Hopper: B300 & B200 vs H200 & H100
- ai.rs — 4-Bit Quantization Decoded: INT4 QAT, MXFP4 and NVFP4
- Hardware Corner — GPT-OSS 120B: Offloading MoE Layers to CPU
- Ace Cloud — NVIDIA Ada vs Ampere vs Hopper vs Blackwell: GPU Architecture Guide
- GPUPerHour — H200 vs MI355X: NVIDIA 141GB vs AMD 288GB
- Michael Brenndoerfer — Weight Quantization Basics: Scale, Zero-Point and Calibration
- VRLA Tech — LLM Quantization Explained: INT4, INT8, FP8, AWQ and GPTQ in 2026
- Kapak Görseli: Photo by Nana Dua on Unsplash