На третий день недели открытых исходных кодов DeepSeek вывел на свет "двигатель" тренировки расследования V3/R1
DeepGEMM: библиотека FP8 GEMM (общего умножения матриц), поддерживающая операции умножения плотных и смешанных экспертных матриц (MoE).
!
Начнем с краткого обзора GEMM.
GEMM, то есть общее умножение матриц, является основной операцией в линейной алгебре, постоянно встречается в областях научных вычислений, машинного обучения, глубокого обучения, а также является основой многих задач высокопроизводительных вычислений.
Однако оптимизация производительности GEMM является критически важной, поскольку его вычислительная сложность обычно довольно велика.
И DeepSeek на этот раз открыл исходный код DeepGEMM, который все еще сохраняет особенности "высокая производительность + низкая стоимость", основные особенности следующие:
Высокая производительность:На архитектуре Hopper GPU DeepGEMM способен достигать производительности вплоть до 1350+FP8 TFLOPS.
Простота : базовая логика состоит всего из примерно 300 строк кода, но при этом производительность превосходит ядра, оптимизированные экспертами.
即时编译(JIT):используя полностью即сей компиляции, это означает, что она может динамически генерировать оптимизированный код во время выполнения, чтобы соответствовать различным аппаратным средствам и размерам матриц.
Без тяжелых зависимостей: Эта библиотека спроектирована так, чтобы быть очень легкой, без сложных зависимостей, что делает ее простой в развертывании и использовании.
Поддержка различных матричных макетов : поддержка плотного матричного макета и двух различных макетов MoE, что позволяет ему адаптироваться к различным сценариям использования, включая, но не ограничиваясь, смешанные экспертные модели в глубоком обучении.
Другими словами, DeepGEMM в основном используется для ускорения матричных операций в глубоком обучении, особенно в крупномасштабном обучении и выводе моделей. Он особенно подходит для сценариев, требующих эффективных вычислительных ресурсов, и способен значительно повысить эффективность вычислений.
Многие интернет-пользователи относятся к этому открытию довольно одобрительно. Некоторые называют DeepGEMM математическим супергероем, считая, что он даже быстрее, чем молниеносный калькулятор, и мощнее, чем полиномиальное уравнение.
!
Также есть люди, которые сравнивают выпуск DeepGEMM с тем, что квантовое состояние стабилизировалось в новую реальность, и хвалят его мгновенную компиляцию как чистую и аккуратную.
!
Конечно, некоторые начали беспокоиться о своих акциях Nvidia...
!
Глубокое погружение в DeepGEMM
DeepGEMM — это библиотека, созданная специально для простого и эффективного FP8 Universal Matrix Multiplication (GEMMs) с мелкозернистым масштабированием, которое является производным от DeepSeek V3.
Он может обрабатывать как обычное общее умножение матриц, так и поддерживать умножение общих матриц групп MoE.
Эта библиотека написана на CUDA, и для установки не требуется компиляция, поскольку она компилирует все ядерные программы во время выполнения через легковесный модуль мгновенной компиляции (JIT).
В настоящее время DeepGEMM поддерживает только тензорные ядра Hopper от Nvidia.
Чтобы решить проблему, связанную с тем, что тензорное ядро FP8 недостаточно точно для вычисления накопления, оно использует двухступенчатый метод накопления (бустинга) ядра CUDA.
Хотя DeepGEMM вдохновлен некоторыми идеями из CUTLASS и CuTe, он не излишне полагается на их шаблоны или алгебраические операции.
Наоборот, этот репозиторий разработан очень лаконично, с одной только основной ядреной функцией, примерно 300 строк кода.
Это делает его кратким и простым для понимания ресурсом для изучения методов умножения и оптимизации матриц FP8 в архитектуре Hopper.
Несмотря на свою компактность, производительность DeepGEMM может соответствовать или превосходить экспертные библиотеки тюнинга для различных форм матриц.
Какова конкретная производительность?
Команда протестировала все формы, которые могут использоваться в выводе DeepSeek-V3/R1 на H800 с помощью NVCC 12.8 (включая предварительное заполнение и декодирование, но без параллельных тензоров).
На следующей диаграмме показана производительность обычного DeepGEMM для плотной модели:
!
По результатам тестирования производительность вычислений DeepGEMM** может достигать 1358 TFLOPS, а память - до 2668 ГБ/с.
В части коэффициента ускорения он может достигать вплоть до 2,7 раза по сравнению с оптимизированной реализацией на основе CUTLASS 3.6.
Давайте теперь посмотрим на производительность DeepGEMM с поддержкой модели MoE в продолжительном макете (contiguous layout):
!
И производительность поддерживает модель MoE ** маскировочного макета ** такая:
!
Как использовать?
Для использования DeepGEMM необходимо учитывать несколько зависимостей, в том числе:
Должна поддерживаться архитектура Hopper GPU, см_90a.
Python 3.8 и выше.
CUDA 12.3 и выше (рекомендуется 12.8).
PyTorch 2.1 и более поздние версии.
CUTLASS 3.6 и выше
Код разработки выглядит следующим образом:
# Submodule must be clonedgit clone --recursive git@github.com:deepseek-ai/DeepGEMM.git# Создавайте символические ссылки для сторонних (CUTLASS и CuTe) включайте каталогиpython setup.py develop# Test JIT compilationpython tests/test_jit.py# Протестировать все реализации GEMM (normal, contiguous-grouped и masked-grouped)python tests/test_core.py
Установочный код приведен ниже:
python setup.py установить
После описанных выше шагов вы можете импортировать deep_gemm в свой проект Python.
Что касается интерфейсов, то для обычного DeepGEMM может быть вызвана функция deep_gemm.gemm_fp8_fp8_bf16_nt, а также поддерживается формат NT (нетранспонированный LHS и транспонированный RHS).
Для сгруппированных DeepGEMM m_grouped_gemm_fp8_fp8_bf16_nt_contiguous в случае непрерывной компоновки. В случае компоновки маски это m_grouped_gemm_fp8_fp8_bf16_nt_masked.
DeepGEMM также предоставляет инструментальные функции для установки максимального количества SM, получения выравнивания TMA и поддерживает переменные среды, такие как DG_NVCC_COMPILER, DG_JIT_DEBUG и т. д.
Кроме того, команда DeepSeek также предоставляет несколько оптимизированных способов, включая:
JIT-проектирование: Все ядра компилируются во время выполнения, нет необходимости компилировать во время установки; Поддерживает динамический выбор оптимального размера блока и стадии трубопровода.
Тонкомасштабное увеличение: решение проблемы точности FP8 через двойное накопление ядер CUDA; поддержка оптимизации использования SM для блоков неподходящего размера для степеней 2.
FFMA SASS Interleaved: Повышает производительность за счет изменения битов выдачи и повторного использования инструкций SASS.
!
Заинтересованные партнеры могут нажать на ссылку GitHub в конце статьи, чтобы просмотреть подробности~
И ещё кое-что
Акции Nvidia ...... в эти дни Колодец...... Продолжайте падать снова:
!
Тем не менее, рано утром 27-го числа по пекинскому времени также будет опубликован отчет Nvidia о производительности за четвертый квартал 2025 финансового года, и мы можем с нетерпением ждать его производительности~
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
DeepSeekОткрытый исходный код第三弹:V3/R1训练推理关键秘籍
Источник: Кубиты
На третий день недели открытых исходных кодов DeepSeek вывел на свет "двигатель" тренировки расследования V3/R1
DeepGEMM: библиотека FP8 GEMM (общего умножения матриц), поддерживающая операции умножения плотных и смешанных экспертных матриц (MoE).
!
Начнем с краткого обзора GEMM.
GEMM, то есть общее умножение матриц, является основной операцией в линейной алгебре, постоянно встречается в областях научных вычислений, машинного обучения, глубокого обучения, а также является основой многих задач высокопроизводительных вычислений.
Однако оптимизация производительности GEMM является критически важной, поскольку его вычислительная сложность обычно довольно велика.
И DeepSeek на этот раз открыл исходный код DeepGEMM, который все еще сохраняет особенности "высокая производительность + низкая стоимость", основные особенности следующие:
Другими словами, DeepGEMM в основном используется для ускорения матричных операций в глубоком обучении, особенно в крупномасштабном обучении и выводе моделей. Он особенно подходит для сценариев, требующих эффективных вычислительных ресурсов, и способен значительно повысить эффективность вычислений.
Многие интернет-пользователи относятся к этому открытию довольно одобрительно. Некоторые называют DeepGEMM математическим супергероем, считая, что он даже быстрее, чем молниеносный калькулятор, и мощнее, чем полиномиальное уравнение.
!
Также есть люди, которые сравнивают выпуск DeepGEMM с тем, что квантовое состояние стабилизировалось в новую реальность, и хвалят его мгновенную компиляцию как чистую и аккуратную.
!
Конечно, некоторые начали беспокоиться о своих акциях Nvidia...
!
Глубокое погружение в DeepGEMM
DeepGEMM — это библиотека, созданная специально для простого и эффективного FP8 Universal Matrix Multiplication (GEMMs) с мелкозернистым масштабированием, которое является производным от DeepSeek V3.
Он может обрабатывать как обычное общее умножение матриц, так и поддерживать умножение общих матриц групп MoE.
Эта библиотека написана на CUDA, и для установки не требуется компиляция, поскольку она компилирует все ядерные программы во время выполнения через легковесный модуль мгновенной компиляции (JIT).
В настоящее время DeepGEMM поддерживает только тензорные ядра Hopper от Nvidia.
Чтобы решить проблему, связанную с тем, что тензорное ядро FP8 недостаточно точно для вычисления накопления, оно использует двухступенчатый метод накопления (бустинга) ядра CUDA.
Хотя DeepGEMM вдохновлен некоторыми идеями из CUTLASS и CuTe, он не излишне полагается на их шаблоны или алгебраические операции.
Наоборот, этот репозиторий разработан очень лаконично, с одной только основной ядреной функцией, примерно 300 строк кода.
Это делает его кратким и простым для понимания ресурсом для изучения методов умножения и оптимизации матриц FP8 в архитектуре Hopper.
Несмотря на свою компактность, производительность DeepGEMM может соответствовать или превосходить экспертные библиотеки тюнинга для различных форм матриц.
Какова конкретная производительность?
Команда протестировала все формы, которые могут использоваться в выводе DeepSeek-V3/R1 на H800 с помощью NVCC 12.8 (включая предварительное заполнение и декодирование, но без параллельных тензоров).
На следующей диаграмме показана производительность обычного DeepGEMM для плотной модели:
!
По результатам тестирования производительность вычислений DeepGEMM** может достигать 1358 TFLOPS, а память - до 2668 ГБ/с.
В части коэффициента ускорения он может достигать вплоть до 2,7 раза по сравнению с оптимизированной реализацией на основе CUTLASS 3.6.
Давайте теперь посмотрим на производительность DeepGEMM с поддержкой модели MoE в продолжительном макете (contiguous layout):
!
И производительность поддерживает модель MoE ** маскировочного макета ** такая:
!
Как использовать?
Для использования DeepGEMM необходимо учитывать несколько зависимостей, в том числе:
Код разработки выглядит следующим образом:
Установочный код приведен ниже:
После описанных выше шагов вы можете импортировать deep_gemm в свой проект Python.
Что касается интерфейсов, то для обычного DeepGEMM может быть вызвана функция deep_gemm.gemm_fp8_fp8_bf16_nt, а также поддерживается формат NT (нетранспонированный LHS и транспонированный RHS).
Для сгруппированных DeepGEMM m_grouped_gemm_fp8_fp8_bf16_nt_contiguous в случае непрерывной компоновки. В случае компоновки маски это m_grouped_gemm_fp8_fp8_bf16_nt_masked.
DeepGEMM также предоставляет инструментальные функции для установки максимального количества SM, получения выравнивания TMA и поддерживает переменные среды, такие как DG_NVCC_COMPILER, DG_JIT_DEBUG и т. д.
Кроме того, команда DeepSeek также предоставляет несколько оптимизированных способов, включая:
JIT-проектирование: Все ядра компилируются во время выполнения, нет необходимости компилировать во время установки; Поддерживает динамический выбор оптимального размера блока и стадии трубопровода.
!
Заинтересованные партнеры могут нажать на ссылку GitHub в конце статьи, чтобы просмотреть подробности~
И ещё кое-что
Акции Nvidia ...... в эти дни Колодец...... Продолжайте падать снова:
!
Тем не менее, рано утром 27-го числа по пекинскому времени также будет опубликован отчет Nvidia о производительности за четвертый квартал 2025 финансового года, и мы можем с нетерпением ждать его производительности~