← На главную

Вышел cuTile Rust: 92% пика GEMM на B200 и 171 токен/с на RTX 5090

16.06.2026 20:17 · hackernews

Разработчики представили cuTile Rust (или cutile-rs) — tile-систему для написания GPU-ядер на идиоматическом Rust. Код получается memory-safe и свободным от гонок данных. Механика простая: изменяемые тензоры перед запуском делятся на непересекающиеся куски, неизменяемые — остаются общими, а сгенерированные обёртки следят за владением, пока GPU занят. Модель поддерживает синхронный и асинхронный запуск, а также воспроизведение графов CUDA.

Макрос #[cutile::module] встраивает захваченный AST для каждого ядра прямо в хост-бинар. Когда ядро требуется, cuTile Rust JIT-компилирует этот AST через промежуточное представление CUDA Tile IR в готовый GPU cubin. Если нужен низкоуровневый контроль, можно локально отключить проверки.

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

Производительность на NVIDIA B200 впечатляет: 7 TB/s для поэлементных операций и 2 PFlop/s для GEMM — это около 91% пиковой пропускной способности памяти и 92% пика плотного f16 соответственно. Результат GEMM конкурирует с cuBLAS. Микробенчмарки показывают, что безопасность не добавляет измеримых накладных расходов: безопасный persistent GEMM на Rust достигает 2.07 PFlop/s при M=N=K=8192 — это 92% пика B200 для f16, всего на 0.3% медленнее низкоуровневого варианта на Tile IR.

В статье также оценивают Grout — движок инференса Qwen3, построенный на cuTile Rust совместно с Hugging Face. В режиме декодирования batch-1 Qwen3-4B на NVIDIA GeForce RTX 5090 Grout выдаёт 171 токен/с, а Qwen3-32B на B200 — 82 токен/с. Это конкурентный уровень для задач, ограниченных пропускной способностью памяти, как показал HBM roofline-анализ.

Системные требования: NVIDIA GPU с вычислительной способностью sm_80 или выше (поддержка sm_100+ появилась с CUDA 13.1, sm_8x — с CUDA 13.2, sm_90 — с CUDA 13.3). Рекомендуется CUDA 13.3 (покрывает sm_80+ и даёт фичи вроде упаковки FP4 и block-scaled MMA). Нужен Rust 1.89+ и Linux (тестировали на Ubuntu 24.04). Лицензии: большинство крейтов под Apache 2.0, а cuda-bindings — под NVIDIA Software License.

Читать оригинал →