Процессор Tpu что это такое

Обновлено: 03.07.2024

Tensor Processing Unit (TPU) – это специализированная интегральная схема (ASIC), разработанная Google для ускорения машинного обучения. Google предлагает TPU по запросу в виде облачной службы глубокого обучения под названием Cloud TPU.

Cloud TPU тесно интегрирован с TensorFlow, платформой Google для машинного обучения (ML) с открытым исходным кодом. Вы можете использовать выделенные API-интерфейсы TensorFlow для запуска рабочих нагрузок на оборудовании TPU. Cloud TPU позволяет создавать кластеры вычислительных блоков TensorFlow, которые также могут включать ЦП и обычные графические процессоры (GPU).

Из этой статьи вы узнаете:

Когда следует использовать TPU?

Cloud TPU оптимизирован для следующих сценариев.

  • Модели машинного обучения в основном основаны на матричных вычислениях.
  • Основной цикл обучения не использует пользовательские операции TensorFlow
  • Долгоиграющие модели, на обучение которых уходят недели или месяцы.
  • Модели с очень большими партиями.
  • Модели, в которых весь цикл обучения выполняется несколько раз – обычное дело для нейронных сетей.

Облачный TPU не рекомендуется для следующих сценариев:

  • Модели, использующие векторную линейную алгебру или поэлементную алгебру (в отличие от матричных вычислений).
  • Модели с редким доступом к памяти
  • Модели, использующие арифметические операции, требующие высокой точности.
  • Модели, использующие пользовательские операции TensorFlow, особенно если они выполняются в основном цикле обучения.

Облачная архитектура TPU

Каждое ядро ​​TPU имеет три типа процессоров:

  • Скалярный процессор
  • Векторный процессор
  • Матричные блоки (MXU) — обеспечивают большую часть вычислительной мощности чипа TPU. Каждый блок MXU может выполнять 16 000 операций умножения за цикл.

MXU используют bfloat16, 16-битное представление с плавающей запятой, которое обеспечивает более высокую точность вычислений модели машинного обучения по сравнению с традиционным представлением половинной точности.

Каждое ядро ​​устройства TPU может выполнять вычисления (известные как операции XLA) по отдельности. Межсоединения с высокой пропускной способностью позволяют чипам напрямую взаимодействовать друг с другом.

Cloud TPU предлагает два варианта развертывания:

  • Одиночные устройства TPU, не связанные между собой через выделенную высокоскоростную сеть. Вы не можете комбинировать версии TPU для одного устройства (см. описание ниже) для выполнения одних и тех же рабочих нагрузок.
  • Модули TPU — подключение нескольких устройств TPU к высокоскоростному сетевому интерфейсу. Это обеспечивает рабочие нагрузки машинного обучения большим пулом ядер и памяти TPU, а также позволяет комбинировать версии TPU.

Версии ТПУ

Версия TPU определяет аппаратные характеристики устройства. В таблице ниже приведены сведения о последних двух поколениях.

Компания Google объявила о выпуске микросхемы TPU ASIC четвертого поколения под названием TPU v4, которая более чем в два раза увеличивает возможности матричного умножения по сравнению с версией 3, значительно увеличивает пропускную способность памяти и улучшает технологию межсоединений. В тесте MLPerf производительность TPU v4 была в 2,7 раза выше, чем у v3.

Результаты показали, что при аналогичном масштабе предыдущих тренировочных соревнований ML Perf производительность TPU v3 улучшилась в среднем в 2,7 раза. Пожалуйста, подождите терпеливо. Подробная информация о TPUv4 будет опубликована в ближайшее время.

Рекомендации по повышению производительности Cloud TPU

Вот несколько рекомендаций, которые можно использовать, чтобы максимально эффективно использовать ресурсы TPU в Google Cloud.

Производительность компилятора XLA

Ускоренная линейная алгебра (XLA) — это компилятор машинного обучения, который может генерировать исполняемые двоичные файлы для TPU, CPU, GPU и других аппаратных платформ. XLA поставляется со стандартной кодовой базой TensorFlow. Модели Cloud TPU TensorFlow преобразуются в графики XLA, а графики XLA компилируются в исполняемые файлы TPU.

Оборудование, используемое для Cloud TPU, заметно отличается от оборудования, используемого для ЦП и ГП. На более высоком уровне ЦП выполняет только несколько высокопроизводительных потоков, в то время как ГП выполняет много потоков с низкой производительностью. Напротив, облачные TPU с матричными модулями 128 x 128 запускают один очень мощный поток, способный выполнять 16 000 операций за цикл. Этот поток состоит из 128 x 128 потоков, соединенных в виде конвейера.

Поэтому при адресации памяти на TPU предпочтительнее использовать числа, кратные 8 (с плавающей запятой), а при выполнении матричных операций — кратные 128.

Производительность обработки модели

Вот как решить две распространенные проблемы при обучении моделей на TPU:

