🔌 Modül 5 · Çip Donanımı · Bölüm 5.9 · 10 dk okuma

Hesaplama Motoru ve DMA

Crossbar dışındaki her şey — aktivasyon, bias, veri akışı.

Bu bölümde öğreneceklerin

  • Compute engine'in crossbar dışındaki rolünü tanı (aktivasyon, bias, normalize)
  • DMA (Direct Memory Access) mekanizmasını ve SIDRA veri akışını açıkla
  • Aktivasyon fonksiyonlarının LUT (Look-Up Table) implementasyonunu yaz
  • Compute engine güç ve alan bütçesini Y1 için hesapla
  • Katmanlar arası veri akışının routing matrix üzerinden nasıl çalıştığını söyle

Açılış: MVM'den Sonra Ne Olur?

Crossbar bir MVM’yi 15 ns’de yapar. Ama AI modelleri sadece MVM değildir. Ek işlemler:

  • Bias ekleme: y = Wx + b. b vektörünü Wx’e ekle.
  • Aktivasyon fonksiyonu: ReLU, sigmoid, GELU, softmax. Non-lineerlik.
  • Layer normalization: mean/std ölç, normalize et.
  • Scale factor: kuantizasyon için.
  • Concatenation, split, reshape: tensör manipülasyon.

Bunların hepsi CMOS’ta Compute Engine’de yapılır. Crossbar MVM motoru, compute engine her şey motorudur.

DMA (Direct Memory Access): veri cluster/CU/crossbar arası taşınır. CPU’yu yormadan.

Sezgi: CMOS Yardımcısı

Her CU’da:

  • 16 crossbar (MVM motoru, analog).
  • 1 compute engine (CMOS dijital).

Compute engine:

  • ALU (Arithmetic Logic Unit): 32-bit integer/float toplam, çarpım, bit-shift.
  • Aktivasyon LUT: 256-entry tablo (ReLU, sigmoid, GELU). Tek-saat dönüşüm.
  • Scaler: ara sonuçları re-scale (INT8 için).
  • DMA controller: veri transferi.
  • Küçük SRAM (32 KB): ara buffer.

Saat: 1 GHz. CU başı 1 compute engine → 16 crossbar paralelleştirilir; compute engine sırayla çıkışları işler.

DMA:

Y1 bellek hiyerarşisi:

  • L3 SRAM (chip) 16 MB
  • L2 SRAM (cluster) 2 MB × 16 = 32 MB
  • L1 SRAM (CU) 128 KB × 400 = 50 MB

DMA bu katmanlar arası veri taşır, CPU instruction olmadan. Her cluster’da 1 DMA controller.

Formalizm: Compute Engine İşlemleri

L1 · Başlangıç

Temel compute engine işlemleri:

1. Bias ekleme:

Crossbar çıkışı yraw=Wx\mathbf{y}_{\text{raw}} = \mathbf{W} \mathbf{x}. Bias ekle: y=yraw+b\mathbf{y} = \mathbf{y}_{\text{raw}} + \mathbf{b}

Her element için 1 add. 256 element × 1 ns = 256 ns (veya 256 ALU paralel → 1 ns).

2. Aktivasyon (ReLU):

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

Hardware: basit comparator + MUX. 256 paralel → 1 ns.

3. Sigmoid / GELU (LUT):

Karmaşık fonksiyonlar için Look-Up Table:

  • 256 entry pre-computed.
  • Giriş 8-bit → tablo index → çıkış 8-bit.
  • 1 saat çevrimi (1 ns).

Alan: 256 × 8 bit = 2 kbit SRAM.

4. Softmax:

softmax(xi)=exi/jexj\text{softmax}(x_i) = e^{x_i} / \sum_j e^{x_j}

Hardware:

  • 256 exp LUT okuma.
  • 256 toplam (log_2 256 = 8 seviye tree).
  • 256 bölme (yeniden LUT).
  • Süre: ~20 ns. Transformer attention’da sık kullanılır.

5. Layer norm:

