TPU (Tensor Processing Unit)
Tensor İşleme Birimi (TPU), Google'ın sinir ağı hesaplamaları için tasarlanmış özel yongasıdır. Sistolik dizisinin nasıl çalıştığını, GPU'larla karşılaştırmasını ve Edge TPU'yu öğren.
Tensor İşlem Birimi (TPU), Google'ın sinir ağı eğitimi ve çıkarımını hızlandırmak için tasarladığı, uygulamaya özel bir tümleşik devredir (ASIC). TPU, büyük matris çarpma birimleri etrafında tasarlanmıştır; çünkü derin öğrenme işlemlerinin büyük kısmını matris çarpımı oluşturur. Google, 2015'ten beri veri merkezlerinde TPU'lar çalıştırıyor, Gemini modellerini TPU'larda eğitiyor ve bunları diğer şirketlere Cloud TPU olarak kiralıyor. Nisan 2026'da duyurulan sekizinci nesil iki çipe ayrılır: eğitim için TPU 8t, çıkarım için TPU 8i.
TPU Nasıl Çalışır?#
Her TPU'nun temelinde, sistolik dizi biçiminde düzenlenmiş bir matris çarpma birimi (MXU) bulunur. Bu dizi, verileri doğrudan komşularına aktaran çarp-topla hücrelerinden oluşan bir ızgaradır. Ağırlıklar hücrelere bir kez yüklenir, girdiler her saat döngüsünde bir adım ızgara boyunca ilerler ve kısmi toplamlar sütunlardan aşağı akar; böylece bellekten alınan her değer çok sayıda hücrede yeniden kullanılır. Belleği okumak, aritmetik işlemlerden çok daha fazla zaman ve enerjiye mal olur; tasarımın verimliliği de buradan gelir. Cloud TPU v2 ve v3'te her MXU, bfloat16 biçiminde çarpma yapan ve FP32'de biriktirme yapan 128×128'lik bir diziydi. Kısa bir benzetim, 4×4 ızgaradaki veri akışını gösterir:
import numpy as np
rng = np.random.default_rng(0)
W = rng.integers(-5, 5, (4, 4)) # weights, preloaded one per cell of a 4x4 grid
X = rng.integers(-5, 5, (6, 4)) # six input rows stream through the grid
Y = np.zeros((6, 4), dtype=int)
# Cell (k, j) holds W[k, j]. Input X[i, k] enters row k from the left and reaches
# cell (k, j) at cycle i + k + j, where it is multiplied by the stored weight and
# added to the partial sum for Y[i, j] passing down column j
cycles = 6 + 4 + 4 - 2
for t in range(cycles):
for k in range(4):
for j in range(4):
i = t - k - j
if 0 <= i < 6:
Y[i, j] += X[i, k] * W[k, j]
print(f"{X.size * 4} multiply-adds in {cycles} cycles, equal to X @ W: {np.array_equal(Y, X @ W)}")96 multiply-adds in 12 cycles, equal to X @ W: True çıktısını verir: 16 hücre tam matris çarpımını üretirken her ağırlık bellekten bir kez okunur ve altı girdi satırının tümü için yeniden kullanılır. İlk nesil TPU, bu örüntüyü 8 bitlik hücrelerden oluşan 256×256'lık bir ızgarada çalıştırdı; çevrim başına 65.536 çarp-topla işlemiyle saniyede 92 trilyon işlem tepe performansına ulaştı. Basit ve belirlenimci yürütmesi, çıkarım için %99'luk dilimdeki yanıt süresi hedefini karşılama yönündeki Google hedefine uygundu.
TPU'lar, JAX, TensorFlow veya PyTorch içindeki hesaplama grafiğinin tamamını alıp matris birimlerine eşleyen XLA tarafından derlenen kodu çalıştırır. Çipler, binlercesinden oluşan pod'lar hâlinde özel bağlantılarla birbirine bağlanır; en büyük temel modeller aynı anda çok sayıda TPU üzerinde bu şekilde eğitilir.
TPU, GPU ve CPU Karşılaştırması#
- CPU: Dallanma ve genel amaçlı kod için kullanılan az sayıda güçlü çekirdek içerir; çoğu eğitim işlem hattında veri yükleme ve ön işleme işlerini yürütür.
- GPU: Matris işlemleri için binlerce programlanabilir çekirdeğin yanı sıra Tensor Cores içerir. GPU'lar hemen hemen her modeli ve çerçeveyi çalıştırır; birçok tedarikçi ve bulut hizmeti tarafından sunulur.
- TPU: Büyük ve yoğun matris işlemlerinde verimlilik karşılığında esneklikten ödün verir. Şekil değişikliği XLA'nın yeniden derleme yapmasına yol açtığından, tensör şekilleri sabit olan iş yüklerinde en iyi sonucu verir. Özel işlemler, yoğun dallanma veya yüksek hassasiyetli aritmetik TPU'lara pek uygun değildir.
- NPU: Edge TPU'nun da dahil olduğu; telefonlardaki, dizüstü bilgisayarlardaki ve uç çiplerdeki sinir ağı hızlandırıcıları için kullanılan genel addır.
Edge TPU#
Edge TPU, Google'ın Coral USB Accelerator, M.2 ve PCIe modülleri ile Dev Board ürünlerinde kullanılan küçük, yalnızca çıkarım yapan bir TPU'dur. İki watt güçle saniyede 4 trilyon işlem gerçekleştirir ve yalnızca 8 bitlik tamsayı aritmetiği kullanır; bu nedenle ağlar model nicemleme yoluyla tamamen INT8'e dönüştürülür ve ardından desteklenen işlemleri çipe yerleştirip geri kalanını ana makinenin CPU'sunda bırakan Google Edge TPU Derleyicisiyle derlenir. Ultralytics YOLO, INT8 nicemlemesini etkinleştiren ve derleyiciyi bir x86-64 Linux makinesinde çalıştıran format="edgetpu" ile her iki adımı da otomatikleştirir; böylece Coral USB Accelerator bulunan Raspberry Pi gibi kartlarda çalışan bir model üretir:
from ultralytics import YOLO
# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")
# Quantize to INT8 and compile for the Edge TPU (x86-64 Linux only)
path = model.export(format="edgetpu")
print(f"Edge TPU model: {path}")Google'ın Coral platformu artık Ekim 2025'te giyilebilir cihazlar için duyurulan ve birkaç miliwatt güçte saniyede 512 milyar işlem hedefleyen açık kaynaklı RISC-V hızlandırıcı tasarımı Coral NPU etrafında şekilleniyor.










