Установка Triton, Flash-attention, bitsandbytes для AMD ROCm 7 Windows | AiManual
AiManual Logo Ai / Manual.
08 Фев 2026 Гайд

Triton, Flash-attention и bitsandbytes на Windows с ROCm 7: как собрать то, что AMD не хочет поддерживать

Полное руководство по сборке Triton, Flash-attention 2 и bitsandbytes для AMD ROCm 7 в Windows. Команды Chocolatey, форки репозиториев, тесты с ComfyUI.

Вы купили RX 7900 XTX или новую Radeon AI Pro R9700, поставили ROCm 7, запустили Stable Diffusion в ComfyUI... и уперлись в стену. Все крутые оптимизации - Triton для ядерных операций, Flash-attention для ускорения внимания в LLM, bitsandbytes для квантования - работают только под Linux. Официально.

AMD говорит "нет". Сообщество говорит "заткнись и собирай сам". Вот как это сделать.

Предупреждение: Это не официальная поддержка. Вы лезете в код, меняете флаги компиляции, собираете из исходников. Сломать можно всё. Но иначе на Windows с AMD вы никогда не получите нормальной производительности в LLM.

Почему это так сложно? (И почему это всё равно стоит делать)

Три причины, по которым официального пути нет:

  • Triton изначально заточен под CUDA. ROCm поддержка - костыль, который плохо работает на Windows из-за различий в компиляторах.
  • Flash-attention 2 использует специфичные инструкции AMD CDNA (не RDNA!), которые на потребительских картах эмулируются через ROCm.
  • bitsandbytes вообще не имеет ROCm поддержки в основной ветке - нужно использовать форки, которые сами по себе нестабильны.

Но если вы читали нашу статью про разгон 6700XT под ROCm, то уже знаете: сообщество давно обходит официальные ограничения. С gfx1100 архитектурой (RX 7900 серия, Radeon AI Pro) ситуация стала лучше - но только на Linux.

На Windows вам придется повторить весь путь коммиттеров GitHub, которые месяцами пилят патчи.

💡
Перед началом: убедитесь, что у вас установлен ROCm 7.0.1 или новее. Проверьте командой hipconfig --version. Если нет - качайте с официального сайта AMD. И да, только Windows 11 22H2 или новее. На Windows 10 не заработает.

Шаг 0: Подготовка поля боя

Сначала ставим весь необходимый тулкит через Chocolatey. Не используйте установщики с сайтов - только так гарантируется совместимость версий.

# Открываем PowerShell от имени администратора
# Устанавливаем Chocolatey, если еще нет
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# Ставим всё необходимое
choco install -y python --version=3.10.11  # Важно: именно 3.10.11
choco install -y git
choco install -y visualstudio2022buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64"
choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'
choco install -y ninja

Почему Python 3.10.11, а не 3.11 или 3.12? Потому что ROCm toolchain на Windows до сих пор завязан на конкретные версии библиотек, которые ломаются на новых Python. Это раздражает, но таковы реалии на начало 2026 года.

1 Сборка Triton для ROCm 7

Официальный Triton не соберется. Точка. Нужен форк с патчами под ROCm. Самый живой на февраль 2026 - triton-rocm-win от сообщества ROCm на Windows.

# Клонируем форк
git clone https://github.com/ROCm-Windows/triton-rocm-win.git
cd triton-rocm-win

# Переключаемся на ветку для ROCm 7
git checkout rocm7-windows-support

# Создаем виртуальное окружение
python -m venv venv_triton
venv_triton\Scripts\activate

# Ставим зависимости
pip install --upgrade pip setuptools wheel
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.0.1

# Ключевой момент: правильная установка pybind11
pip install "pybind11[global]"==2.12.0

Ошибка, которая сломает всё: Если поставить pybind11 версии 2.13 или новее, компиляция упадет с невнятными ошибками template deduction. Версия 2.12.0 - проверенная работающая.

# Компилируем Triton
# Устанавливаем переменные окружения для ROCm
$env:ROCM_PATH = "C:\Program Files\AMD\ROCm\7.0"  # Проверьте ваш путь!
$env:PATH = "$env:ROCM_PATH\bin;$env:PATH"

# Запускаем setup.py с нужными флагами
python setup.py build develop --cmake="-G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_WERROR=OFF -DROCM_PATH=$env:ROCM_PATH"