Предварительная обработка данных занимает слишком много времени

Программный стек, предоставляемый TensorFlow-TPU, позволяет ЦП выполнять сложную предварительную обработку данных перед отправкой данных в TPU. Однако TPU невероятно быстры, и сложная обработка входных данных может быстро привести к возникновению узких мест.

Google предоставляет инструмент анализа Cloud TPU, который позволяет определить, является ли обработка ввода узким местом."В этом случае вы можете поискать способы оптимизации, например однократно выполнить определенные операции предварительной обработки в автономном режиме, чтобы избежать замедления работы.

Из-за сегментирования размер пакета слишком мал

Размер пакета вашей модели автоматически сегментируется или разделяется между 8 ядрами на TPU. Например, если размер вашего пакета равен 128, истинный размер пакета, работающего на каждом ядре TPU, равен 16. В этом случае TPU будет использовать только часть его емкости.

Чтобы оптимально использовать память в TPU, используйте наибольший размер пакета, который при делении на 8 соответствует объему памяти вашего TPU. Размеры пакетов всегда должны делиться на 128, так как TPU использует для обработки 128 x 128 ячеек памяти.

Последствия тайлинга

Облачные массивы TPU дополняются (или «плитками»), заполняя одно измерение до ближайшего числа, кратного 8, а другое измерение до числа, кратного 128. Компилятор XLA использует эвристику для эффективного упорядочивания данных, но иногда это может пойти не так. Попробуйте разные конфигурации моделей, чтобы определить, какая из них обеспечивает наилучшую производительность.

Учитывать память, которая тратится на заполнение. Чтобы максимально эффективно использовать TPU, структурируйте размеры модели так, чтобы они соответствовали размерам, ожидаемым TPU, чтобы свести к минимуму разбиение на блоки и непроизводительные затраты памяти.

Google TPU с Run:AI

Run:AI автоматизирует управление ресурсами и координацию рабочих нагрузок для инфраструктуры машинного обучения. С помощью Run:AI вы можете автоматически запускать столько экспериментов с интенсивными вычислениями, используя оборудование GPU и CPU.

Наша платформа AI Orchestration Platform для компьютеров с графическим процессором, на которых выполняются рабочие нагрузки AI/ML, обеспечивает:

  • Усовершенствованная организация очередей и справедливое планирование, позволяющие пользователям легко и автоматически совместно использовать кластеры графических процессоров.
  • Распределенное обучение на нескольких узлах графического процессора для ускорения обучения модели.
  • Дробные графические процессоры для беспрепятственного выполнения нескольких рабочих нагрузок на одном графическом процессоре любого типа.
  • Отслеживание рабочих нагрузок и использования ресурсов для повышения производительности пользователей.

Run:AI упрощает оркестровку инфраструктуры машинного обучения, помогая специалистам по данным повысить производительность и качество моделей.

Tensor Processing Units (TPU) – специально разработанные Google специализированные интегральные схемы (ASIC), используемые для ускорения рабочих нагрузок машинного обучения. TPU разрабатываются с нуля с учетом богатого опыта и лидерства Google в области машинного обучения.

Cloud TPU позволяет запускать рабочие нагрузки машинного обучения на аппаратном ускорителе Google TPU с помощью TensorFlow. Cloud TPU обеспечивает максимальную производительность и гибкость, чтобы помочь исследователям, разработчикам и предприятиям создавать вычислительные кластеры TensorFlow, которые могут использовать ЦП, ГП и ТПУ. Высокоуровневые API-интерфейсы TensorFlow помогают запускать модели на оборудовании Cloud TPU.

Преимущества TPU

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

Доступность

Облачные TPU доступны в следующих зонах:

td>

Европа

Тип TPU (v2) Ядра TPU v2 Общая память TPU Регион/зона
v2-8 8 64 ГБ us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 ГиБ us-central1-a
v2-128 128 1 ТиБ us-central1-a
v2-256 256 2 ТиБus-central1-a
v2-512 512 4 ТиБ us-central1-a
Тип TPU (v3) Ядра TPU v3 Общая память TPU< /th> Доступные зоны
v3-8 8 128 ГиБ< /td> us-central1-a
us-central1-b
us-central1-f
< td>128europe-west4-a < /tr>
Тип TPU (v2) Ядра TPU v2 Общая память TPU Регион/зона
v2-8 8 64 ГБ europe-west4-a
v2-32 32 256 ГиБ europe-west4-a
v2-128 128 1 ТиБ europe-west4-a
v2-256 256 2 ТиБ europe-west4-a
v2 -512 512 4 ТиБ europe-west4-a
ТПУ тип (v3) Ядра TPU v3 Общая память TPU Доступные зоны
v3-8 8 128 ГиБ europe-west4-a
v3-32 32 512 ГиБ europe-west4-a
v3-64< /td> 64 1 ТиБ europe-west4-a
v3-128 2 ТиБ europe-west4-a
v3-256 256< /td> 4 ТиБ
v3-512 512 8 ТиБ europe- west4-a
v3-1024 1024 16 ТиБ europe-west4-a< /td>
v3-2048 2048 32 ТиБ europe-west4-a

