Понимание блоков тензорной обработки
Что такое блок тензорной обработки?
Поскольку машинное обучение с каждым днем приобретает все большую актуальность и важность, обычные микропроцессоры оказались неспособны эффективно с ним справиться, будь то обучение или обработка нейронных сетей. Графические процессоры с их высокопараллельной архитектурой, разработанной для быстрой обработки графики, оказались более полезными, чем процессоры, для этой цели, но их несколько не хватало. Поэтому, чтобы бороться с этой ситуацией, 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:
- Повышает производительность вычислений линейной алгебры, которые широко используются в приложениях машинного обучения.
- Минимизирует время достижения точности при обучении больших сложных моделей нейронных сетей.
- Модели, обучение которых на других аппаратных платформах раньше занимало недели, на 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