Микротензор в вычислительной технике¶
Микротензор — обобщённое название компактных тензорных структур данных и специализированных аппаратных блоков, предназначенных для ускорения операций над многомерными массивами (тензорами) в задачах машинного обучения, компьютерного зрения и научных вычислений. Термин объединяет два связанных, но различных понятия: программную микротензорную декомпозицию — разбиение крупного тензора на мелкие блоки, и аппаратный микротензорный блок (англ. 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, материалы конференций по компьютерной архитектуре, публикации по библиотекам линейной алгебры и фреймворкам машинного обучения, учебные курсы по тензорным вычислениям.