Азиатско-Тихоокеанский регион

Тип TPU (v2) Ядра TPU v2 Общая память TPU Регион/зона
v2-8 8 64 ГБ asia-east1-c

Модель программирования Cloud TPU

Облачные TPU очень быстро выполняют плотные векторные и матричные вычисления. Передача данных между Cloud TPU и памятью хоста медленная по сравнению со скоростью вычислений — скорость шины PCIe намного ниже, чем скорость соединения Cloud TPU и встроенной памяти с высокой пропускной способностью (HBM). . Частичная компиляция модели, при которой выполнение выполняется туда и обратно между хостом и устройством, приводит к тому, что TPU большую часть времени бездействует, ожидая поступления данных по шине PCIe. Чтобы облегчить эту ситуацию, модель программирования для Cloud TPU предназначена для выполнения большей части обучения на TPU — в идеале всего цикла обучения.

Ниже приведены некоторые характерные особенности модели программирования TPU:

  • Все параметры модели хранятся во встроенной памяти с высокой пропускной способностью.
  • Стоимость запуска вычислений в Cloud TPU амортизируется за счет выполнения множества обучающих шагов в цикле.
  • Входные обучающие данные передаются в очередь «входа» в Cloud TPU. Программа, работающая в Cloud TPU, извлекает пакеты из этих очередей на каждом этапе обучения.
  • Сервер TensorFlow, работающий на хост-компьютере (процессор, подключенный к устройству Cloud TPU), извлекает данные и выполняет их предварительную обработку перед «передачей» на оборудование Cloud TPU.
  • Параллелизм данных. Ядра в Cloud TPU синхронно выполняют идентичную программу, находящуюся в соответствующем HBM. Операция редукции выполняется в конце каждого шага нейронной сети по всем ядрам.

Когда использовать TPU

Облачные TPU оптимизированы для определенных рабочих нагрузок. В некоторых ситуациях вам может понадобиться использовать графические процессоры или ЦП в экземплярах Compute Engine для выполнения рабочих нагрузок машинного обучения. Как правило, вы можете решить, какое оборудование лучше всего подходит для вашей рабочей нагрузки, исходя из следующих рекомендаций:

  • Быстрое прототипирование, требующее максимальной гибкости.
  • Простые модели, которые не требуют много времени для обучения
  • Небольшие модели с небольшими эффективными размерами партий.
  • Модели, в которых преобладают пользовательские операции TensorFlow, написанные на C++
  • Модели, которые ограничены доступными операциями ввода-вывода или пропускной способностью сети хост-системы.
  • Модели, для которых исходный код не существует или его слишком сложно изменить.
  • Модели со значительным количеством пользовательских операций TensorFlow, которые должны хотя бы частично выполняться на ЦП
  • Модели с операциями TensorFlow, недоступными в Cloud TPU (см. список доступных операций TensorFlow)
  • Средние и крупные модели с большими эффективными размерами пакетов.
  • В моделях преобладают матричные вычисления
  • Модели без пользовательских операций TensorFlow внутри основного цикла обучения
  • Модели, которые тренируются неделями или месяцами.
  • Большие и очень большие модели с очень большими эффективными размерами пакетов

Облачные TPU не подходят для следующих рабочих нагрузок:

  • Программы линейной алгебры, которые требуют частых ветвлений или содержат доминирование алгебры по элементам. TPU оптимизированы для выполнения быстрого и объемного матричного умножения, поэтому рабочая нагрузка, в которой не преобладает матричное умножение, вряд ли будет хорошо работать на TPU по сравнению с другими платформами.
  • Рабочие нагрузки, требующие разреженного доступа к памяти, могут быть недоступны на TPU.
  • Рабочие нагрузки, требующие высокоточных арифметических операций.Например, арифметика с двойной точностью не подходит для TPU.
  • Рабочие нагрузки нейронной сети, содержащие пользовательские операции TensorFlow, написанные на C++. В частности, пользовательские операции в теле основного цикла обучения не подходят для TPU.

Рабочие нагрузки нейронной сети должны иметь возможность выполнять несколько итераций всего цикла обучения на TPU. Хотя это не является фундаментальным требованием самих TPU, это одно из текущих ограничений экосистемы программного обеспечения TPU, необходимое для повышения эффективности.

Отличия от обычного обучения

Типичный обучающий граф TensorFlow состоит из нескольких перекрывающихся подграфов, которые обеспечивают различные функции, включая:

  • Операции ввода-вывода для чтения обучающих данных.
  • Этапы предварительной обработки ввода, часто связанные через очереди.
  • Переменные модели.
  • Код инициализации для этих переменных.
  • Сама модель.
  • Функции потерь.
  • Код градиента (обычно создается автоматически).
  • Краткие сведения о мониторинге обучения.
  • Сохранить/восстановить операции для контрольных точек.

