Тензорный процессор¶
Тензорный процессор (TPU, Tensor Processing Unit) — это специализированная интегральная схема (ASIC), разработанная компанией Google для ускорения вычислений, связанных с машинным обучением, в первую очередь — с нейронными сетями. В отличие от центральных процессоров (CPU) и графических процессоров (GPU), архитектура тензорного процессора оптимизирована для выполнения операций над многомерными массивами данных (тензорами), такими как матричное умножение и свёртка, которые лежат в основе большинства моделей глубокого обучения.
¶История
Разработка первого тензорного процессора началась в Google в 2013 году. Основной причиной создания стало быстрое увеличение вычислительных потребностей внутренних сервисов компании, использующих нейронные сети, — в частности, системы распознавания речи, обработки изображений в Google Photos и ранжирования результатов поиска. Использование существующих CPU и GPU для этих задач приводило к значительному росту затрат на электроэнергию и охлаждение дата-центров.
Первый тензорный процессор (TPU v1) был представлен публично в мае 2016 года на конференции Google I/O. Он был спроектирован для этапа вывода (inference) обученных моделей, то есть для непосредственного применения нейросети к новым данным, а не для её обучения. TPU v1 обеспечивал на порядок более высокую производительность на ватт по сравнению с современными ему GPU при выполнении задач вывода.
В 2017 году Google анонсировала второе поколение — TPU v2, которое, в отличие от предшественника, поддерживало как вывод, так и обучение моделей. В TPU v2 была введена поддержка вычислений в формате bfloat16 (Brain Floating Point), разработанном Google для повышения точности и скорости обучения. В 2018 году вышло третье поколение — TPU v3, отличавшееся вдвое большей производительностью и улучшенным охлаждением (жидкостное охлаждение).
В 2021 году был представлен TPU v4, который, по заявлениям Google, в 2,7 раза быстрее предшественника. Четвёртое поколение использовало технологию оптической коммутации (Optical Circuit Switching, OCS) для соединения отдельных чипов в суперкомпьютерные кластеры. В 2023 году Google анонсировала TPU v5e — версию для среднего сегмента, а в 2024 году — TPU v5p, нацеленный на самые ресурсоёмкие задачи обучения.
¶Архитектура и устройство
Основное отличие тензорного процессора от универсальных CPU и GPU заключается в его специализированной архитектуре, ориентированной на выполнение узкого круга операций с высокой эффективностью.
¶Матричный умножитель (Systolic Array)
Ключевой элемент TPU — двумерная матрица (систолический массив) из арифметико-логических устройств (MAC, Multiply-Accumulate). В TPU v1 размер матрицы составлял 256×256 элементов, что позволяло выполнять до 65 536 операций умножения и сложения за один такт. Данные подаются на вход матрицы синхронно, и результат вычислений «протекает» через массив, что минимизирует обращения к памяти и снижает энергопотребление.
¶Память
Для сокращения задержек TPU использует несколько уровней памяти:
- HBM (High Bandwidth Memory) — высокоскоростная память, расположенная на одном корпусе с чипом. В TPU v3 объём HBM составлял 32 ГБ на чип, в TPU v5p — 95 ГБ.
- Унифицированная буферная память (Unified Buffer, UB) — внутренняя SRAM-память, используемая для хранения промежуточных результатов (активаций) и весов модели. В TPU v1 объём UB составлял 24 МБ.
¶Система команд
TPU не является универсальным процессором с полным набором инструкций. Он выполняет специализированные команды (CISC-подобные), которые управляют потоком данных через систолический массив. Основные команды включают загрузку весов, выполнение матричного умножения, применение функции активации (например, ReLU) и запись результатов в память. Управление TPU осуществляется хост-процессором (обычно CPU), который отправляет команды через шину PCIe.
¶Поколения
| Поколение | Год анонса | Назначение | Вычислительная мощность (FP16/BF16) | Память (HBM) | Особенности |
|---|---|---|---|---|---|
| TPU v1 | 2016 | Вывод | 92 TOPS (INT8) | 8 ГБ (DDR3) | 8-битные целочисленные вычисления |
| TPU v2 | 2017 | Вывод и обучение | 180 TFLOPS (BF16) | 16 ГБ (HBM) | Поддержка bfloat16, обучение |
| TPU v3 | 2018 | Вывод и обучение | 420 TFLOPS (BF16) | 32 ГБ (HBM) | Жидкостное охлаждение |
| TPU v4 | 2021 | Вывод и обучение | ~1,1 PFLOPS (BF16) на поддон | 32 ГБ (HBM) | Оптическая коммутация, 4 чипа в поддоне |
| TPU v5e | 2023 | Вывод и обучение | 196 TFLOPS (BF16) | 16 ГБ (HBM) | Баланс производительности и стоимости |
| TPU v5p | 2024 | Вывод и обучение | 459 TFLOPS (BF16) | 95 ГБ (HBM) | Максимальная производительность для обучения |
¶Применение
Тензорные процессоры используются в основном в облачной инфраструктуре Google Cloud, а также во внутренних сервисах компании.
¶Облачные вычисления
Google Cloud предоставляет доступ к TPU через сервис Google Cloud TPU. Пользователи могут арендовать виртуальные машины, оснащённые одним или несколькими тензорными процессорами, для обучения и развёртывания моделей машинного обучения. TPU поддерживаются популярными фреймворками, такими как TensorFlow, PyTorch и JAX.
¶Внутренние сервисы Google
- Google Search — ранжирование результатов поиска с использованием нейросетей (RankBrain, BERT, MUM).
- Google Photos — распознавание объектов, лиц и сцен на фотографиях.
- Google Translate — машинный перевод на основе нейронных сетей.
- Waymo — обработка данных с сенсоров беспилотных автомобилей (дочерняя компания Alphabet).
- DeepMind — обучение моделей для игр (AlphaGo, AlphaFold) и научных исследований.
¶Исследования
TPU активно используются в академических и коммерческих исследованиях, особенно в областях, требующих больших вычислительных мощностей: обработка естественного языка, компьютерное зрение, генеративные модели, биоинформатика (например, предсказание структуры белков).
¶Сравнение с GPU и CPU
| Характеристика | CPU | GPU | TPU |
|---|---|---|---|
| Назначение | Универсальное | Графика и параллельные вычисления | Машинное обучение (тензорные операции) |
| Количество ядер | 4–64 | 1000–10 000 | 1 систолический массив (256×256) |
| Оптимизация | Последовательные задачи | Множество параллельных потоков | Одна большая матричная операция |
| Точность | FP64, FP32 | FP32, FP16, INT8 | BF16, INT8 (TPU v1 — INT8) |
| Энергоэффективность (на операцию) | Низкая | Средняя | Высокая |
| Гибкость | Максимальная | Высокая | Низкая (только ML) |
¶Критика и ограничения
Несмотря на высокую производительность в задачах машинного обучения, тензорные процессоры имеют ряд недостатков:
- Узкая специализация. TPU неэффективны для задач, не связанных с нейронными сетями (базы данных, веб-серверы, обработка текста общего назначения).
- Зависимость от экосистемы. TPU тесно интегрированы с облачной платформой Google Cloud и фреймворком TensorFlow. Использование с другими фреймворками (например, PyTorch) возможно, но требует дополнительных усилий.
- Высокая стоимость аренды. Аренда TPU в облаке может быть дороже, чем использование GPU, особенно для небольших проектов.
- Ограниченная доступность. TPU не продаются отдельно, а предоставляются только как часть облачной инфраструктуры Google. Это ограничивает их использование в локальных дата-центрах или на персональных компьютерах.
- Проблемы с точностью. Использование формата bfloat16 и INT8 может приводить к потере точности в некоторых моделях, что требует дополнительных мер по валидации.
¶Альтернативы
Помимо Google, другие компании разрабатывают собственные специализированные чипы для машинного обучения:
- NVIDIA — GPU с тензорными ядрами (Tensor Cores) в архитектурах Volta, Turing, Ampere, Hopper, Blackwell.
- Intel — Habana Gaudi (специализированные процессоры для обучения и вывода).
- AMD — GPU с архитектурой CDNA, оптимизированные для вычислений.
- Amazon — AWS Trainium и Inferentia (чипы для облачных сервисов Amazon Web Services).
- Microsoft — Azure Maia (чип для облачных сервисов Microsoft Azure).
- Apple — Neural Engine в процессорах A-серии и M-серии (для мобильных устройств и ПК).
- Huawei — Ascend (серия процессоров для ИИ).
¶Интересные факты
- TPU v1 был спроектирован за 15 месяцев, что значительно быстрее обычных сроков разработки ASIC.
- Для охлаждения TPU v3 используется жидкость, циркулирующая непосредственно по корпусам чипов, а не через радиаторы.
- Кластеры TPU v4 в дата-центрах Google соединяются с помощью оптических коммутаторов, что позволяет динамически менять топологию сети для оптимизации производительности.
- По оценкам Google, TPU v1 был в 15–30 раз быстрее современных ему GPU (NVIDIA K80) при выполнении задач вывода, при этом потребляя в 5–10 раз меньше энергии.
¶Источники
- Google Cloud TPU Documentation
- Jouppi, N. P. et al. (2017). "In-Datacenter Performance Analysis of a Tensor Processing Unit". Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA).
- Jouppi, N. P. et al. (2020). "A Domain-Specific Supercomputer for Training Deep Neural Networks". Communications of the ACM.
- Google AI Blog. "An in-depth look at Google’s first Tensor Processing Unit (TPU)".
- Google Cloud. "TPU v5p: A new generation of AI accelerators".
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