Компиляция займет 15-30 минут. Если увидите ошибки про hipErrorNoBinaryForGpu - значит, не настроены переменные окружения ROCm. Если ошибки про llvm - проверьте, что Visual Studio Build Tools установлены полностью.

2 Flash-attention 2: обманываем систему

Здесь хитрость в другом. Официальный flash-attention 2 не поддерживает Windows вообще. Но есть форк, который добавляет ROCm поддержку через хип.

# Клонируем специальный форк
cd ..
git clone https://github.com/ROCmSoftwarePlatform/flash-attention.git
cd flash-attention

# Используем конкретный коммит, который работает с ROCm 7
git checkout 78f6f5c  # Это хэш коммита на февраль 2026

# Создаем новое виртуальное окружение
python -m venv venv_flash
venv_flash\Scripts\activate

# Ставим PyTorch с ROCm поддержкой
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.0.1

# Ключевой момент: нужно поставить ninja ДО сборки
pip install ninja

# Собираем flash-attention
# Флаг -DCMAKE_CUDA_COMPILER=/dev/null обманывает CMake, заставляя его использовать hipcc
python setup.py install --cmake="-G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_COMPILER=/dev/null"

Флаг -DCMAKE_CUDA_COMPILER=/dev/null выглядит как костыль (потому что это и есть костыль). Он говорит системе: "Да, CUDA компилятор есть, но он вот тут лежит". На Windows путь /dev/null преобразуется в nul, что заставляет CMake переключиться на hipcc.

💡
Если у вас карта архитектуры gfx1100 (RX 7900 XTX, XT, Radeon AI Pro R9700), добавьте в переменные окружения: $env:HIP_ARCH = "gfx1100". Иначе компилятор может сгенерировать код для gfx1030, который будет работать медленнее.

3 bitsandbytes: самый проблемный ребенок

bitsandbytes - это отдельный уровень боли. Официальный репозиторий даже не упоминает ROCm. Но без него квантование LLM моделей будет работать в 5-10 раз медленнее.

Единственный работающий вариант на февраль 2026 - форк TimDettmers с патчами под ROCm, плюс наши правки для Windows.

cd ..
git clone https://github.com/TimDettmers/bitsandbytes.git
cd bitsandbytes

# Переключаемся на ROCm ветку
git checkout rocm_support

# Применяем патч для Windows
# Создаем файл win_rocm.patch со следующим содержанием:
"""
diff --git a/setup.py b/setup.py
index 1a2b3c4..5d6e7f8 100644
--- a/setup.py
+++ b/setup.py
@@ -15,6 +15,9 @@ def get_cuda_bare_metal_version(cuda_dir):
     else:
         cuda_dir = '/usr/local/cuda'
 
+    if os.name == 'nt':  # Windows
+        return '11.8'  # Обманываем систему
+
     raw_output = subprocess.check_output([cuda_dir + "/bin/nvcc", "-V"], universal_newlines=True)
     output = raw_output.split()
     release_idx = output.index("release") + 1
""" | Out-File -FilePath win_rocm.patch -Encoding UTF8

git apply win_rocm.patch

Патч обманывает setup.py, заставляя его думать, что у нас CUDA 11.8. На самом деле мы будем компилировать под ROCm, но без этого обмана система откажется собирать проект.

# Создаем окружение
python -m venv venv_bnb
venv_bnb\Scripts\activate

# Ставим зависимости
pip install torch --index-url https://download.pytorch.org/whl/rocm7.0.1
pip install scipy
pip install packaging

# Компилируем с флагами для ROCm
$env:BNB_ROCM_BUILD = "1"
$env:ROCM_HOME = "C:\Program Files\AMD\ROCm\7.0"

python setup.py build_ext --inplace --cmake="-G Ninja -DCMAKE_BUILD_TYPE=Release -DBNB_ROCM_BUILD=ON"

# Устанавливаем
pip install .

Если сборка падает с ошибкой hipErrorNoBinaryForGpu, нужно явно указать архитектуру:

$env:HIP_ARCH = "gfx1100"  # для RX 7900/Radeon AI Pro
$env:HIP_ARCH = "gfx1030"  # для RX 6800/6900/6700

Тестирование: работает ли всё это вообще?

