📐 Modül 4 · Matematik Cephanesi · Bölüm 4.1 · 12 dk okuma

Vektör, Matris, MVM

SIDRA crossbar'ının kalbinde tek bir cebir işlemi var.

Bu bölümde öğreneceklerin

  • Vektör ve matris kavramlarını sayı dizileri olarak tanımla
  • Matris-vektör çarpımının (MVM) bir iç çarpım koleksiyonu olduğunu göster
  • MVM'nin O(N²) karmaşıklığını ve crossbar'ın bunu O(1) zamana indirdiğini açıkla
  • Bir 256-boyutlu vektör + 256×256 matrisin SIDRA crossbar'ında nasıl haritalandığını çiz
  • Modern AI yükünün neden ezici çoğunluğunun MVM olduğunu kavra

Açılış: Bir İşlem Tüm AI'ı Çalıştırıyor

Eğer modern AI’da harcanan tüm hesaplamayı tek tip işleme indirgeyebilirsek, %90’dan fazlası tek bir şey çıkar: matris-vektör çarpımı (Matrix-Vector Multiplication, MVM).

  • Bir transformer attention bloğu: 6 MVM (Q, K, V, O, FFN1, FFN2). Softmax ve normalizasyon küçük pay.
  • Bir CNN konvolüsyon katmanı: filtreleme = pencere üzerine MVM.
  • Bir RNN/LSTM: her zaman adımı = MVM.
  • GPT-3 inference: ~99% MVM, geri kalan softmax + LayerNorm.

Yani AI hızlandırıcısı = MVM hızlandırıcısı. SIDRA crossbar bu yüzden tasarlandı: bir MVM’yi tek bir analog adımla yapar.

Bu bölüm MVM’nin matematiğini sıfırdan kurar: vektör nedir → matris nedir → çarpım nasıl olur → SIDRA crossbar bunu neden bu kadar verimli yapar.

Sezgi: Vektör, Matris, ve Çarpım

Vektör, sıralı bir sayı listesidir. Bir vektör hem bir nokta (uzayda) hem bir yöndür.

x=[34],v=[1250]\mathbf{x} = \begin{bmatrix} 3 \\ 4 \end{bmatrix}, \quad \mathbf{v} = \begin{bmatrix} 1 \\ -2 \\ 5 \\ 0 \end{bmatrix}

İki boyutlu, dört boyutlu, 256 boyutlu — fark sadece eleman sayısı.

Matris, sayıların dikdörtgen tablosudur — sıralı vektörlerin koleksiyonu.

W=[210134]\mathbf{W} = \begin{bmatrix} 2 & 1 & 0 \\ -1 & 3 & 4 \end{bmatrix}

W\mathbf{W} burada 2×3 matristir (2 satır, 3 sütun).

Matris-vektör çarpımı (MVM):

y=Wx\mathbf{y} = \mathbf{W} \mathbf{x}

Anlamı: W\mathbf{W}‘nin her satırı, x\mathbf{x} vektörüyle iç çarpım yapar. Sonuç: bir yeni vektör.

Sayısal örnek:

W=[2113],x=[45]\mathbf{W} = \begin{bmatrix} 2 & 1 \\ -1 & 3 \end{bmatrix}, \quad \mathbf{x} = \begin{bmatrix} 4 \\ 5 \end{bmatrix}

y1=24+15=13y_1 = 2 \cdot 4 + 1 \cdot 5 = 13 y2=14+35=11y_2 = -1 \cdot 4 + 3 \cdot 5 = 11

y=[1311]\mathbf{y} = \begin{bmatrix} 13 \\ 11 \end{bmatrix}.

Her satır bir iç çarpım. N×NN \times N matris için NN iç çarpım = N2N^2 çarpma + N(N1)N(N-1) toplama. Hesap karmaşıklığı O(N2)O(N^2).

Sezgi sonucu: Bir nöral ağ katmanı = MVM + aktivasyon. Bir crossbar = MVM. Eşleşme doğal.

Formalizm: Vektör Uzayları ve Lineer Dönüşümler

L1 · Başlangıç

Vektör tanımı (kompakt):

xRN    x=(x1,x2,,xN),xiR\mathbf{x} \in \mathbb{R}^N \iff \mathbf{x} = (x_1, x_2, \ldots, x_N)^\top, \quad x_i \in \mathbb{R}

İç çarpım (dot product):

ab=i=1Naibi\mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^{N} a_i b_i

İç çarpım iki vektörün benzerliğini ölçer (kosinüs cinsinden):