В Cloud TPU программы TensorFlow компилируются компилятором XLA JIT. При обучении на Cloud TPU единственный код, который можно скомпилировать и выполнить на оборудовании, — это код, соответствующий плотным частям модели, подграфам потерь и градиента. Все остальные части программы TensorFlow выполняются на хост-компьютерах (сервере Cloud TPU) как часть обычного распределенного сеанса TensorFlow. Обычно это операции ввода-вывода, которые считывают обучающие данные, любой код предварительной обработки (например: декодирование сжатых изображений, случайная выборка/обрезка, сборка обучающих мини-пакетов) и все части обслуживания графа, такие как сохранение/восстановление контрольной точки.

Рекомендации по разработке моделей

Один чип Cloud TPU содержит 2 ядра, каждое из которых содержит несколько матричных блоков (MXU), предназначенных для ускорения программ, в которых преобладают плотные матричные умножения и свертки (см. Архитектуру системы). Программы, которые тратят значительную часть времени выполнения на умножение матриц, обычно хорошо подходят для Cloud TPU. Программа, в вычислениях которой преобладают нематричные операции, такие как сложение, изменение формы или объединение, скорее всего, не достигнет высокого уровня использования MXU. Ниже приведены некоторые рекомендации, которые помогут вам выбрать и построить модели, подходящие для Cloud TPU.

Одно устройство Cloud TPU состоит из четырех микросхем, каждая из которых имеет два ядра TPU. Поэтому для эффективного использования Cloud TPU программа должна использовать каждое из восьми ядер.

Макет

Компилятор XLA выполняет преобразования кода, в том числе разбивает матрицу на блоки меньшего размера, чтобы эффективно выполнять вычисления на единице матрицы (MXU). Структура аппаратного обеспечения MXU, систолический массив 128x128 и конструкция подсистемы памяти TPU, которая предпочитает размеры, кратные 8, используются компилятором XLA для эффективности листов. Следовательно, некоторые макеты более удобны для разбиения на мозаику, в то время как другие требуют выполнения изменения формы, прежде чем их можно будет разбить на плитки. Операции изменения формы часто связаны с памятью Cloud TPU.

Фигуры

Компилятор XLA компилирует граф TensorFlow как раз вовремя для первого пакета. Если какие-либо последующие партии имеют другую форму, модель не работает. (Перекомпилировать график каждый раз при изменении формы — слишком медленно.) Поэтому любая модель, имеющая тензоры с динамическими формами, изменяющимися во время выполнения, плохо подходит для TPU.

Заполнение

Высокопроизводительная программа Cloud TPU — это программа, в которой плотные вычисления можно легко разбить на фрагменты размером 128 x 128. Когда матричные вычисления не могут занимать весь блок MXU, компилятор дополняет тензоры нулями. У заполнения есть два недостатка:

  • Тензоры, дополненные нулями, недостаточно используют ядро ​​TPU.
  • Заполнение увеличивает объем встроенной памяти, необходимой для тензора, и в крайнем случае может привести к ошибке нехватки памяти.

Несмотря на то, что заполнение автоматически выполняется компилятором XLA, когда это необходимо, можно определить объем заполнения, выполняемого с помощью инструмента op_profile. Вы можете избежать заполнения, выбрав размеры тензора, которые хорошо подходят для TPU.

Размеры

Выбор подходящих размеров тензора имеет большое значение для достижения максимальной производительности оборудования TPU, особенно MXU. Компилятор XLA пытается использовать либо размер пакета, либо измерение функции, чтобы максимально использовать MXU. Следовательно, одно из них должно быть кратно 128. В противном случае компилятор добавит одно из них к 128. В идеале размер пакета, а также размерность функции должны быть кратны 8, что позволяет извлечь высокую производительность из подсистемы памяти.< /p>

Операции

Сервис VPC контролирует интеграцию

Cloud TPU VPC Service Controls позволяет вам определять периметры безопасности вокруг ваших ресурсов Cloud TPU и контролировать перемещение данных через границу периметра. Дополнительные сведения об элементах управления службами VPC см. в разделе Обзор средств управления службами VPC. Чтобы узнать об ограничениях использования Cloud TPU с VPC Service Controls, ознакомьтесь с поддерживаемыми продуктами и ограничениями.

Пограничный ТПУ

Моделям машинного обучения, обученным в облаке, все чаще приходится выполнять логические выводы «на периферии», то есть на устройствах, которые работают на периферии Интернета вещей (IoT). К таким устройствам относятся датчики и другие интеллектуальные устройства, которые собирают данные в режиме реального времени, принимают интеллектуальные решения, а затем выполняют действия или передают свою информацию на другие устройства или в облако.

Поскольку такие устройства должны работать с ограниченным энергопотреблением (в том числе от аккумулятора), Google разработала сопроцессор Edge TPU для ускорения логического вывода машинного обучения на устройствах с низким энергопотреблением. Отдельный Edge TPU может выполнять 4 триллиона операций в секунду (4 TOPS), потребляя всего 2 Вт мощности — другими словами, вы получаете 2 TOPS на ватт. Например, Edge TPU может выполнять самые современные модели мобильного зрения, такие как MobileNet V2, со скоростью почти 400 кадров в секунду и с низким энергопотреблением.

Этот ускоритель машинного обучения с низким энергопотреблением дополняет Cloud TPU и Cloud IoT, предоставляя сквозную (между облаком, аппаратное и программное обеспечение) инфраструктуру, которая упрощает работу с решениями на основе ИИ.

Edge TPU доступен для ваших собственных прототипов и производственных устройств в нескольких форм-факторах, включая одноплатный компьютер, систему на модуле, карту PCIe/M.2 и модуль для поверхностного монтажа. Дополнительную информацию о Edge TPU и всех доступных продуктах можно найти на сайте coral.ai.

Что дальше

  • Прочитайте краткое руководство по TPU, чтобы начать работу с ресурсами Cloud TPU.
  • Пройдите одно из учебных пособий по Cloud TPU, чтобы узнать, как запускать распространенные рабочие нагрузки машинного обучения на ресурсах Cloud TPU.

Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

Технологии искусственного интеллекта и машинного обучения ускоряют развитие интеллектуальных приложений. Чтобы справляться со все более сложными приложениями, полупроводниковые компании постоянно разрабатывают процессоры и ускорители, включая CPU, GPU и TPU. Однако из-за замедления по закону Мура одной производительности ЦП будет недостаточно для эффективного выполнения ресурсоемких рабочих нагрузок. Проблема в том, как компании могут повысить производительность целых систем, чтобы удовлетворить чрезмерные требования приложений ИИ? Ответ может прийти через разработку GPU и TPU в дополнение к CPU для запуска моделей глубокого обучения. Вот почему важно понимать технологии, лежащие в основе ЦП, ГП и ТПУ, чтобы идти в ногу с постоянно развивающимися технологиями для повышения производительности и эффективности.

Если вы ищете ответы на вопрос, в чем разница между CPU, GPU и TPU? Или как они работают в компьютерной архитектуре? Чтение этого блога может помочь вам ответить на некоторые вопросы о процессорах, графических процессорах и TPU.

Основное различие между ЦП, ГП и ТПУ заключается в том, что ЦП — это процессор, который работает как мозг компьютера и идеально подходит для программирования общего назначения. Напротив, GPU — это ускоритель производительности, улучшающий рабочие нагрузки компьютерной графики и ИИ. В то время как TPU — это специально разработанные процессоры Google, которые ускоряют рабочие нагрузки машинного обучения с использованием (конкретной платформы машинного обучения) TensorFlow. Узнайте больше об ускорении производительности в предыдущей записи блога о выделенном вычислительном оборудовании.

Что такое процессор?

CPU-centra-processing-unit

Центральный процессор (ЦП) — это базовый процессор, присутствующий во всех ваших смарт-устройствах. ЦП — это процессор общего назначения, разработанный с несколькими мощными ядрами и большой кэш-памятью, что позволяет ему одновременно запускать несколько программных потоков. Процессор подобен дирижеру в оркестре; он управляет всеми остальными компонентами от памяти до видеокарты, выполняя множество функций обработки для системы.

ЦП имеет по крайней мере одно процессорное ядро, но со временем число ядер увеличивается. Наличие нескольких ядер позволяет ЦП выполнять многопоточность — технологию, которая позволяет ЦП одновременно выполнять две линии выполнения (потоки) на одном ядре. Кроме того, современные ЦП теперь имеют от двух до шести ядер, а некоторые даже имеют от восьми до 64 ядер для ЦП корпоративного уровня, которые обычно зарезервированы для центра обработки данных.

Обзор возможностей ЦП:

  • Имеет несколько ядер
  • Низкая задержка
  • Специализируется на последовательной обработке
  • Возможность одновременного выполнения нескольких операций
  • Наибольшая загрузка FLOPS для RNN (рекуррентная нейронная сеть)
  • Поддержка самой крупной модели благодаря большому объему памяти.
  • Гораздо более гибкие и программируемые для нерегулярных вычислений (например, небольших пакетов вычислений без MatMul)

Что такое графический процессор?

GPU-графический процессор

