Личный учебный и инженерный блокнот с CUDA-ядрами, написанными вручную, примерами CUTLASS/CuTe и Triton, а также заметками об оптимизации LLM.
OpenBMB/ForgeKernel
Агент для саморазвития GPU-ядер, оптимизирующий ядра CUDA и CuTe DSL: каждое принятое ядро становится новым эталоном.
- Звёзды
- 282
- Форки
- 39
- Открытые issues
- 1
- Последний коммит
- 3 дня назад
Что это?
ForgeKernel берет за основу существующее эталонное GPU-ядро, измеряет время выполнения и собирает профиль на целевом оборудовании, а затем составляет план этапов с учетом архитектуры, который реализует coding agent. Каждое принятое ядро становится эталоном для следующего поколения, поэтому оптимизация продолжается и после достижения лучшей известной реализации. Механизмы работы оборудования, подтвержденные GPU-пробой, сохраняются в базе знаний, организованной по архитектурам GPU, и повторно используются для разных операторов.
Инструмент предназначен для GPU NVIDIA Hopper (sm90) и Blackwell (sm100) и поддерживает задачи на CuTe DSL и CUDA C++. Задача задается описанием оператора, набором форм и файлом task.toml, а CLI forge запускает цикл локально или по SSH. По итогам запусков формируются отчет и исходный код лучшего ядра, а скрипт саморазвития последовательно запускает новые поколения, пока прирост не опустится ниже уровня шума измерений.
В репозитории также опубликованы созданные проектом ядра для attention, sparse attention, linear attention, GEMM и операций свертки, а также сведения об ускорении и средах, в которых оно измерялось.
Ключевые возможности
- 01Преобразует эталонное ядро в план этапов с учетом архитектуры для coding agent.
- 02Делает каждое принятое ядро новым эталоном и автоматически запускает следующие поколения.
- 03Проверяет корректность, сравнивает время выполнения кандидатов с эталоном и профилирует их с помощью Nsight Compute.
- 04Сохраняет подтвержденные GPU-пробой механизмы работы оборудования в базе знаний, разделенной по архитектурам.
- 05Поддерживает выполнение задач на CuTe DSL и CUDA C++ с GPU локально и по SSH.
Сценарии использования
- Оптимизация оператора PyTorch или пользовательского ядра на GPU Hopper или Blackwell.
- Запуск длительных кампаний настройки ядер без участия пользователя и изучение сформированного отчета.
- Изучение опубликованных вместе с проектом ядер для attention, GEMM и операций свертки.
Быстрый старт
- 1
Клонируйте репозиторий
- 2
Создайте виртуальное окружение и установите ForgeKernel
python3 -m venv .venv && source .venv/bin/activate && pip install -e . - 3
Установите рекомендуемый пакет CuTe DSL
pip install nvidia-cutlass-dsl - 4
Проверьте установленную версию
forge --version
Что важно знать
- Требуется GPU NVIDIA Hopper (sm90) или Blackwell (sm100).
- Нужна CLI Claude Code с выполненным входом или переменная ANTHROPIC_API_KEY.
- Один запуск занимает несколько часов; в примере на B200 результат достиг 5,2x примерно через 1,5 часа.
- Проект находится на ранней стадии: всего 8 звёзд и версия 0.1.0.
В подборках
Темы
Частые вопросы
- Что такое ForgeKernel?
- Агент для саморазвития GPU-ядер, оптимизирующий ядра CUDA и CuTe DSL: каждое принятое ядро становится новым эталоном. ForgeKernel берет за основу существующее эталонное GPU-ядро, измеряет время выполнения и собирает профиль на целевом оборудовании, а затем составляет план этапов с учетом архитектуры, который реализует coding agent. Каждое принятое ядро становится эталоном для следующего поколения, поэтому оптимизация продолжается и после достижения лучшей известной реализации. Механизмы работы оборудования, подтвержденные GPU-пробой, сохраняются в базе знаний, организованной по архитектурам GPU, и повторно используются для разных операторов.
- ForgeKernel можно использовать бесплатно? Какая у него лицензия?
- ForgeKernel распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- ForgeKernel всё ещё поддерживается?
- Активно поддерживается. Последний коммит в ForgeKernel — 4 нояб. 2026 г..
- Для чего можно использовать ForgeKernel?
- Оптимизация оператора PyTorch или пользовательского ядра на GPU Hopper или Blackwell. Запуск длительных кампаний настройки ядер без участия пользователя и изучение сформированного отчета. Изучение опубликованных вместе с проектом ядер для attention, GEMM и операций свертки.
- Как установить ForgeKernel?
- Клонируйте репозиторий Создайте виртуальное окружение и установите ForgeKernel: python3 -m venv .venv && source .venv/bin/activate && pip install -e . Установите рекомендуемый пакет CuTe DSL: pip install nvidia-cutlass-dsl Проверьте установленную версию: forge --version
- Где скачать ForgeKernel?
- Исходный код и инструкции по установке — на GitHub: https://github.com/OpenBMB/ForgeKernel
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Автономный агентный конвейер профилирует модель PyTorch и оптимизирует узкие места в GPU-ядрах на Triton или CUDA C++.
NCCL — библиотека NVIDIA с оптимизированными примитивами обмена данными между GPU, такими как all-reduce и all-gather, для обучения на одном или нескольких узлах.
Header-only библиотека на C++20 для тензорных выражений в стиле NumPy, работающих на GPU NVIDIA или многопоточных CPU, с поддержкой слияния ядер.
Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention.
UCC — библиотека и API для коллективных коммуникаций: она выполняет операции вроде allreduce и broadcast на CPU, GPU и аппаратных ускорителях в задачах HPC и AI.