ab=abcosθ\mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \cdot \|\mathbf{b}\| \cdot \cos\theta
  • θ\theta = vektörler arası açı.
  • Tam aynı yön → cosθ=1\cos\theta = 1, maksimum.
  • Dik → 0.
  • Zıt → −1.

Matris-vektör çarpımı (formal):

WRM×N\mathbf{W} \in \mathbb{R}^{M \times N}, xRN\mathbf{x} \in \mathbb{R}^N. Sonuç yRM\mathbf{y} \in \mathbb{R}^M:

yi=j=1NWijxjy_i = \sum_{j=1}^{N} W_{ij} \cdot x_j

Her ii için bir iç çarpım: W\mathbf{W}‘nin ii-inci satırı × x\mathbf{x}.

L2 · Tam

Lineer dönüşüm olarak matris:

Bir W\mathbf{W} matrisi, RN\mathbb{R}^N‘den RM\mathbb{R}^M‘ye lineer fonksiyondur:

T(αx+βy)=αT(x)+βT(y)T(\alpha \mathbf{x} + \beta \mathbf{y}) = \alpha T(\mathbf{x}) + \beta T(\mathbf{y})

Geometrik olarak: rotasyon, ölçekleme, kayma, izdüşüm — hepsi matris çarpımıyla yapılır.

Tipik AI matris boyutları:

ModelBir katman matris boyutu
MLP MNIST sınıflayıcı784 × 128, 128 × 10
ResNet-50 son katman2048 × 1000
GPT-2 small attention768 × 768
GPT-3 attention12288 × 12288
Llama-2 70B FFN8192 × 28672

GPT-3 tek attention katmanı: 12288² ≈ 151M ağırlık. 96 katman → ~14B ağırlık. Tek inference adımında milyarlarca MVM operasyonu.

Karmaşıklık: N×NN \times N MVM için N2N^2 çarpma + N(N1)N(N-1) toplama. Toplam 2N2\approx 2N^2 FLOP.

NNFLOPDijital süre (1 GHz, 1 op/cycle)SIDRA analog süre
256~131K131 µs~10 ns (tek MVM, paralel)
1024~2M2 ms~10 ns
12288 (GPT-3)~302M0.3 sbirkaç MVM, hâlâ ~ns

Crossbar avantajı: paralellik. Tüm N2N^2 çarpma aynı anda fiziksel olarak yapılır (Ohm yasası), ardından NN toplam aynı anda yapılır (Kirchhoff). 1.5 ve 3.7’de gördük.

L3 · Derin

Matris çarpımı (matrix-matrix, MVM’nin genelleştirmesi):

C=AB\mathbf{C} = \mathbf{A} \mathbf{B}, ARM×K\mathbf{A} \in \mathbb{R}^{M \times K}, BRK×N\mathbf{B} \in \mathbb{R}^{K \times N}:

Cij=k=1KAikBkjC_{ij} = \sum_{k=1}^{K} A_{ik} B_{kj}

Karmaşıklık: O(MNK)O(MNK). Tipik AI’da M=N=KM=N=KO(N3)O(N^3). GPT-3 attention bir matris-matris çarpım: O(122883)1.85×1012O(12288^3) \approx 1.85 \times 10^{12} FLOP/katman. 96 katman → ~1.8×10141.8 \times 10^{14} FLOP/inference. Bir tek H100 GPU bunu ~50 ms’de yapar.

SIDRA matrix-matrix yaklaşımı: matrix-matrix = NN matrix-vector. SIDRA bunları sırayla yapar. Y1: 256×256 crossbar. Bir 12288×12288 matris için ~48 crossbar gerekir, paralel kullanılır. Toplam matrix-matrix süre = NN MVM süresi = N×10N \times 10 ns.

Sparse vs dense:

  • Dense matris: %100 dolu. Tipik FFN.
  • Sparse matris: çoğu sıfır. Modern büyük modellerde %50-90 sparsity.
  • SIDRA dense’e ideal. Sparse için ek devre (ya da hücreyi sıfır programla).

Düşük-rank yaklaşıklama (LoRA):

Modern fine-tuning’de büyük matris W\mathbf{W} yerine düşük-rank güncelleme: W+AB\mathbf{W} + \mathbf{A}\mathbf{B}^\top, ARN×r\mathbf{A} \in \mathbb{R}^{N \times r}, BRN×r\mathbf{B} \in \mathbb{R}^{N \times r}, rNr \ll N. Bellek + hesap O(Nr)O(Nr). SIDRA Y10’da LoRA-tipi inkremental öğrenme aday.

SIDRA crossbar’ında pratik hesap:

