Двойные TFLOPS в спецификациях NVIDIA: что скрывается за пометкой (sparse)

Если вы когда-либо изучали технические листы GPU серии A100, H100 или L40S, вы наверняка замечали любопытную особенность: рядом с базовым числом TFLOPS всегда присутствует строчка со значением вдвое выше и пометкой (sparse). Многие воспринимают это как маркетинговый трюк — и отчасти справедливо, однако за этой цифрой стоит вполне реальная аппаратная технология.

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


Разреженность весов в нейронных сетях: откуда она берётся

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

Это явление называется разреженностью (sparsity). Чем выше доля нулевых весов, тем меньше умножений и накоплений фактически нужно выполнять при инференсе. Снижение числа операций напрямую влияет как на скорость, так и на потребление памяти.

Произвольная разреженность: почему аппаратуре сложно её использовать

При произвольной (unstructured) разреженности нули встречаются в матрице весов без какой-либо закономерности. Достичь высокого процента нулей таким путём несложно, но аппаратура не может извлечь из этого реальной выгоды: GPU не знает заранее, где именно расположен каждый ноль, и вынужден обращаться ко всем элементам последовательно.

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

Структурная разреженность: предсказуемый шаблон для аппаратного ускорения

Структурная (structured) разреженность принципиально иная: нули расставляются по строгой, заранее известной схеме. NVIDIA реализовала конкретный вариант — 2:4 sparsity: в каждой группе из четырёх последовательных весов ровно два обнуляются, а два остаются ненулевыми. Поскольку распределение нулей предсказуемо, Tensor Cores могут обрабатывать такую матрицу принципиально иначе — пропуская нулевые элементы аппаратно, без лишних обращений к памяти.


Как 2:4 sparsity реализована в Tensor Cores начиная с Ampere

Поддержку структурной разреженности NVIDIA впервые встроила непосредственно в Tensor Cores в рамках архитектуры Ampere (2020). Механизм включает несколько этапов.

Этап прореживания: подготовка весов

Перед запуском модели её веса проходят структурное прореживание (structured pruning). Из каждой группы четырёх соседних весов выбираются два наименее значимых и принудительно обнуляются. Оставшиеся два ненулевых значения сохраняются в сжатом формате вместе с индексами их позиций — так называемый compressed sparse format (CSF).

В результате матрица весов занимает вдвое меньше памяти в сжатом виде, а сами вычисления могут опираться на это сжатие при выполнении матричного умножения.

Выполнение операций: двойная пропускная способность за такт

Tensor Cores архитектур Ampere, Hopper и Ada Lovelace умеют за один такт обрабатывать сразу два ненулевых элемента, используя сохранённые индексы для правильного умножения. Это означает, что за то же число тактов выполняется вдвое больше полезных операций умножения и накопления — отсюда и появляется коэффициент ×2 в спецификациях.

Реальные числа по конкретным моделям GPU

Именно этот механизм формирует строку (sparse) в таблицах характеристик:

  • NVIDIA A100 SXM: 312 TFLOPS (dense) → 624 TFLOPS (sparse) при FP16
  • NVIDIA H100 SXM: 989 TFLOPS (dense) → 1979 TFLOPS (sparse) при FP16
  • NVIDIA L40S: 362 TFLOPS (dense) → 733 TFLOPS (sparse) при FP16
  • NVIDIA H100 SXM: до 3958 TFLOPS (sparse) при FP8

Цифры впечатляют, но их важно правильно интерпретировать.


Четыре условия, при которых удвоение реально достижимо

Показатели с пометкой (sparse) — это теоретически достижимый максимум при строгом соблюдении всех требований, а не гарантированный прирост для любой задачи. Необходимо одновременное выполнение нескольких условий.

1. Модель должна быть структурно прорежена по схеме 2:4

Обычная модель не обладает структурной разреженностью автоматически. Необходим отдельный этап structured pruning после базового обучения. В экосистеме PyTorch за это отвечают инструменты NVIDIA Apex и модуль torch.ao.sparsity.

Пример: прорежённые версии BERT (pruned BERT) сохраняют точность на задачах понимания текста практически без потерь, при этом значительная доля весов в трансформерных слоях обнулена по схеме 2:4.

2. Инференс-стек должен явно поддерживать sparse-режим

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

  • cuSPARSELt — библиотека NVIDIA для ускоренных разреженных матричных операций
  • TensorRT — компилятор и среда выполнения для инференса с встроенной поддержкой 2:4 sparsity
  • cuDNN — интеграция на уровне операций свёртки и механизма внимания