ГП (графический процессор) – это специализированный процессор, работающий вместе с ЦП в качестве ускорителя производительности. По сравнению с центральным процессором, графический процессор имеет тысячи ядер, которые могут разбивать сложные проблемы на тысячи или миллионы отдельных задач и решать их параллельно. Параллельные вычисления используют тысячи ядер графического процессора для оптимизации различных приложений, включая обработку графики, рендеринг видео, машинное обучение и даже майнинг таких криптовалют, как биткойн.

За последнее десятилетие графические процессоры стали незаменимыми для разработки глубокого обучения. Благодаря способности ускорять большие матричные операции и выполнять матричные вычисления смешанной точности за одну операцию, графические процессоры могут ускорить глубокое обучение с высокой скоростью. Эта технология параллельных вычислений делает GPU важной частью современных суперкомпьютеров, вызвавших бум искусственного интеллекта во всем мире.

Сводка возможностей графического процессора:

  • Имеет тысячи ядер
  • Высокая пропускная способность
  • Специализируется на параллельной обработке
  • Способность выполнять тысячи операций одновременно

Что такое ТПУ?

TPU-tensor-processing-unit

TPU — это блоки тензорной обработки, представляющие собой специализированные интегральные схемы (ASIC). TPU были разработаны Google с нуля; они начали использовать TPU в 2015 году и сделали их общедоступными в 2018 году. TPU доступны в виде облачной или уменьшенной версии чипа. Облачные TPU невероятно быстро выполняют плотные векторные и матричные вычисления, чтобы ускорить машинное обучение нейронной сети в программном обеспечении TensorFlow. TensorFlow — это платформа машинного обучения с открытым исходным кодом, созданная командой Google Brain Team, чтобы помочь разработчикам, исследователям и предприятиям запускать и использовать модели ИИ на высокоуровневых API-интерфейсах TensorFlow, поддерживаемых оборудованием Cloud TPU. TPU минимизируют время достижения точности при обучении больших и сложных моделей нейронных сетей. Благодаря TPU модели глубокого обучения, которые раньше обучались на GPU неделями, теперь на TPU занимают всего несколько часов.

Обзор возможностей TPU:

  • Специальное оборудование для матричной обработки
  • Высокая задержка (по сравнению с ЦП)
  • Очень высокая пропускная способность
  • Вычисления с максимальным параллелизмом
  • Высокая оптимизация для больших пакетов и CNN (сверточная нейронная сеть)

Кто такие производители процессоров, графических процессоров и TPU?

CPU-производит- GPU-производители-TPU-производители

Производители процессоров: Intel, AMD, Qualcomm, NVIDIA, IBM, Samsung, Apple, Hewlett-Packard, VIA, Atmel и т. д.

Производители графических процессоров: NVIDIA, AMD, Broadcom Limited, Imagination Technologies (PowerVR)

Производитель ТПУ: Google, Coral (принадлежит Google), HAILO

Когда использовать CPU, GPU или TPU для запуска моделей машинного обучения?

CPU-GPU-TPU-for-AI-приложения

ЦП — это процессоры общего назначения, а ГП и ТПУ — это оптимизированные ускорители, ускоряющие машинное обучение. Может показаться довольно простым, какой из них использовать для запуска рабочих нагрузок машинного обучения. Однако вы можете присмотреться и подумать, какие модели машинного обучения вы используете, чтобы решить, какое оборудование лучше всего подходит для вашей рабочей нагрузки. Вот несколько кратких рекомендаций, которые помогут вам определить, какие процессоры лучше всего подходят для вашего приложения:

  • Прототипы, требующие максимальной гибкости
  • Обучение простых моделей, не требующее много времени
  • Обучение небольших моделей с небольшими эффективными размерами пакетов.
  • В основном написан на C++ на основе пользовательских операций TensorFlow.
  • Модели с ограниченным вводом-выводом или ограниченной пропускной способностью сети
  • Модели, которые слишком сложно изменить, или несуществующие источники
  • Модели с многочисленными пользовательскими операциями TensorFlow, которые должен поддерживать графический процессор
  • Модели, недоступные в Cloud TPU
  • Модели среднего или большего размера с большими эффективными размерами партий.
  • Обучение моделей с использованием в основном матричных вычислений
  • Обучение моделей без пользовательских операций TensorFlow внутри основного цикла обучения
  • Обучающие модели, для завершения которых требуются недели или месяцы
  • Обучение огромных моделей с очень большими эффективными размерами пакетов

Как CPU, GPU и TPU подключаются к материнской плате?

Материнская плата – это пластиковая печатная плата, которая содержит различные компоненты компьютера, такие как ЦП, память и разъемы для других периферийных устройств. Материнская плата — это место, где все процессоры, графические процессоры и TPU подключены для связи с другими электронными компонентами системы.

Как процессоры подключаются к материнской плате?

ЦП-сокет-как-ЦП-подключен-к-материнской плате?

