Компания Tencent Hunyuan открыла исходный код HPC-Ops — библиотеки операторов производственного уровня для устройств с архитектурой больших языковых моделей (LLM).
Особенности HPC-Ops
HPC-Ops фокусируется на низкоуровневых ядрах CUDA для основных операторов, таких как Attention, Grouped GEMM и Fused MoE, и предоставляет к ним доступ через компактный C и Python API для интеграции в существующие стеки логического вывода.
HPC-Ops работает в крупных внутренних сервисах. В этих развёртываниях он обеспечивает примерно 30% улучшение количества запросов в минуту для моделей Tencent-HY и около 17% улучшение для моделей DeepSeek на популярных картах для логического вывода. Эти показатели получены на уровне сервиса, поэтому они отражают совокупный эффект от более быстрых ядер внутри реального конвейера логического вывода.
Область применения и дизайн HPC-Ops
HPC-Ops — это высокопроизводительная и простая в использовании библиотека операторов производственного уровня для логического вывода LLM, разработанная командой Tencent Hunyuan AI Infra. Проект не пытается заменить фреймворки для обслуживания. Вместо этого он предоставляет ядра и чистые API, которые можно вызывать из систем, которые уже занимаются планированием, управлением кэшем KV, пакетной обработкой и транспортом.
API разработан для беспрепятственного использования внутри популярных фреймворков логического вывода, таких как vLLM и SGLang. Это означает, что команда фреймворка может заменить ядра HPC-Ops за своими абстракциями, не изменяя внешнего поведения своих серверов.
HPC-Ops использует C++ и CUDA с CuTe и CUTLASS в качестве строительных блоков. Ядра написаны в виде относительно небольших примеров, которые также служат современным руководством по CUDA.
Характеристики производительности ядер
Проект публикует максимальные наблюдаемые значения ускорения для каждого оператора относительно установленных базовых показателей. Это микротесты, и исследовательская группа подчёркивает, что производительность варьируется в зависимости от форм и рабочих нагрузок, но они показывают потолок оптимизации.
Для Attention в bf16 по сравнению с FlashInfer, FlashAttention два, FlashAttention три и TensorRT LLM HPC Ops сообщает об ускорении до 1,33 раз в prefill и до 2,22 раз в decode. Для Attention в fp8 по сравнению с FlashInfer, FlashAttention три и TensorRT LLM он сообщает об ускорении до 1,12 раз в prefill и до 2,0 раз в decode.
Для FusedMoE fp8 по сравнению с TensorRT LLM и vLLM максимальное наблюдаемое ускорение составляет до 1,49 раз в prefill и 1,14 раз в decode. Для GroupGEMM fp8 по сравнению с DeepGEMM заявленные выигрыши составляют до 1,1 раз в prefill и 1,88 раз в decode.
Эти цифры важны, потому что декодирование обычно является узким местом задержки в авторегрессионной генерации, где размеры пакетов уменьшаются, а трафик памяти преобладает. Тот факт, что Attention и GroupGEMM показывают наибольшие относительные выигрыши в декодировании, говорит о том, что HPC-Ops фокусируется на той части конвейера, которую замечают большинство пользователей.
Поддерживаемые ядра и точность
Текущий выпуск объединяет свою функциональность в три семейства операторов:
* Ядра внимания охватывают как prefill, так и decode и включают поддержку постраничного внимания. Постраничное внимание — это макет памяти, который такие фреймворки, как vLLM, используют для размещения блоков кэша ключей и значений в постраничной структуре, что улучшает повторное использование памяти для длинных последовательностей.
* Grouped GEMM реализован как квантованный GroupGEMM с весами fp8. HPC-Ops поддерживает блочное и по-тензорное масштабирование, поэтому команды могут выбирать между точностью квантования, затратами на хранение параметров и затратами на калибровку.
* Fused-MoE объединяет маршрутизацию смеси экспертов и вычисления экспертов в одном квантованном операторе. Он также использует fp8-веса экспертов и поддерживает стратегии блочного и по-тензорного масштабирования.
Во всех этих ядрах HPC-Ops обеспечивает встроенную поддержку типов данных bf16 и fp8. Это соответствует текущей тенденции в производстве — переводить вывод на более низкие форматы точности, которые сохраняют точность при одновременном снижении пропускной способности памяти и улучшении использования тензорных ядер.
Ключевые выводы
* Tencent Hunyuan открыла исходный код HPC-Ops как библиотеки операторов производственного уровня для логического вывода LLM на графических процессорах NVIDIA SM90, включая H20, с ядрами C++ и CUDA, созданными на CuTe и CUTLASS.
* В производственных развёртываниях HPC-Ops сообщает о примерно 30% приросте QPM для моделей Tencent-HY и примерно о 17% приросте QPM для моделей DeepSeek на популярных картах для логического вывода.
* Микротесты операторов показывают максимальное ускорение до 2,22 раз для декодирования bf16 Attention, до 2,0 раз для декодирования fp8 Attention, до 1,49 раз для prefill fp8 FusedMoE и до 1,88 раз для декодирования fp8 GroupGEMM по сравнению с такими базовыми показателями, как FlashInfer, FlashAttention, TensorRT LLM и DeepGEMM.
* Библиотека фокусируется на трёх семействах операторов: Attention с поддержкой постраничного внимания, квантованный GroupGEMM с весами fp8 и квантованный Fused MoE с весами экспертов fp8, с блочным и по-тензорным масштабированием, а также встроенной поддержкой точности bf16 и fp8.
HPC-Ops разработан как уровень оператора, который интегрируется в существующие фреймворки логического вывода, такие как vLLM и SGLang. Дорожная карта нацелена на разреженное внимание для длинных контекстных LLM, расширенную квантизацию, включая 4-битные и 8-битные стратегии, и ядра, которые лучше совмещают вычисления с многопроцессорной коммуникацией.
Ознакомьтесь с репозиторием [здесь](…). Также подписывайтесь на нас в [Twitter](…). Не забудьте присоединиться к нашему [ML SubReddit](…) и подписаться на [наш Newsletter](…). А если вы в Telegram, присоединяйтесь к нам и там!
1. Какие основные операторы поддерживает библиотека HPC-Ops и какие улучшения она предоставляет для моделей Tencent-HY и DeepSeek?
HPC-Ops поддерживает основные операторы, такие как Attention, Grouped GEMM и Fused MoE. В производственных развёртываниях HPC-Ops сообщает о примерно 30% приросте QPM для моделей Tencent-HY и примерно о 17% приросте QPM для моделей DeepSeek на популярных картах для логического вывода.
2. Какие типы данных поддерживает HPC-Ops и как это соответствует текущей тенденции в производстве?
HPC-Ops обеспечивает встроенную поддержку типов данных bf16 и fp8. Это соответствует текущей тенденции в производстве — переводить вывод на более низкие форматы точности, которые сохраняют точность при одновременном снижении пропускной способности памяти и улучшении использования тензорных ядер.
3. Какие семейства операторов включает текущий выпуск HPC-Ops и какие особенности у каждого из них?
Текущий выпуск объединяет свою функциональность в три семейства операторов:
Ядра внимания охватывают как prefill, так и decode и включают поддержку постраничного внимания.*
Grouped GEMM реализован как квантованный GroupGEMM с весами fp8.*
Fused-MoE объединяет маршрутизацию смеси экспертов и вычисления экспертов в одном квантованном операторе.*
4. Какие цели ставит перед собой команда разработчиков HPC-Ops в рамках дорожной карты?
Дорожная карта нацелена на разреженное внимание для длинных контекстных LLM, расширенную квантизацию, включая 4-битные и 8-битные стратегии, и ядра, которые лучше совмещают вычисления с многопроцессорной коммуникацией.
5. Какие преимущества предоставляет HPC-Ops для интеграции в существующие фреймворки логического вывода?
HPC-Ops разработан как уровень оператора, который интегрируется в существующие фреймворки логического вывода, такие как vLLM и SGLang. Это означает, что команда фреймворка может заменить ядра HPC-Ops за своими абстракциями, не изменяя внешнего поведения своих серверов.