Понимание блоков тензорной обработки

Опубликовано: 12 Июля, 2021

Что такое блок тензорной обработки?

Поскольку машинное обучение с каждым днем приобретает все большую актуальность и важность, обычные микропроцессоры оказались неспособны эффективно с ним справиться, будь то обучение или обработка нейронных сетей. Графические процессоры с их высокопараллельной архитектурой, разработанной для быстрой обработки графики, оказались более полезными, чем процессоры, для этой цели, но их несколько не хватало. Поэтому, чтобы бороться с этой ситуацией, Google разработал интегральную схему ускорителя ИИ, которая будет использоваться в его структуре искусственного интеллекта TensorFlow. Это устройство было названо TPU (Tensor Processing Unit). Чип был разработан для Tensorflow Framework.

Что такое TensorFlow Framework?

TensorFlow - это библиотека с открытым исходным кодом, разработанная Google для внутреннего использования. Его основное применение - машинное обучение и программирование потоков данных. Вычисления TensorFlow выражаются в виде графов потоков данных с отслеживанием состояния. Название TensorFlow происходит от операций, которые такие нейронные сети выполняют с многомерными массивами данных. Эти массивы называются «тензорами». TensorFlow доступен для дистрибутивов Linux, Windows и MacOS.

Архитектура ТПУ

Следующая диаграмма поясняет физическую архитектуру блоков TPU:

TPU включает следующие вычислительные ресурсы:

  • Матричный умножитель (MXU) : 65, 536 8-битных модулей умножения и сложения для матричных операций.
  • Унифицированный буфер (UB) : 24 МБ SRAM, которые работают как регистры
  • Блок активации (AU): Проводные функции активации.

Существует 5 основных наборов инструкций высокого уровня, предназначенных для управления работой вышеуказанных ресурсов. Вот они:

Инструкция ТПУ Функция
Read_Host_Memory Прочитать данные из памяти
Read_Weights Считайте веса по памяти
MatrixMultiply / Convolve Умножайте или сворачивайте данные и веса, накапливайте результаты
Активировать Применить функции активации
Write_Host_Memory Записать результат в память

Ниже приведена диаграмма стека приложений, поддерживаемая приложениями Google, использующими TensorFlow и TPU:



Преимущества ТПУ

Ниже приведены некоторые заметные преимущества TPU:

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

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

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

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

Рекомендации:
https://cloud.google.com/blog/big-data/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu
https://cloud.google.com/tpu/docs/tpus