y=(xμ)/σy = (x - \mu) / \sigma

  • μ\mu: 256 toplam / 256 → 1 bölme.
  • σ\sigma: (x - μ)² toplam / 256, karekök.
  • Süre: ~50 ns.
L2 · Tam

DMA (Direct Memory Access):

Görev: bellek bölgesinden başka bir belleğe veri kopyala. CPU yok, DMA controller tek başına.

Y1 DMA tipik işlemi:

  1. CPU DMA controller’a “şu adresten şu adrese N byte kopya” der.
  2. DMA controller SRAM’lar arası veriyi kopyalar.
  3. Biten işlem interrupt veya flag → CPU biliyor.

DMA bandwidth: 10 GB/s per cluster → toplam 160 GB/s Y1.

Inference dataflow örneği (GPT-2 1 token):

1. CPU input token PCIe'den L3 SRAM'a yükler (4 KB).
2. DMA L3 → L2 (active cluster'a).
3. DMA L2 → L1 (active CU).
4. CU crossbar MVM yapar (attention Q).
5. Compute engine scale, softmax.
6. Sonuç L1 → L2 → L3 (DMA).
7. Sonraki layer tekrarla.

Her layer: ~1 µs (MVM + compute + DMA).

12 layer × 1 µs = 12 µs / token.

Hmm, önceki hesap 1.4 µs demişti (5.4’te). Fark: bu daha realist (DMA dahil). 1.4 µs = sadece MVM çekirdek süresi.

Veri hareketi güç:

DMA transfer: L1 → L2 ~1 pJ/byte. L2 → L3 ~5 pJ/byte. L3 → PCIe ~20 pJ/byte.

1 MB DMA intra-chip = 1M × 5 pJ = 5 mJ. Inference enerjisinin küçük payı.

L3 · Derin

Compute engine alan + güç Y1:

Her CU’da 1 compute engine:

  • ALU × 256 paralel: ~50K transistör.
  • LUT SRAM (10 KB): ~100K transistör.
  • DMA controller: ~20K transistör.
  • Toplam per CU: ~200K transistör ≈ 0.05 mm² 28nm.

Y1 400 CU × 0.05 mm² = 20 mm² compute engine alanı. Die’ın %20’si.

Güç:

Compute engine aktivite %50 (inference sırasında). CU tek tek 750 µW → Y1 toplam 300 mW. TDP %10 payı. Verimli.

DMA overhead:

Tipik layer: MVM 15 ns + compute 10 ns + DMA 50 ns = 75 ns. DMA baskın bile olabilir. Tasarım önceliği: veri hareketi minimize.

Fused operations:

Compile zamanında optimize: bias + ReLU tek operasyona birleştir → compute engine’de 1 saat çevrimi. Modern AI compiler’ları standart teknik.

On-chip cache hiyerarşisi:

L1 SRAM (128 KB) → aktif layer output. L2 SRAM (2 MB cluster) → 2-3 layer history. L3 SRAM (16 MB chip) → büyük buffer (KV cache transformer için).

KV cache: 12 layer × 768 dim × 2 byte = ~18 KB / token. 1024 token = 18 MB. Y1 L3’e sığmaz! Geçici buffer + DRAM.

Bu Y1’in uzun context handle edemediği bir sınırlama. Y10+ 1 GB HBM eklenecek.

Transformer attention fused:

Attention = Q · K^T / √d · softmax · V.

Fused: 3 MVM + 1 softmax + 1 MVM = 5 işlem. Compute engine orchestrate eder.

Tipik 1 attention head: ~200 ns.

Deney: GPT-2 Layer Inference Timing

Tek GPT-2 layer (attention + FFN):

Attention (768-dim, 12 head):

  1. Q = W_Q · x: 9 crossbar paralel MVM, 15 ns.
  2. K = W_K · x: 9 crossbar × 15 ns paralel.
  3. V = W_V · x: 9 crossbar × 15 ns paralel.
  4. Bağla: DMA 5 ns.
  5. Q · K^T: matris-matris, ~100 ns (64-dim per head × 12 head).
  6. Softmax: compute engine 20 ns.
  7. … · V: 100 ns.
  8. W_O ile proje: 9 crossbar MVM 15 ns.

Toplam attention: ~300 ns.

FFN:

  1. W1 · x: 36 crossbar (768 × 3072), paralel → ~50 ns.
  2. GELU: compute engine 10 ns.
  3. W2 · output: 36 crossbar paralel → ~50 ns.

Toplam FFN: ~110 ns.

Layer total: ~410 ns.

12 layer × 410 ns = 4.9 µs / token. Pratik GPT-2 inference.

Önceki 5.4 hesabı 1.4 µs diyordu (teorik ideal, sadece MVM). Bu gerçekçi (DMA + compute + attention overhead).

Enerji:

  • MVM: 12 × (9+9+9+9+36+36) crossbar × 26 pJ = 33 nJ.
  • Compute engine: 12 × 200 ns × 300 mW = 720 nJ.
  • DMA: ~10 nJ.
  • Toplam: ~760 nJ/token.

GPT-2 1000 token: 760 µJ. 3 W TDP’de ~250 µs wall-clock (batch bir kopya).

Daha agresif: 16 cluster paralel → 16 token/saat → 1000 token = 16 ms. Hızlı + verimli.

Kısa Sınav

1/6Compute engine crossbar'dan farkı nedir?

Laboratuvar Görevi

SIDRA Y1’de Whisper-tiny (39M parameter, konuşma tanıma) inference analizi.

Model yapısı:

  • Encoder: 4 transformer layer, 384 dim.
  • Decoder: 4 transformer layer, 384 dim.

Compute parametreleri:

  • Per layer MVM: ~400K MAC.
  • Bias, LayerNorm, softmax ~%10 ek.
  • KV cache: 4 layer × 384 × 2 byte = 3 kB/token.

Sorular:

(a) Tek layer inference süresi? (b) 1 saniyelik ses (100 tokens) toplam süre? (c) KV cache SRAM gereksinimi? (d) Compute engine / crossbar süre oranı? (e) Edge cihaz (3W TDP) için enerji tahmini?

Çözümler

(a) 400K MAC / 4.4 TOPS per crossbar = ~100 ns MVM + 50 ns compute + 50 ns DMA = ~200 ns / layer.

(b) 8 layer × 100 token × 200 ns = 160 µs. Hızlı! 1 saniyelik ses 160 µs’de işlenir.

(c) 100 token × 3 kB = 300 kB. Y1 L3 (16 MB) çok büyük. L1/L2 cluster’a sığar.

(d) Compute 50 / (100 + 50 + 50) = 25%. Crossbar 50%. DMA 25%. Dengeli.

(e) 3 W × 160 µs = 0.5 mJ. 1 milyar saniye = 32 yıl sürekli ses = 16 MJ. Edge cihazı 1 saatlik pil ömründe 24/7 tanıma yapabilir.

Gerçek ürün: SIDRA Y1 tabanlı akıllı asistan (akıllı hoparlör) 24 saat pil, always-on konuşma tanıma. H100 bunu yapamaz (700W).

Özet Kart

  • Compute engine: CMOS dijital, crossbar’dan sonra. Bias, aktivasyon, norm, scale.
  • ALU, LUT, scaler: ana bileşenler.
  • DMA: veri bellek arası taşır, CPU-free.
  • Y1 compute alan: ~%20 die. Güç %10 TDP.
  • Layer süresi: ~400 ns (MVM 50 + compute 50 + DMA 50 + overhead).
  • Fused ops: compile-time optimize, hız + enerji.

Vizyon: Compute Engine'in Geleceği

  • Y3: compute engine RISC-V çekirdek (kontrol akışı flexible).
  • Y10: “soft” compute engine — FPGA-style programmable logic. Layer özel.
  • Y100: Fully analog post-MVM — aktivasyon da analog. CMOS gerektirmez.
  • Y1000: Tüm compute analog + photonic. CMOS tamamen kalkar.

Türkiye için: Compute engine tasarımı VLSI mühendisliği birikimine dayanır. ASELSAN, Siemens Türkiye gibi yerleri bu konuda deneyimli. SIDRA bu birikimi nöromorfik AI’ya akıtıyor.

Daha İleri