Существует два основных типа ЦП: сокетные ЦП и интегрированные ЦП SoC (система на кристалле). ЦП сокета устанавливаются в слот ЦП на материнской плате. Сокеты ЦП имеют тысячи контактных точек или металлических контактов для питания и передачи данных между ЦП и другими процессорами, подключенными к материнской плате. ЦП сокета обычно подключаются через слот ЦП массива ping-сетки (PGA) или массива наземной сетки (LGA). С другой стороны, SoC — это уникальный набор микросхем, в котором центральный процессор вместе с другими важными периферийными устройствами, такими как память и графический ускоритель, объединены в один кремниевый чип. SoC обычно припаиваются прямо к материнской плате с помощью BGA-подключения и обеспечивают более низкое энергопотребление для IoT и мобильных приложений.

Энергопотребление ЦП и решение для его охлаждения

Потребляемая мощность ЦП – это значение мощности, необходимой для работы ЦП. Значение энергопотребления может быть полезным ориентиром при выборе правильного решения для охлаждения. При выборе решения для охлаждения производители часто используют расчетную тепловую мощность (TDP), чтобы описать, насколько эффективно их решение охлаждает ЦП. Значение TDP определяет, сколько тепла может выделять процессор при высокой нагрузке. Энергопотребление ЦП и TDP тесно связаны, где более высокое энергопотребление приводит к более высокому TDP. Чем мощнее ЦП, тем больше энергии он потребляет и тем больше тепла выделяет при работе с высокой нагрузкой. На рынке доступен широкий спектр процессоров с различными значениями TDP; TDP процессора обычно составляет от 10 Вт до 130 Вт выделяемого тепла. Чтобы выбрать правильное решение для охлаждения, ваше решение для охлаждения и ваш процессор должны иметь одинаковый TDP. Например, для ЦП с TDP 95 Вт требуется решение для охлаждения с TDP 95 Вт. В промышленном секторе безвентиляторные защищенные компьютеры используют пассивные решения для охлаждения ЦП. Безвентиляторное решение может охлаждать процессоры с TDP от 10 Вт до 65 Вт. Для чего-то большего потребуется решение для активного охлаждения, обычно с вентилятором.

Как GPU подключаются к материнской плате?

GPU-энергопотребление-решение-и-охлаждение

Графические процессоры — это дополнительные ускорители, которые немного отличаются по способу подключения к материнской плате. Графические процессоры бывают двух основных типов: дискретные графические процессоры и интегрированные графические процессоры. Дискретный графический процессор — это внешний графический процессор, отдельный от центрального процессора. GPU имеет собственную выделенную память, которая отделена от CPU. Дискретные графические процессоры обычно подключаются к слоту PCI Express x16 на материнской плате. Напротив, встроенные графические процессоры встраиваются вместе с ЦП в интегральную схему SoC.

Энергопотребление графического процессора и решение для его охлаждения

Графические карты также сообщают свое энергопотребление и показатель TDP, измеряемый в ваттах (Вт). Типичные дискретные графические процессоры потребляют от 80 до 250 Вт энергии и выделяют от 100 до 300 Вт тепла в зависимости от их рейтинга TDP. Дискретные графические процессоры обычно включают встроенные решения для охлаждения, которые уже соответствуют TDP их видеокарты. Проверка энергопотребления вашего графического процессора и значения TDP помогает решить, какой блок питания (блок питания) приобрести или хотите ли вы установить дополнительные решения для охлаждения для тяжелых приложений разгона.

Как TPU подключаются к материнской плате?

TPU-tensor- блок обработки

В начале 2019 года Google наконец-то выпустила оборудование из термопластичного полиуретана, которое можно купить у бренда Coral. Текущая спецификация для блоков TPU, которые вы можете купить, может выполнять 4 триллиона операций в секунду (TOPS), потребляя всего 0,5 Вт мощности на каждый TOPS. Сегодня вы можете приобрести три типа оборудования TPU:

  1. USB-ускорители TPU с Edge TPU через USB-кабель.
  2. TPU, которые подключаются через соединения mPCIe или M.2 (клавиши A+E и B+M). Разъемы M.2 и mPCIe позволяют подключать TPU непосредственно к материнской плате.
  3. Вариант TPU Dev Board – это одноплатный компьютер со съемной системой-на-модуле (SoM) для модульных приложений ИИ.

Энергопотребление TPU и решение для его охлаждения

TPU-решение-управление-питанием-и-охлаждением

Ускоритель Google Edge TPU ML обеспечивает общую пиковую производительность 8 TOPS (триллионов операций в секунду) при энергопотреблении 2 TOPS на ватт. В качестве решения для охлаждения вы можете прикрепить радиатор или металлический корпус через отдельные термопрокладки на M.2 TPU, чтобы обеспечить успешную долгосрочную работу. Кроме того, крайний ТПУ имеет высокую температуру перехода Tj, с максимальной температурой перехода Tj: 115 ℃. Температура перехода — это самая высокая рабочая температура кремниевого чипа. Температура перехода Edge TPU должна оставаться ниже температурного предела для безопасной работы. Каждый TPU включает датчик температуры для контроля внутренней температуры и указания точки срабатывания для динамического масштабирования частоты (DFS). Растет спрос на TPU для периферийных промышленных приложений из-за их компактного форм-фактора, низкого энергопотребления, отличной эффективности и устойчивости к высоким температурам.

Было показано, что различные технологии обработки предлагают различные преимущества в зависимости от конкретного применения. Новые технологии развиваются стремительно, поэтому крайне важно быть в курсе последних инноваций в области вычислительных технологий, поскольку индустрия искусственного интеллекта и полупроводников продолжает расти в геометрической прогрессии.


Google представила Tensor Processing Units или TPU в 2016 году. TPU, в отличие от GPU, были специально разработаны для выполнения таких операций, как умножение матриц при обучении нейронных сетей. Доступ к TPU Google можно получить в двух формах — облачный TPU и пограничный TPU. Доступ к облачным TPU можно получить из ноутбука Google Colab, который предоставляет пользователям модули TPU, размещенные в центрах обработки данных Google. Принимая во внимание, что Edge TPU — это специально созданный комплект для разработки, который можно использовать для создания конкретных приложений. В следующем разделе мы увидим работу TPU и ее ключевых компонентов.

Ключевые компоненты TPU

Прежде чем перейти к работе с TPU, вот несколько слов, связанных с ним:

Тензор

Тензоры – это многомерные массивы или матрицы. Тензоры — это фундаментальные единицы, которые могут хранить точки данных, такие как веса узла в нейронной сети, в формате строк и столбцов. С тензорами выполняются основные математические операции, включая сложение, поэлементное умножение и умножение матриц.

bплавающий

FLOP (операций с плавающей запятой в секунду) – это единица измерения производительности вычислительной операции. Пользовательский формат с плавающей запятой, в случае TPU Google, называется «Формат с плавающей запятой мозга» или для краткости «bfloat16». bfloat16 тщательно помещается в систолические массивы для ускорения обучения нейронной сети. Чем выше диапазон FLOP, тем выше вычислительная мощность.

Систолический массив

через HT Kung, CMU

Систолический массив – это сеть процессоров, отвечающих за выполнение вычислений и передачу результатов по системе. Он состоит из большого количества обрабатывающих элементов (PE), расположенных в виде массивов, как показано выше. Эти массивы обладают высокой степенью параллелизма и удобны для параллельных вычислений.

Как работают TPU

Tensor Processing Unit (TPU) — специализированная микросхема ASIC, созданная специально для машинного обучения и адаптированная для TensorFlow. Она может выполнять массовые умножения и сложения для нейронных сетей с большой скоростью, при этом сокращая использование слишком большого количества энергии и занимаемой площади.

TPU выполняют 3 основных шага:

  1. Сначала параметры загружаются из памяти в матрицу умножителей и сумматоров.
  2. Затем данные загружаются из памяти.
  3. После каждой операции умножения результаты передаются следующим множителям с одновременным суммированием (скалярным произведением). Это видно на приведенной выше анимации. Затем выходные данные представляются как сумма всех результатов умножения между данными и параметрами.

Типичный облачный TPU имеет два систолических массива размером 128 x 128, объединяющих 32 768 ALU (арифметико-логических единиц) для 16-битных значений с плавающей запятой в одном процессоре. Тысячи умножителей и сумматоров связаны друг с другом напрямую, образуя большую физическую матрицу операторов, которая формирует архитектуру систолического массива, как обсуждалось выше.

TPU позволяет чипу быть более устойчивым к снижению точности вычислений, что означает, что для каждой операции требуется меньше транзисторов. Благодаря этой функции один чип может выполнять относительно больше операций в секунду.

Поскольку TPU специально созданы для обработки таких операций, как умножение матриц и ускорение обучения, TPU могут не подходить для обработки других видов рабочих нагрузок.

Ограничения облачных TPU:

  • Рабочие нагрузки, не основанные на матричном умножении, вряд ли будут хорошо работать на TPU
  • Если рабочая нагрузка требует высокоточных арифметических операций, TPU — не лучший выбор.
  • Рабочие нагрузки нейронной сети, содержащие пользовательские операции TensorFlow, написанные на C++, не подходят

Где они используются

TPU использовались в знаменитой игре AlphaGo от DeepMind, где алгоритмы использовались для победы над лучшим в мире игроком в го Ли Седолем. Он также использовался в системе AlphaZero, которая выпускала программы для игры в шахматы, сёги и го. Google также использовал TPU для своих сервисов обработки текста Street View и смог найти весь текст в базе данных Street View менее чем за пять дней. В случае с Google Фото TPU теперь позволяют обрабатывать более 100 миллионов фотографий в день. Что наиболее важно, TPU также использовались для «мозгов» результатов поиска Google — RankBrain.

Читайте также: