Открыть сервис

Тензорный процессор

Тензорный процессор (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 v12016Вывод92 TOPS (INT8)8 ГБ (DDR3)8-битные целочисленные вычисления
TPU v22017Вывод и обучение180 TFLOPS (BF16)16 ГБ (HBM)Поддержка bfloat16, обучение
TPU v32018Вывод и обучение420 TFLOPS (BF16)32 ГБ (HBM)Жидкостное охлаждение
TPU v42021Вывод и обучение~1,1 PFLOPS (BF16) на поддон32 ГБ (HBM)Оптическая коммутация, 4 чипа в поддоне
TPU v5e2023Вывод и обучение196 TFLOPS (BF16)16 ГБ (HBM)Баланс производительности и стоимости
TPU v5p2024Вывод и обучение459 TFLOPS (BF16)95 ГБ (HBM)Максимальная производительность для обучения

Применение

Тензорные процессоры используются в основном в облачной инфраструктуре Google Cloud, а также во внутренних сервисах компании.

Облачные вычисления

Google Cloud предоставляет доступ к TPU через сервис Google Cloud TPU. Пользователи могут арендовать виртуальные машины, оснащённые одним или несколькими тензорными процессорами, для обучения и развёртывания моделей машинного обучения. TPU поддерживаются популярными фреймворками, такими как TensorFlow, PyTorch и JAX.

Внутренние сервисы Google

Исследования

TPU активно используются в академических и коммерческих исследованиях, особенно в областях, требующих больших вычислительных мощностей: обработка естественного языка, компьютерное зрение, генеративные модели, биоинформатика (например, предсказание структуры белков).

Сравнение с GPU и CPU

ХарактеристикаCPUGPUTPU
НазначениеУниверсальноеГрафика и параллельные вычисленияМашинное обучение (тензорные операции)
Количество ядер4–641000–10 0001 систолический массив (256×256)
ОптимизацияПоследовательные задачиМножество параллельных потоковОдна большая матричная операция
ТочностьFP64, FP32FP32, FP16, INT8BF16, 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 →