256×256 crossbar:

  • 65,536 memristör (her biri 8-bit ağırlık).
  • Bir MVM: 256-girişli vektör × 256×256 matris → 256-girişli vektör.
  • Süre: ~10 ns (read setup + Ohmic settling).
  • Enerji: 256 × 0.1 pJ = ~26 pJ per MVM.
  • Verim: 65K MAC / 26 pJ = 2.5 × 10¹² MAC/J = 2.5 TMAC/J = 2.5 TOPS/W (sadece crossbar; çevre devresi dahil değil).

Çevre devresi (ADC, DAC, kontrol) genelde toplam enerjinin %50-90’ı — bu yüzden gerçek SIDRA Y1 verimi ~10 TOPS/W (lab 3.4’te gördük).

Deney: 4×4 MVM'yi Adım Adım

W=[1201011010210102]\mathbf{W} = \begin{bmatrix} 1 & 2 & 0 & 1 \\ 0 & 1 & 1 & 0 \\ 1 & 0 & 2 & 1 \\ 0 & 1 & 0 & 2 \end{bmatrix}, x=[2131]\mathbf{x} = \begin{bmatrix} 2 \\ 1 \\ 3 \\ 1 \end{bmatrix}

Manuel hesap:

y1=12+21+03+11=2+2+0+1=5y_1 = 1 \cdot 2 + 2 \cdot 1 + 0 \cdot 3 + 1 \cdot 1 = 2 + 2 + 0 + 1 = 5

y2=02+11+13+01=0+1+3+0=4y_2 = 0 \cdot 2 + 1 \cdot 1 + 1 \cdot 3 + 0 \cdot 1 = 0 + 1 + 3 + 0 = 4

y3=12+01+23+11=2+0+6+1=9y_3 = 1 \cdot 2 + 0 \cdot 1 + 2 \cdot 3 + 1 \cdot 1 = 2 + 0 + 6 + 1 = 9

y4=02+11+03+21=0+1+0+2=3y_4 = 0 \cdot 2 + 1 \cdot 1 + 0 \cdot 3 + 2 \cdot 1 = 0 + 1 + 0 + 2 = 3

y=[5493]\mathbf{y} = \begin{bmatrix} 5 \\ 4 \\ 9 \\ 3 \end{bmatrix}.

Hesap sayısı: 4 × 4 = 16 çarpma + 4 × 3 = 12 toplama = 28 işlem. Dijital CPU’da: 28 saat çevrimi (ideal) ≈ 28 ns @ 1 GHz.

SIDRA crossbar’da:

  • 4×4 = 16 memristör. Gij=WijG_{ij} = W_{ij} (programlanmış iletkenlik).
  • Vj=xjV_j = x_j (giriş gerilimleri 4 satıra).
  • Her sütunda akım toplanır: Ii=jGijVjI_i = \sum_j G_{ij} V_j.
  • 16 çarpma + 12 toplama tek bir Ohmic + KCL adımında olur. Süre: ~10 ns.

Karşılaştırma: Aynı işi yapmak için CPU 28 ns, GPU bir tek thread’de ~10 ns (paralel core), SIDRA crossbar ~10 ns ama enerji 100× daha az.

Ölçeklendirelim: 1024×10241024 \times 1024 MVM:

  • CPU: ~2.1M ns ≈ 2 ms.
  • GPU (tüm core’lar): ~50 ns (A100 cuBLAS).
  • SIDRA: 16 paralel crossbar (256×256 her biri) → ~10 ns. GPU ile yarışır, 100× daha az enerji.

Kısa Sınav

1/6Matris-vektör çarpımı (MVM) ne kadar hesap içerir?

Laboratuvar Görevi

GPT-2 small modelinin tam parametre haritasını SIDRA Y1 crossbar dağılımına çıkar.

GPT-2 small mimarisi:

  • Embedding: 50257 (vocab) × 768 (d_model)
  • Pozisyonel embed: 1024 × 768
  • 12 transformer bloğu, her biri:
    • Attention W_Q, W_K, W_V, W_O: her biri 768 × 768
    • FFN: W_1 = 768 × 3072, W_2 = 3072 × 768
  • Final layer norm + output: 768 × 50257

SIDRA Y1:

  • 419M memristör.
  • Her crossbar: 256 × 256 = 65,536 hücre.
  • Toplam crossbar: 419M / 65,536 ≈ 6400.

Sorular:

(a) Tek bir attention matrisi (768 × 768) kaç crossbar? (b) Tek bir FFN matrisi (768 × 3072) kaç crossbar? (c) Bir tek transformer bloğu toplam kaç crossbar? (d) 12 blok + embeddingler dahil, tüm GPT-2 small kaç crossbar? (e) Y1’in yüzde kaçını kullanır? Geri kalan ile başka ne yapılabilir?

