Скорость обработки данных — это пульс любой вычислительной системы. От смартфона в кармане до кластера, моделирующего ядерный взрыв, все они оперируют одной фундаментальной величиной: количеством элементарных действий за единицу времени. Понимание этой метрики позволяет не только сравнивать «железо», но и прогнозировать, какие задачи станут доступны завтра.

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

Что такое FLOPS и зачем нужна стандартизация

FLOPS (Floating Point Operations Per Second) — количество операций с плавающей запятой в секунду. Это де-факто стандарт для оценки вычислительной производительности в научных, инженерных и задачах машинного обучения. В отличие от целочисленной арифметики, операции с плавающей точкой отражают способность системы работать с непрерывными величинами: координатами, физическими константами, весами нейросетей.

Стандартизация пришла с появлением теста Linpack в 1970-х. Джек Донгарра предложил решать систему линейных уравнений методом Гаусса — нагрузка, близкая к реальным расчётам. Результат в MFLOPS (миллион операций) стал первым универсальным «денежным эквивалентом» мощности. Сегодня единица измерения сдвинулась в сторону PFLOPS (петафлопс = 10¹⁵) и даже EFLOPS (экзафлопс = 10¹⁸).

Важно различать теоретический пик (частота × ядра × SIMD-ширина × FMA) и устойчивую производительность (Sustained Performance). Маркетинг любит первый цифру, инженеры — вторую.

⚠️ Внимание: Теоретический пик FLOPS игнорирует пропускную способность памяти, задержки кэша и накладные расходы планировщика. Реальная эффективность на Linpack редко превышает 70–80 % от пика, а в прикладных кодах — 10–30 %.
📊 Какую метрику производительности вы считаете главной при выборе GPU для ИИ?
FP32 FLOPS (одиночная точность)
TF32/BF16 Tensor TFLOPS
INT8 TOPS (инференс)
VRAM Bandwidth (пропускная способность памяти)

История: от ENIAC до экзаскального барьера

Первый электронный компьютер ENIAC (1945) выдавал около 500 FLOPS — меньше, чем современный микроконтроллер за доллар. К 1976 году Cray-1 прорвал рубеж в 160 MFLOPS, введя векторную архитектуру. 1997 год: ASCI Red (Intel) стал первым терафлопс-системой (1 TFLOPS), заняв 1500 кв. м и потребляя 850 кВт.

Петрафлопс (1 PFLOPS) преодолён в 2008 году системой Roadrunner (IBM, гибрид Cell + Opteron). Экзафлопсный рубеж (1 EFLOPS в двойной точности FP64) официально пройден только в 2022 году суперкомпьютером Frontier (AMD CPU + GPU Instinct) в ОРНЛ. Frontier достиг 1.102 EFLOPS на Linpack при пике 1.685 EFLOPS — это первый случай в истории, когда устойчивая производительность превысила экзафлопс.

Параллельно развивалась GPU-архитектура. NVIDIA GeForce 256 (1999) — первый «GPU» с аппаратным T&L, давал ~50 GFLOPS. Современный H100 (Hopper) в FP64 выдаёт 67 TFLOPS, а в тензорном BF16 — до 1979 TFLOPS (спарсность 2:1). Рост за 20 лет — 40 000×.

Почему Cray-1 был революционным?

Cray-1 использовал векторные регистры длиной 64 элемента и конвейеризацию арифметических блоков. Это позволяло выполнять одну инструкцию над массивом данных (SIMD до модного термина). Архитектура задала вектор развития HPC на десятилетия: современные AVX-512 и SVE — прямые потомки идей Симора Крея.

Основные префиксы и порядки чисел

Навигация в зоопарке префиксов SI — базовый навык. Ниже таблица для быстрой ориентации: степень десятки, обозначение и пример системы, вышедшей на этот уровень.

ПрефиксСтепень 10Операций в секПример системы (год)
Kilo (k)10³1 000ENIAC (1945) ~0.5 kFLOPS
Mega (M)10⁶1 000 000Cray-1 (1976) 160 MFLOPS
Giga (G)10⁹1 000 000 000Intel i860 (1989) ~80 MFLOPS пик, первый GFLOPS-кластер позже
Tera (T)10¹²1 000 000 000 000ASCI Red (1997) 1.3 TFLOPS
Peta (P)10¹⁵10¹⁵Roadrunner (2008) 1.026 PFLOPS
Exa (E)10¹⁸10¹⁸Frontier (2022) 1.102 EFLOPS
Zetta (Z)10²¹10²¹Прогноз: 2030-е (zettascale)

Обратите внимание: в маркетинге ИИ-ускорителей часто используют TOPS (Trillion Operations Per Second) для целочисленной арифметики INT8/INT4. 1 TOPS = 1 TFLOPS по порядку величины, но физически это другие операции. Сравнивать их напрямую нельзя.

TOP500, Green500 и методика Linpack

Список TOP500 обновляется дважды в год с 1993 года. Базовый бенчмарк — HPL (High Performance Linpack): решение плотной системы линейных уравнений Ax=b методом Гаусса с частичным выбором главного элемента. Размер матрицы N выбирают так, чтобы задача занимала 70–80 % оперативной памяти и работала не менее нескольких часов.

