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.
Комментарии (4)
- Участники обсуждают, сколько TPU нужно для запуска Gemini Flash 2.5 и Pro 2.5 на одного пользователя.
- Появился вопрос о возможности купить PCIe-карту с 4 TPU и 8 слотами RAM за ≈ $5 000.
- mdaniel привёл ссылки на Hacker News и отметил, что предпочитает официальный репозиторий случайным сайтам.
Show HN: I built a toy TPU that can do inference and training on the XOR problem
Tiny-TPU: почему и как
Мы решились на безумное: собрать собственный TPU, не имея опыта в железе. Движимы желанием «переизобрести» ускоритель, а не копировать Google, мы пошли «кривым» путём: сначала пробуем самые простые идеи, потом читаем документацию. Цель — научиться думать без ИИ и понять, как устроены нейросети и чипы.
TPU — это ASIC, заточенный под матричные умножения (до 95 % вычислений в трансформерах). В отличие от GPU, он не умеет рисовать кадры, зато делает одно дело быстро и эффективно.
Как работает железо
- Тактовый цикл — базовая единица времени (пико-наносекунды). Всё происходит между «тиками».
- Verilog описывает логику:
Регистры обновляются раз в цикл, а не мгновенно, как в софте.always @(posedge clk) c <= a + b;
Путь к игрушечному TPU
- XOR-MLP 2→2→1 — разобрали вручную: прямой и обратный проходы, градиенты.
- Философия — рисуем всё на бумаге, кодим без ИИ, проверяем «тупые» идеи.
- Результат — работающий «той» TPU, который учится и выводит. Это не клон Google-TPU, а наша версия «как бы мы сделали».
Комментарии (17)
- Проект «toy TPU» пока существует только в симуляторе на Verilog.
- Следующий шаг — запуск на FPGA; чип пока не травился.
- Некоторые советуют рассмотреть Chisel, но есть сомнения в целесообразности для маленьких проектов.
- Целевая аудитория (потребители или edge-устройства) и конечная цель пока не ясны.