Проект Tiny-TPU создан новичками для самостоятельного изучения и воссоздания архитектуры TPU без внешних подсказок.
TPU представляет собой ASIC-чип, оптимизированный для эффективного выполнения матричных операций при инференсе и обучении моделей.
Сердцем TPU является «систолический массив» из процессорных элементов (PE) для параллельного умножения и накопления.
Для корректной работы массива используют трансформации данных: поворот, рассинхронизацию (stagger) и транспозицию матриц.
Модули смещения (bias) и активации (Leaky ReLU) вынесены в отдельные стадии конвейера (pipelining) для повышения частоты.
Двойная буферизация (double buffering) позволяет загружать новые веса во «тень» без остановки вычислений и переключать их по готовности.
Единый буфер (Unified Buffer) с двойным портом чтения-записи хранит входы, веса, смещения и промежуточные активации для конвейера.
Обратное распространение ошибки реализовано аппаратно через те же матричные модули и цепное правило, повторяющее прямой проход в зеркале.
Все векторные элементные операции объединены в Vector Processing Unit (VPU) для упрощения интерфейса и масштабирования.
Управление всем процессом обеспечивает собственный набор инструкций (ISA) для гибкой конфигурации работы TPU.
Get notified when new stories are published for "Hacker News 🇷🇺 Русский"