Çözümler

(a) 768 / 256 = 3 → 3×3 = 9 crossbar/attention matrisi. Bir attention bloğunda 4 matris (Q, K, V, O) → 36 crossbar.

(b) FFN: W1W_1 768 × 3072 → (3 × 12) = 36 crossbar. W2W_2 3072 × 768 → (12 × 3) = 36 crossbar. Toplam 72 crossbar/FFN.

(c) 36 (attention) + 72 (FFN) = 108 crossbar/blok.

(d) 12 blok × 108 = 1296 crossbar. Embedding 50257 × 768 → ~600 crossbar. Output projeksiyon ~600 crossbar. Toplam ~2500 crossbar.

(e) 2500 / 6400 = %39. Y1’in %61’i serbest → başka modeller (BERT-small, MobileNet, küçük LSTM) veya çoklu kopya GPT-2 inference (batching).

Not: Bu sadece statik depolama. Inference için ek scratch memory (KV cache, activations) gerekir → bunu CMOS DRAM çevre devresi karşılar. SIDRA Y1 = inference için “hazır model deposu + MVM motoru”.

Özet Kart

  • Vektör: sıralı sayı listesi, xRN\mathbf{x} \in \mathbb{R}^N.
  • Matris: sayıların dikdörtgen tablosu, WRM×N\mathbf{W} \in \mathbb{R}^{M \times N}.
  • MVM: y=Wx\mathbf{y} = \mathbf{W}\mathbf{x}, her satır iç çarpım. Karmaşıklık O(N2)O(N^2).
  • İç çarpım: ab=aibi=abcosθ\mathbf{a} \cdot \mathbf{b} = \sum a_i b_i = \|\mathbf{a}\|\|\mathbf{b}\|\cos\theta. Benzerlik ölçer.
  • AI’da MVM payı: ~%90+ (transformer, CNN, RNN).
  • Crossbar avantajı: N2N^2 çarpma paralel + NN toplam paralel = O(1)O(1) adım.
  • SIDRA Y1: 256×256 crossbar, 1 MVM ~10 ns, ~26 pJ.

Vizyon: MVM-Native Hesaplama ve SIDRA'nın Rolü

MVM hesaplamanın merkezi haline geldi — ama dijital donanım onu kötü yapar (2N² FLOP, sıralı). Analog crossbar onu iyi yapar (1 adım). Bu yüzden:

  • Y1 (bugün): 256×256 crossbar, ~10 TOPS/W. GPT-2 small inference tek çipte.
  • Y3 (2027): 512×512 crossbar, daha iyi ADC, ~50 TOPS/W. GPT-2 medium / BERT-base.
  • Y10 (2029): 1024×1024 crossbar, 16-bit ağırlık, ~150 TOPS/W. GPT-3 small (2.7B) tek çipte.
  • Y100 (2031+): 4096×4096 crossbar, fotonik ağırlık aktarımı, ~1000 TOPS/W. GPT-3 175B birkaç çipte. Tüm-zaman-bestseller LLM inference edge’de.
  • Y1000 (uzun vade): Crossbar yapısı + 3D stacking + analog backprop. Eğitim de analog.

Türkiye için stratejik önem: MVM hızlandırma kategorisi henüz tek lider yok. NVIDIA dijital, Cerebras wafer-scale, Mythic analog-flash, Rain analog-photonic — kategori henüz açık. SIDRA “memristör-tabanlı analog MVM” alt-kategorisinde dünya lideri olma yolunda. Bu, klasik CPU/GPU yarışından çıkmanın somut yolu.

Beklenmedik gelecek: MVM-native programlama dili. Bugün AI yazılımı (PyTorch, JAX) FLOP-tabanlı düşünür. SIDRA + benzer crossbar mimarileri yaygınlaşırsa MVM-native compiler + dil ortaya çıkar — donanımın gerçek soyutlamasına uygun. SIDRA’nın yazılım yığını (Modül 6) bu yönde ilerleyecek.

Daha İleri

  • Bir sonraki bölüm: 4.2 — Ohm + Kirchhoff = Analog MVM
  • Önceki: 3.8 — STDP
  • Klasik referans: Strang, Linear Algebra and Its Applications — lineer cebirin standart ders kitabı.
  • MVM hızlandırıcı tarihçesi: Hennessy & Patterson, Computer Architecture: A Quantitative Approach, 6. baskı.
  • In-memory computing: Sebastian et al., Memory devices and applications for in-memory computing, Nature Nanotech. 2020.
  • Modern AI hızlandırıcı karşılaştırması: Jouppi et al., In-datacenter performance analysis of a tensor processing unit, ISCA 2017 (Google TPU).