Tiny-tpu: A minimal tensor processing unit (TPU), inspired by Google's TPU
tiny-tpu — минималистичный тензорный процессор, вдохновлённый Google TPU v1/v2.
Цель: дать студентам и исследователям открытый, понятный RTL-код для изучения архитектуры TPU без закрытых деталей Google.
Основное
- Ядро:
rtl/
,sim/
,fpga/
— SystemVerilog, тесты, PYNQ-образ. - Производительность: 8×8 систолическая матрица, 32-бит INT, 200 МГц на Artix-7.
- Поток данных: команды DMA → веса/активации → вычислительный массив → аккумуляторы → DRAM.
- Инструменты: Verilator, Vivado, Python-библиотека для генерации инструкций.
Быстрый старт
git clone https://github.com/tiny-tpu-v2/tiny-tpu.git
cd tiny-tpu
make sim # симуляция
make fpga # битстрим для PYNQ-Z2
Примеры
examples/mnist/
— инференс MNIST за 3 мс.examples/resnet/
— слой ResNet-18 (пока симуляция).
Лицензия
MIT.