Создайте тестовый скрипт:

import torch
import triton
import flash_attn
import bitsandbytes as bnb

print(f"PyTorch версия: {torch.__version__}")
print(f"PyTorch ROCm доступен: {torch.cuda.is_available()}")
print(f"PyTorch устройство: {torch.cuda.get_device_name(0)}")

# Тест Triton
try:
    from triton.testing import do_bench
    print("Triton загружен успешно")
except Exception as e:
    print(f"Triton ошибка: {e}")

# Тест Flash-attention
try:
    import flash_attn.functional as F
    print("Flash-attention загружен")
except Exception as e:
    print(f"Flash-attention ошибка: {e}")

# Тест bitsandbytes
try:
    linear = bnb.nn.Linear8bitLt(1024, 512, bias=False)
    print("bitsandbytes 8-bit линейный слой создан")
except Exception as e:
    print(f"bitsandbytes ошибка: {e}")

Запустите его в каждом виртуальном окружении (или создайте одно общее, куда установите все три пакета). Если видите ошибки импорта - значит, что-то собралось неправильно.

Интеграция с ComfyUI и текстовыми LLM

Теперь самое интересное - заставить это всё работать в реальных приложениях.

Для ComfyUI:

# Активируем окружение ComfyUI
cd ComfyUI_windows_portable
python_embeded\python.exe -m venv venv_comfy
venv_comfy\Scripts\activate

# Устанавливаем наши собранные пакеты
pip install path\to\triton-rocm-win  # Используйте -e для разработки
pip install path\to\flash-attention
pip install path\to\bitsandbytes

# Теперь устанавливаем остальные зависимости ComfyUI
pip install -r requirements.txt

В настройках ComfyUI выберите бэкенд ROCm. Если всё собрано правильно, скорость генерации в Stable Diffusion 3 или SDXL должна вырасти на 15-40% по сравнению со стандартным PyTorch ROCm бэкендом.

Для текстовых LLM (Ollama, llama.cpp с GPU):

Если вы используете Ollama с ROCm бэкендом, bitsandbytes ускорит загрузку квантованных моделей. Flash-attention заработает автоматически в моделях, которые его поддерживают (как большинство современных LLM на февраль 2026).

Важный нюанс: Не пытайтесь использовать все три пакета одновременно в одном скрипте, если они собраны в разных окружениях. Соберите единое окружение, куда установите PyTorch с ROCm поддержкой, а затем все три пакета. Иначе получите конфликты версий библиотек.

Что делать, если ничего не работает?

Типичные проблемы и их решения:

Ошибка Причина Решение
hipErrorNoBinaryForGpu Компилятор не знает архитектуру вашей карты Установите $env:HIP_ARCH в правильное значение
CMake Error: Could not find CUDA Скрипты ищут CUDA, а не ROCm Используйте флаг -DCMAKE_CUDA_COMPILER=/dev/null
Импорт падает с segfault Несовместимость версий PyTorch Убедитесь, что везде одна версия PyTorch с ROCm
Сборка занимает 2+ часа Ninja не используется или нет параллельной сборки Добавьте -G Ninja и --parallel 8

Стоит ли оно того?

Честно? Для разового запуска Stable Diffusion - нет. Вы потратите день на настройку, чтобы получить 20% прирост, который заметите только на бенчмарках.

Но если вы, как и автор статьи про две Radeon AI Pro R9700, строите систему для локальных LLM, которые работают часами - тогда да. Flash-attention ускоряет инференс в 1.5-3 раза. Bitsandbytes позволяет загружать 70B модели на 24 ГБ VRAM. Triton оптимизирует custom kernels.

Это разница между "модель работает" и "модель работает прилично".

AMD не хочет делать официальную поддержку Windows для этих библиотек. Сообщество делает это за них. Ваша задача - собрать пазл из форков, патчей и костылей. Но когда всё заработает - вы получите на Windows с AMD почти такую же производительность, как на Linux.

Почему "почти"? Потому что драйверы ROCm на Windows всё еще на 10-15% медленнее. Но это уже тема для другой статьи.

💡
Совет напоследок: Создайте полный бэкап системы перед началом. Или используйте Windows Sandbox для тестов. Половина проблем решается чисткой реестра и переустановкой ROCm, но проще откатиться к сохраненному состоянию.