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

Микротензор в вычислительной технике

Микротензор — обобщённое название компактных тензорных структур данных и специализированных аппаратных блоков, предназначенных для ускорения операций над многомерными массивами (тензорами) в задачах машинного обучения, компьютерного зрения и научных вычислений. Термин объединяет два связанных, но различных понятия: программную микротензорную декомпозицию — разбиение крупного тензора на мелкие блоки, и аппаратный микротензорный блок (англ. tensor core, micro-tensor unit) — специализированное устройство в составе графических и нейропроцессоров, выполняющее малоразмерные матричные умножения за один такт.

Происхождение понятия

Тензор как математический объект известен с конца XIX века (работы Грегорио Риччи-Курбастро и Туллио Леви-Чивиты). В вычислительной практике тензоры — это многомерные массивы чисел: вектор (ранг 1), матрица (ранг 2), трёх- и четырёхмерные структуры (ранг 3 и выше). В свёрточных нейронных сетях типичны четырёхмерные тензоры вида «число примеров × высота × ширина × каналы».

С начала 2010-х годов рост объёма моделей потребовал аппаратной поддержки тензорных операций. В 2016 году компания Google представила тензорные процессоры (TPU) для ускорения вычислений в своей инфраструктуре. В 2017 году NVIDIA выпустила архитектуру Volta с тензорными ядрами, выполняющими матричное умножение 4×4 за одну инструкцию. Именно эти малоразмерные блоки в русскоязычной технической литературе часто называют микротензорными — в противоположность «макротензорам», то есть полным тензорам модели.

Программная микротензорная декомпозиция

Под микротензором в программном смысле понимают минимальный блок, на который разбивается большой тензор при вычислениях. Идея восходит к технике тайлинга (англ. tiling), применявшейся ещё в библиотеках линейной алгебры BLAS и LAPACK.

Основные принципы:

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

Аппаратные микротензорные блоки

Аппаратный микротензорный блок — это специализированное устройство, реализующее операцию «умножение с накоплением» (MAC) над малыми матрицами. В отличие от универсальных арифметико-логических устройств, он ориентирован на одну операцию, но выполняет её с высокой пропускной способностью.

Типовые характеристики:

ПараметрЗначение (порядок величин)
Размер обрабатываемых матриц4×4, 8×8, 16×16 элементов
Тип данныхполовинная точность (FP16), bfloat16, целочисленные форматы
Накопление результатаодинарная точность (FP32)
Производительностьдесятки и сотни терафлопс на кристалл

Ключевая особенность — смешанная точность: входные данные подаются в урезанном формате, а накопление суммы ведётся в более точном, что снижает потери точности при многократном суммировании.

Применение

Микротензорные структуры и блоки используются в следующих областях:

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

Ограничения

Микротензорный подход не универсален. К его ограничениям относят:

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

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

Значение

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

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

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru