TF32 (TensorFloat-32) — первый специализированный формат вычислений, который позволил совершить скачок производительности без необходимости переписывать миллионы строк существующего программного кода.
Традиционно числа с плавающей запятой следуют стандарту IEEE 754. Формат FP32 использует 1 бит знака, 8 бит экспоненты и 23 бита мантиссы.
TF32 — это гибридный формат, работающий «под капотом» тензорных ядер. Он изменяет распределение этих 32 бит ради скорости:
Сокращение мантиссы позволяет тензорному ядру выполнять операцию матричного умножения значительно быстрее и энергоэффективнее, так как обрабатывать 10 бит гораздо проще, чем 23.
Самая важная характеристика TF32 заключается в том, что для программиста его не существует. Это ключевой инженерный компромисс. Когда разработчик пишет код на PyTorch или TensorFlow, используя привычные инструкции FP32, драйверы и CUDA автоматически перехватывают эти запросы внутри тензорных ядер и выполняют их в формате TF32.
Для нейросети этот процесс абсолютно прозрачен. Ей «кажется», что она считает в точной одинарной точности, но физически кремний делает это в ускоренном режиме. Это позволило индустрии перейти от эпохи ручных манипуляций с точностью к эпохе автоматизированного ускорения.
До появления TF32 существовало два основных пути ускорения ИИ:
Многие старые модели были написаны жестко под FP32. Переписывание их под FP16 требовало месяцев работы инженеров. TF32 стал «бесплатным обедом»: разработчики получили кратный прирост скорости на тех же самых датасетах и моделях, просто заменив видеокарту V100 на A100.
Технология стала фундаментом для последующих поколений чипов:
Здесь TF32 дебютировал как режим по умолчанию для обучения. Он обеспечил двукратный прирост производительности по сравнению с FP32 в Turing, фактически став новым стандартом де-факто для тренировочных прогонов.
NVIDIA расширила концепцию. В H100 появился режим TF32 + Sparse Acceleration. Поскольку современные обученные нейросети обладают избыточностью (многие веса равны нулю), тензорные ядра научились игнорировать нулевые значения прямо на лету. В сочетании с TF32 это дало еще один кратный скачок мощности, достигнув пиковых показателей в сотни терафлопс.
Хотя Blackwell фокусируется на экстремальных форматах FP4 и FP6, поддержка TF32 сохраняется для обеспечения обратной совместимости. Это гарантирует, что любой научный симулятор или старая модель предиктивной аналитики запустятся на новом железе с максимальной эффективностью.
| Формат | Точность (Mantissa) | Экспонента | Требует изменений в коде? | Основная сфера |
|---|---|---|---|---|
| FP32 | 23 бита | 8 бит | Да (это база) | Эталон, CPU, Оптимизаторы |
| BF16 | 7 бит | 8 бит | Да | Обучение LLM (Google TPU, Intel) |
| TF32 | 10 бит | 8 бит | Нет (Прозрачно) | Тензорные ядра NVIDIA |
Важно отметить разницу между TF32 и BF16. У них одинаковая экспонента (8 бит), но у TF32 больше мантисса (10 против 7). Это делает TF32 чуть более точным, хотя BF16 часто предпочитают за простоту реализации в программном стеке Google JAX.
Несмотря на успех, TF32 имеет свои границы применимости:
TF32 представляет собой блестящий пример аппаратно-программной ко-дизайнерской стратегии. Вместо того чтобы ждать, пока сообщество разработчиков перепишет весь софт мира под новые стандарты точности, инженеры NVIDIA заставили старое ПО работать на новых принципах.
Этот формат сыграл роль переходного звена, подготовив почву для радикальных низкоразрядных форматов (FP8, FP4), которые доминируют в поколении Blackwell. Сегодня TF32 остается надежным выбором для исследователей, которым нужна уверенность в стабильности FP32, но которые хотят использовать мощь современных тензорных ядер без настройки сложных режимов смешанной точности.
Свяжитесь с нашими экспертами для подбора оптимальной конфигурации оборудования и расчета стоимости аренды под ваши задачи ИИ.