3. Подходящий формат данных

Аппаратное ускорение 2:4 sparsity в Tensor Cores работает с форматами FP16, BF16 и INT8. При использовании FP32 технология не активируется — это важно учитывать при планировании рабочей нагрузки.

4. Совместимость архитектуры модели

Не все нейросетевые архитектуры одинаково хорошо переносят структурное прореживание. Трансформеры, свёрточные сети (CNN) и большинство рекуррентных сетей допускают применение схемы 2:4 с минимальной деградацией качества. Однако небольшие или узкоспециализированные модели могут существенно терять в точности при попытке принудительного прореживания.


Почему в спецификациях GPU указываются sparse-значения

Логика прозрачна: технология реальна, числа технически достижимы, а удвоение производительности на бумаге выглядит убедительно. При этом sparse-показатели не являются обманом — они честно отражают пиковую пропускную способность при соблюдении всех условий.

Для профессионального выбора оборудования важно понимать разницу между двумя метриками:

Метрика Что означает
Dense TFLOPS (без пометки) Реальная производительность для любых рабочих нагрузок
Sparse TFLOPS (2:4) Максимум при использовании прорежённых моделей в поддерживаемых фреймворках

При сравнении GPU от разных производителей или разных поколений NVIDIA необходимо сопоставлять только однотипные метрики: dense с dense, sparse со sparse. Смешивать их при сравнении нельзя — это ведёт к ошибочным выводам о реальном соотношении производительности.


Архитектурная эволюция: Ampere, Ada Lovelace, Hopper

NVIDIA последовательно развивает поддержку разреженности на каждом новом поколении ускорителей.

Ampere (A100, A30, A10G) — первое поколение с аппаратной поддержкой 2:4 sparsity непосредственно в Tensor Cores. Поддерживаемые форматы: FP16, BF16, INT8. Основные сценарии применения — дата-центровый инференс и масштабное обучение.

Ada Lovelace (L40S, RTX 6000 Ada) — те же Tensor Cores четвёртого поколения, адаптированные для профессиональной визуализации и edge-инференса. Полная поддержка 2:4 sparsity при FP16 и INT8. L40S сочетает вычислительную мощь ускорителя с возможностями рендеринга в одной карте.

Hopper (H100, H200) — расширенная архитектура с новым Transformer Engine, который динамически выбирает точность вычислений (FP8, FP16, BF16) и умеет сочетать разреженность с квантизацией. На H100 теоретический пик составляет свыше 3900 TFLOPS при FP8 sparse — что делает эту платформу актуальной для инференса LLM промышленного масштаба.


Когда ориентироваться на sparse, а когда — на dense

Понимание границ применимости технологии позволяет принимать обоснованные решения при выборе GPU.

Sparse-производительность актуальна в следующих случаях:

  • Высоконагруженный инференс больших языковых моделей (LLM) через TensorRT-LLM
  • Пакетная обработка изображений с прорежёнными CNN-моделями в production-окружении
  • NLP-инференс на основе pruned-трансформеров: BERT, RoBERTa, DistilBERT и их производных
  • Облачный инференс, где прямые вычислительные расходы зависят от времени использования GPU

Dense-производительность важнее в следующих случаях:

  • Обучение моделей с нуля — sparse-режим на этапах forward/backward pass в общем случае не применяется
  • Научные вычисления и симуляции без нейросетевого компонента
  • Инференс произвольных моделей без предварительного структурного прореживания
  • Задачи, требующие полной точности FP32

Итог: ключевые выводы о структурной разреженности NVIDIA

Структурная разреженность — зрелая инженерная технология, дающая ощутимый прирост производительности при правильном применении. Вот что важно запомнить:

  • Схема 2:4: в каждой группе из четырёх весов два обнуляются — это позволяет Tensor Cores за один такт выполнять вдвое больше полезных умножений
  • Удвоение производительности достижимо на практике, но только при прорежённой модели, совместимом фреймворке и подходящем формате данных (FP16, BF16 или INT8)
  • При сравнении GPU всегда сопоставляйте однородные метрики: dense vs dense или sparse vs sparse
  • Для production-инференса LLM и CNN через TensorRT или cuSPARSELt sparse-показатели являются реальным ориентиром
  • Для обучения и нестандартных рабочих нагрузок полагайтесь на dense TFLOPS

Если вы подбираете GPU-ускоритель под конкретные задачи — специалисты СервакМастер готовы помочь с выбором с учётом вашей нагрузки, бюджета и инфраструктуры. Свяжитесь с нами через форму на сайте.