Результат измеряется в Rmax (максимально достигнутая производительность) и Rpeak (теоретический пик). Отношение Rmax/Rpeak показывает эффективность масштабирования. Для Frontier оно ~65 %, для Fugaku (A64FX, ARM SVE) — ~82 %, что говорит о выдающейся балансированности памяти и вычислителей.

Green500 ранжирует те же системы по энергоэффективности (GFLOPS/Watt). Лидеры последних лет — архитектуры на ARM и специализированные ИИ-чипы. Henri (Flatiron Institute, NVIDIA A100) показал >65 GFLOPS/W в FP64.

⚠️ Внимание: Linpack нагружает преимущественно FP64 и линейную алгебру. Реальные приложения (CFD, климатические модели, геномика) имеют иную структуру доступа к памяти. Всегда смотрите на прикладные бенчмарки (HPCG, MLPerf, SPEChpc) перед закупкой.
💡

Linpack (HPL) — стандарт де-факто для TOP500, но он не отражает производительность в разреженных матрицах, графах или инференсе LLM. Для ИИ смотрите MLPerf Training/Inference.

ИИ-эра: тензорные ядра, TF32, BF16, FP8 и спарсность

С 2017 года (архитектура Volta) NVIDIA ввела тензорные ядра — матричные мультипликаторы 4×4×4 (позже 16×16×16), выполняющие операцию D = A×B+C за один такт. Это сместило фокус с FP32/FP64 на форматы сниженной точности: TF32 (19 бит мантиссы, 8 бит экспоненты), BF16 (Brain Float 16, 7 бит мантиссы), FP8 (E4M3/E5M2).

Hopper (H100) добавил поддержку структурной спарсности 2:4 — аппаратное пропускание нулевых весов. В даташите указано 1979 TFLOPS для BF16 с парсностью. Без спарсности — ~989 TFLOPS. Разница в 2× чисто маркетинговая, реальный выигрыш зависит от разреженности модели после прунинга.

Конкуренты: AMD CDNA (MI300X) — матричные инструкции MFMA, поддержка FP8, BF16, INT8. Intel Gaudi / Ponte Vecchio — XMX-движки, ориентированы на BF16/FP8. Google TPU v5e — 197 TFLOPS BF16, оптимизирован под JAX/XLA.

Для инференса ключевая метрика — INT8 TOPS и FP8 TFLOPS. H100 декларирует до 3958 TOPS INT8 (спарсность). Но реальная пропускная способность ограничена HBM3/E (3.35 TB/s на H100 SXM). Вычислительная плотность выросла быстрее, чем bandwidth — классическая «стена памяти».

💡

При сравнении ускорителей для LLM смотрите на FP8/BF16 Tensor TFLOPS без спарсности и на HBM bandwidth. Соотношение Compute / Bandwidth (ops/byte) определит, упретесь ли вы в расчёты или в память. Для LLM инференс почти всегда memory-bound.

Как измеряют реальную производительность: за пределами Linpack

Один Linpack недостаточен. Индустрия использует набор бенчмарков:

  • 🔬 HPCG (High Performance Conjugate Gradients) — разрежённые матрицы, нерегулярный доступ к памяти. Эффективность систем на HPCG обычно 1–3 % от Rpeak.
  • 🧠 MLPerf Training / Inference — эталонные модели (ResNet-50, BERT, GPT-3, DLRM, Stable Diffusion). Показывает время до конвергенции и пропускную способность инференса.
  • ⚙️ SPEChpc 2021 — набор прикладных кодов (LAMMPS, NAMD, WRF, OpenFOAM). Ближе к реальной нагрузке HPC-центров.
  • 💾 STREAM Triad — чистая пропускная способность памяти (Copy, Scale, Add, Triad). Предсказатель для memory-bound задач.

Для одиночного GPU/CPU можно запустить HPL локально. Пример запуска через MPI (OpenMPI + OpenBLAS):

mpirun -np 4 --map-by ppr:1:socket:PE=8 \

xhpl -f HPL.dat

Файл HPL.dat задаёт размеры блоков (NB), сетку процессов (P×Q) и размер матрицы N. Подбор параметров — отдельная наука; автотюнеры вроде AutoHPL или xhpl-ai (для тензорных ядер) упрощают жизнь.

☑️ Минимальный набор замеров перед покупкой кластера

Выполнено: 0 / 5

Энергопотребление и тепловыделение: скрытые ограничители

Экзафлопсная система Frontier потребляет ~21 МВт (включая охлаждение) при Rmax 1.1 EFLOPS. Это ~52 GFLOPS/W. Для сравнения: человеческий мозг оценивается в ~10¹⁶–10¹⁷ операций при ~20 Ватт — 500–5000 PFLOPS/W. Кремний отстаёт на 8–10 порядков энергоэффективности.

Основные потери: утечки в транзисторах (static power), динамическое переключение (CV²f), перемещение данных (DRAM access ~100–500 пДж/бит vs ALU op ~1 пДж). Data movement — главный враг. Архитектуры с near-memory computing (HBM, 3D-стакинг, CXL.mem) и аналоговые/ин-мемори вычисления пытаются решить проблему.

Жидкостное охлаждение (direct-to-chip, immersion) становится обязательным для плотностей >50 кВт/стойку. Frontier использует теплообменники на каждом узле; температура входа воды ~32 °C, выхода ~40 °C. Это позволяет убрать чиллеры и снизить PUE (Power Usage Effectiveness) до ~1.03.

⚠️ Внимание: TDP в даташите — не предел потребления. Под нагрузкой AVX-512 / тензорными ядрами реальное потребление может превышать TDP на 15–25 % (Turbo, Power Virus). Блоки питания и VRM проектируйте с запасом 30 %.

Будущее: зеттаскал, квантовые и нейроморфные вычисления

Дорожная карта DOE (США) и EuroHPC ставит цель zettascale (10²¹ FLOPS) к 2032–2035 г. Основные вызовы: питание >100 МВт (нужны СМР — малые модульные реакторы или выделенные ГЭС), надёжность (MTBF компонентов при миллионах GPU), программные стеки для гетерогенных архитектур.

Квантовые компьютеры не измеряются в FLOPS. Их метрика — Quantum Volume, число логических кубитов, глубина цепи. Для задач химии, оптимизации, криптографии они дадут экспоненциальное ускорение, но не заменят классические FLOPS для линейной алгебры и ИИ.

Нейроморфные чипы (Intel Loihi 2, BrainScaleS-2, SpiNNaker 2) эмулируют спайковые нейронные сети. Энергоэффективность ~10⁻¹⁵ Дж/операция (ближе к биологии). Метрика — SOPS (Synaptic Operations Per Second). Пока нишевы, но перспективны для edge-ИИ и сенсорной обработки.

Классические CMOS-подходы продолжают масштабироваться: 3D-стакинг (TSMC SoIC, Intel Foveros), чиплеты (UCIe), оптические интерконнекты (CPO, OIO). Каждая генерация даёт 1.5–2× плотности вычислений. Закон Мура в исходном виде закончился, но «закон Хуанга» (производительность ИИ на ватт) пока держится.

💡

Экзафлопс пройден, зеттафлопс — следующий рубеж. Главный ограничитель — не физика транзистора, а термодинамика и экономика энергии. Архитектуры сближения памяти и вычислений (PIM, CXL, 3D) решат проблему bandwidth wall.

Часто задаваемые вопросы (FAQ)

В чём разница между FLOPS и TOPS?

FLOPS — операции с плавающей запятой (FP64, FP32, BF16, FP8). TOPS — целочисленные операции (INT8, INT4). 1 TOPS ≈ 1 TFLOPS по масштабу, но точность и диапазон чисел принципиально разные. Для обучения нейросетей важен FP32/BF16/TF32; для квантованного инференса — INT8/FP8 TOPS.

Почему мой GPU выдаёт меньше FLOPS, чем в даташите?

Даташит указывает теоретический пик (Boost Clock × CUDA Cores × 2 FMA × SIMD). Реальность ограничена: тепловым троттлингом, питанием (Power Limit), пропускной способностью памяти, неидеальной загрузкой SM, драйверными накладными расходами. Типичная устойчивая производительность — 60–85 % от пика в FP32, 40–70 % в FP64.

Нужен ли мне FP64 (двойная точность) для ИИ?

Для обучения больших языковых моделей — нет, стандарт — BF16/TF32/FP8 с loss scaling. FP64 критичен для научных симуляций (CFD, молекулярная динамика, климат), финансового моделирования и обучения некоторых детерминированных алгоритмов. Потребительские GPU (GeForce, Radeon) имеют урезанный FP64 (1/32 или 1/64 от FP32). Профессиональные (RTX 6000 Ada, H100, MI300X) — полноскоростной FP64 (1/2 от FP32).

Что такое спарсность 2:4 и даёт ли она реальный ускор?

Структурная спарсность 2:4 означает, что в каждом блоке из 4 весов 2 принудительно обнуляются. Аппаратный движок пропускает умножение на ноль. Теоретический пик растёт в 2×. Реальный выигрыш — 1.2–1.6× при условии, что модель после прунинга сохраняет точность. Требует поддержки фреймворком (PyTorch, TensorRT, JAX) и переобучения/калибровки.

Как выбрать систему под конкретную задачу: HPC или ИИ?

HPC (FP64, память на ядро, MPI-масштабируемость) → CPU AMD EPYC (Genoa/Bergamo) + GPU с полным FP64 (H100, MI300X, A100). ИИ обучение (BF16/FP8, tensor parallelism, NVLink/Infinity Fabric) → плотные GPU-серверы (HGX H100 8-GPU, MI300X 8-GPU) с высоким NVLink bandwidth (900 GB/s). ИИ инференс (INT8/FP8, latency/throughput) → L40S, H100 PCIe, Gaudi2/3, TPU v5e — с акцентом на стоимость за 1M токенов.