Tensor Processing Unit — matritsa va tensor amallarini, ayniqsa sun’iy neyron tarmoqlarining o‘qitish yoki inference hisoblarini tezlashtirishga mo‘ljallangan maxsus protsessor arxitekturasi. TPU nomi Google ishlab chiqqan akseleratorlar oilasi bilan bog‘liq bo‘lsa-da, umumiy matnda ko‘pincha tensor hisobiga ixtisoslashgan bloklar sinfini ifodalash uchun ham ishlatiladi.
Hisoblash yadrosi
Neyron tarmoqning katta qismi matritsa ko‘paytirish va jamlashdan iborat. Tensor akselerator ko‘p multiply-accumulate elementini muntazam massivga joylaydi. Systolic array’da ma’lumot qo‘shni elementlar bo‘ylab oqib, og‘irlik va aktivatsiyalar qayta ishlatiladi; har natija uchun tashqi xotiraga qayta murojaat kamayadi.
Oddiy CPU buyruq oqimini va murakkab nazoratni yaxshi bajaradi. Tensor unit esa katta muntazam blokda yuqori throughputga erishadi, ammo tarmoqlanish va kichik notekis operatsiyalarda samarasiz bo‘lishi mumkin. Host protsessor grafikni tayyorlaydi, akselerator yirik operatorlarni bajaradi.
Raqam formatlari
Inference ko‘pincha 8 bitli integer yoki undan kichik kvantlangan formatdan foydalanadi. Training uchun 32 bitli floating-point bilan birga bfloat16 yoki boshqa past aniqlikli format qo‘llanadi. Ko‘paytirish past aniqlikda, accumulation kengroq formatda bajarilib, tezlik va raqamli barqarorlik muvozanatlanadi.
Kvantlash scale va zero-point kabi metadata talab qiladi. Model sifati faqat apparat tezligiga emas, kalibrlash va qaysi qatlamlar past aniqlikka o‘tkazilganiga bog‘liq. Overflow, rounding va denormal semantikasi kompilyator hamda unit o‘rtasida mos bo‘lishi kerak.
Xotira va ma’lumot oqimi
Hisoblash bloklari juda tez bo‘lgani sabab asosiy cheklov ko‘pincha og‘irlik va aktivatsiyalarni yetkazishdir. Yuqori bandwidthli xotira, chip ichidagi katta buffer va operator fusion oraliq tensorni tashqi xotiraga yozishni kamaytiradi. Tiling katta matritsani ichki bufferga sig‘adigan bloklarga bo‘ladi.
Bir nechta akselerator training’da gradient va parametrlarni tarmoq orqali almashadi. Collective communication tezligi past bo‘lsa, nazariy tensor throughput ishlatilmay qoladi. Topologiya va batch hajmi shuning uchun tizim darajasida muhim.
Dasturiy qatlam
Foydalanuvchi odatda mashina buyrug‘ini qo‘lda yozmaydi. Framework hisoblash grafigini compiler’ga beradi; u operatorlarni birlashtiradi, tensor shakllarini tekshiradi, ma’lumot joylashuvini tanlaydi va akselerator kodini hosil qiladi. Qo‘llab-quvvatlanmaydigan operator CPUga qaytsa, qurilmalar orasidagi nusxa xarajati katta bo‘lishi mumkin.
Tensor Processing Unit GPUning to‘liq sinonimi emas. GPU grafik va umumiy parallel ish uchun kengroq modelga ega; TPU tensor ishiga chuqurroq ixtisoslashgan. Qaysi biri tezroq ekani model, aniqlik, batch, compiler va xotira xususiyatlariga bog‘liq.
Ish yukini baholash
Peak TOPS ko‘rsatkichi tanlangan past aniqlikda barcha multiply-accumulate bloklar to‘liq band bo‘lgan holatni bildiradi. Model latency’si esa operatorlar soni, batch, host bilan almashuv va compiler fusion’iga bog‘liq. Kichik interaktiv so‘rov yuqori peak ko‘rsatkichli qurilmada ham ishga tushirish xarajati sabab sekin bo‘lishi mumkin.
Training’da faqat forward hisob emas, gradient, optimizer holati va checkpoint yozuvi ham xotira talab qiladi. Model parallelism qatlamni qurilmalar bo‘yicha, data parallelism esa batch nusxalarini taqsimlaydi. Kommunikatsiya va sonli aniqlik tanlovi konvergentsiyaga ta’sir qilgani uchun tezlik bahosi yakuniy model sifatini ham qamrab oladi.
Tensor unitda sparsity yordami nol bloklarni tashlab, amallar va xotira trafikini kamaytiradi. Reklama qilingan tezlashuv faqat talab qilingan strukturali siyraklikka mos modelda olinadi; tasodifiy nol qiymatlar apparat formatiga mos kelmasligi mumkin.
Bog‘liq tushunchalar
tensor, systolic array, matrix multiplication, neural network accelerator, quantization, bfloat16