В конце января 2026 вышел triton-windows 3.6.0.post25, который позволяет использовать flash-attention, sage-attention (v1) и другие библиотеки, использующие TriВ конце января 2026 вышел triton-windows 3.6.0.post25, который позволяет использовать flash-attention, sage-attention (v1) и другие библиотеки, использующие Tri

Triton, Flash-attension, Sage-attension и bitsandbytes с Rocm7 в Windows

2026/02/06 23:57
7м. чтение

В конце января 2026 вышел triton-windows 3.6.0.post25, который позволяет использовать flash-attention, sage-attention (v1) и другие библиотеки, использующие Triton, на картах AMD с поддержкой rocWMMA (то есть начиная с архитектуры gfx1100: RX 7900 XT/XTX и новее) в Windows.

Также, несмотря на то что в официальном репозитории bitsandbytes еще не приняли PR для поддержки ROCm 7, его все же можно собрать, внеся небольшие изменения в код. Эти изменения я уже сделал в своем форке.

В этой статье я расскажу, как установить все это себе, а также для примера запустим пару тестов в ComfyUI, в том числе со свежей LTX-2, и сделаем Qlora адаптер для модели Gemma 3 с использованием bitsandbytes.

Все скрипты используемые в статье можно найти в моем репозитории.

Установка компонентов

Средства сборки

Для сборки bitsandbytes и flash-attention2 нам понадобится установить некоторые средства разработки. Я использую Chocolatey.

choco install visualstudio2022buildtools -y --params "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.ATL" choco install git.install -y --params "'/GitAndUnixToolsOnPath'" choco install cmake --version=3.31.0 -y choco install ninja -y choco install ccache -y choco install python --version=3.12.0 -y

Примечание: Возможно, подойдет и другая версия Python, но я проверял на 3.12. Так же в моих репозитория пока собраны версии пакетов только для Python 3.12.

Дополнительно у меня установлена Visual Studio 2022 Community со следующим набором компонентов:

  • Workload: Desktop development with C++

  • Components: C++ CMake Tools for Windows, Git for Windows, C++ Clang Compiler for Windows, MSBuild Support for LLVM Toolset (clang)

Но я не уверен, что это необходимо.

ВАЖНО: Все дальнейшие действия выполняем в Developer PowerShell for VS 2022 или с активированными переменными окружения, выполнив в PowerShell:

cmd /c '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" >nul 2>&1 && set' | ForEach-Object { if ($_ -match '^([^=]+)=(.*)$') { [System.Environment]::SetEnvironmentVariable($matches[1], $matches[2], 'Process') } }

Создание виртуального окружения (venv)

Все действия будем производить внутри виртуального окружения. Создаем и активируем его:

python -m venv .venv .\.venv\Scripts\activate

Установка ROCm 7 и PyTorch

Первым делом установим ROCm 7. Если у вас одна видеокарта, просто устанавливаем последние пакеты этой командой:

pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ --pre torch torchaudio torchvision rocm[devel] --no-cache

Если во время установки возникают ошибки, связанные с невозможностью загрузить правильную версию torch, скачайте нужные .whl пакеты вручную и установите их командой вида:

pip install "C:\Path\To\rocm_sdk_core-7.12.xxxxxx-py3-none-win_amd64.whl" "C:\Path\To\torch-2.11.0a0+rocm7.12.xxxx-cp312-cp312-win_amd64.whl" ...

Примечание: Если у вас iGPU и dGPU от AMD и вы хотите, чтобы PyTorch работал на обеих карточках, вам необходимо собрать свою сборку ROCm. О том, как это сделать, я писал в прошлой статье.

Для дальнейших действий установим переменные окружения, необходимые для активации Triton под AMD. Сохраните код ниже в файл set_env.ps1 и выполните его (.\set_env.ps1).

set_env.ps1

# set_env.ps1 $ROCM_ROOT = (rocm-sdk path --root).Trim() $ROCM_BIN = (rocm-sdk path --bin).Trim() $env:ROCM_HOME = $ROCM_ROOT $env:PATH = "$ROCM_ROOT\lib\llvm\bin;$ROCM_BIN;$env:PATH" $env:CC = "clang-cl" $env:CXX = "clang-cl" $env:DISTUTILS_USE_SDK = "1" $env:TRITON_PRINT_AUTOTUNING=1 $env:TRITON_CACHE_AUTOTUNING=1 $env:TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1

Установка Triton

Устанавливаем нужную версию Triton:

pip install triton-windows==3.6.0.post25

Примечание: Wheel-файлы Triton можно также скачать вручную со ссылке на GitHub Actions.

Проверка установки Triton:
Создайте файл test_triton.py со следующим содержимым:

test_triton.py

import torch import triton print(torch.zeros(3).cuda()) print("If you see tensor([0., 0., 0.], device='cuda:0'), then it works")

Запустите его:

python .\test_triton.py # Вы должны увидеть это: # tensor([0., 0., 0.], device='cuda:0') # If you see tensor([0., 0., 0.], device='cuda:0'), then it works

Установка Flash-Attention

Клонируем репозиторий и собираем проект. Убедитесь, что выполнили set_env.ps1.

git clone https://github.com/Dao-AILab/flash-attention cd flash-attention python setup.py bdist_wheel pip install .\dist\flash_attn-2.8.3-py3-none-any.whl

Важно: Если во время сборки начинают скачиваться composable_kernels, значит, вы забыли выполнить set_env.ps1.

Установка Sage-Attention

Для работы с ROCm нужна немного измененная версия 1.0.6 из репозитория ComfyUI-Zluda. Для удобства я вынес ее в отдельный репозиторий.

Установка из готового пакета:

pip install https://github.com/guinmoon/SageAttention-Rocm7/releases/download/v1.0.6_rocm7/sageattention-1.0.6-py3-none-any.whlИли сборка вручную из оригинального репозитория + патчи ComfyUI-Zluda

git clone https://github.com/thu-ml/SageAttention -b sageattention-1 # Скачиваем необходимые патчи curl -o .\sageattention\attn_qk_int8_per_block.py https://raw.githubusercontent.com/patientx/ComfyUI-Zluda/refs/heads/master/comfy/customzluda/sa/attn\\_qk\\_int8\\_per\\_block.py curl -o .\sageattention\attn_qk_int8_per_block_causal.py https://raw.githubusercontent.com/patientx/ComfyUI-Zluda/refs/heads/master/comfy/customzluda/sa/attn\\_qk\\_int8\\_per\\_block\\_causal.py curl -o .\sageattention\quant_per_block.py https://raw.githubusercontent.com/patientx/ComfyUI-Zluda/refs/heads/master/comfy/customzluda/sa/quant\\_per\\_block.py # Сборка и установка python setup.py bdist_wheel pip install .\dist\sageattention-1.0.6-py3-none-any.whl

Установка bitsandbytes

Способ 1: Из готового пакета:

pip install https://github.com/guinmoon/bitsandbytes_win_rocm/releases/download/v0.49.2_romc7.12/bitsandbytes-0.49.2.dev0-cp312-cp312-win\\_amd64.whl

Способ 2: Сборка из исходников

Клонируем форк и собираем проект

# Убедитесь, что set_env.ps1 выполнен! git clone https://github.com/guinmoon/bitsandbytes_win_rocm cd bitsandbytes_win_rocm cmake -G Ninja -DCOMPUTE_BACKEND=hip -S . -B bitsandbytes -DCMAKE_BUILD_TYPE="Release" -DBNB_ROCM_ARCH="gfx1100;gfx1102;gfx1103" -DHIP_PLATFORM="amd" -DCMAKE_CXX_COMPILER="$env:ROCM_PATH/lib/llvm/bin/clang++.exe" -DCMAKE_PREFIX_PATH="$env:ROCM_PATH" -DCMAKE_HIP_COMPILER="$env:ROCM_PATH/lib/llvm/bin/clang++.exe" -DCMAKE_SHARED_LINKER_FLAGS="-L$env:ROCM_PATH/lib -lamdhip64 -lrocblas" cmake --build bitsandbytes -j python setup.py bdist_wheel pip install .\dist\bitsandbytes-0.49.2.dev0-cp312-cp312-win_amd64.whl

После команды cmake --build должно появиться сообщение Linking CXX shared library libbitsandbytes_rocm72.dll.

Внимание: Если у вас не RX 7900 XT/XTX, замените gfx1100 на свою архитектуру (например, gfx1030 для RX 6700 XT).

Проверка установки bitsandbytes:
Создайте файл test_bnb.py

test_bnb.py

import bitsandbytes as bnb print(f"BNB: {bnb.envs.hip_get_device_properties(0)['gcnArchName']}") print(f"warpSize: {bnb.envs.hip_get_device_properties(0)['warpSize']}") print("SUCCESS!") print("Installation was successful!")

Запустите его:

python .\test_bnb.py # BNB: gfx1100 # warpSize: 32 # SUCCESS! # Installation was successful!

Установка ComfyUI

Теперь установим ComfyUI для тестирования:

git clone https://github.com/Comfy-Org/ComfyUI cd ComfyUI pip install -r .\requirements.txt

Запускаем и смотрим результаты

Я запущу ComfyUI с минимальным набором параметров. Мой скрипт запуска (run_comfy.ps1) выглядит так:

run_comfy.ps1

.\set_env.ps1 # Активируем переменные окружения $env:HIP_VISIBLE_DEVICES = "1" # Только если у вас iGPU от AMD. Или используйте --cuda-device 1 $env:FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" $env:FLASH_ATTENTION_TRITON_AMD_AUTOTUNE="FALSE" $env:TORCH_BLAS_PREFER_CUBLASLT=0 $env:COMFYUI_ENABLE_MIOPEN=0 # Запускаем ComfyUI python .\main.py --normalvram --use-pytorch-cross-attention # или --use-flash-attention # или --use-sage-attention

Тест 1: Flux1.Dev fp8, 1920x1080

16635c57d91d4622a39bc4ed3eada8f1.png

Workflow
Стоит оговориться: я использую модель в fp8, однако карты RDNA 3 не поддерживают операции rocWMMA с fp8, и модель транслируется в BF16.

Результаты 3 генераций:

  • Pytorch-Cross-Attention (SDPA):

    1 генерация: 116.05 seconds, 2 генерация: 87.76 seconds, 3 генерация: 88.27 seconds

  • Flash-Attention (--use-flash-attention):

    1 генерация: 103.02 seconds, 2 генерация: 102.17 seconds, 3 генерация: 101.22 seconds

  • Sage-Attention (--use-sage-attention):

    1 генерация: 89.82 seconds, 2 генерация: 73.97 seconds, 3 генерация: 74.43 seconds

Вывод: Flash-Attention незначительно выигрывает у SDPA, однако Sage-Attention дает ощутимый прирост производительности на последующих прогонах.

Тест 2: LTX-2

0bb1622c85681938b249bd0d914bf8e3.png

Workflow
Примечание: Файл taeltx_2.safetensors необходимо положить в директорию vae_approx.

Результаты для разрешения 960х720 (один прогон):

  • Pytorch-Cross-Attention (SDPA): 277.47 seconds

  • Flash-Attention: 286.93 seconds

  • Sage-Attention: 231.45 seconds

Вывод: В этом тесте Sage-Attention так же показал себя лучше всех.

Finetune Gemma 3: QLoRA с bitsandbytes (NF4)

Устанавливаем дополнительные зависимости для тренировки:

pip install jq transformers==4.57.5 peft==0.18.1 accelerate safetensors sentencepiece huggingface-hub trl==0.26.2 einops tqdm==4.67.1 traitlets==5.14.3

Запускаем дообучение Gemma 3 4B с квантованием скриптом Qlora.py. В скрипте можно менять реализацию attention:

С flash_attention_2

model = AutoModelForCausalLM.from_pretrained( MODEL, quantization_config=bnb_config, device_map="auto", attn_implementation="flash_attention_2" )

Peak training memory qlora: 13.34 GB --- 00:32:37 elapsed ---

С sdpa

model = AutoModelForCausalLM.from_pretrained( MODEL, quantization_config=bnb_config, device_map="auto", attn_implementation="sdpa" )

Peak training memory qlora: 13.34 GB --- 00:15:32 elapsed ---

Наблюдение: По моим замерам, sdpa в этом скрипте отрабатывает намного быстрее, чем flash_attention_2.

Для инференса дообученной модели с LoRA-адаптером запустите:

python inference_q.py

Заключение

  1. Заработало: Теперь на Windows с картами AMD можно использовать снова использовать Triton только теперь без Zluda.

  2. Sage-Attention — лидер: В тестах генерации изображений Sage-Attention стабильно показывает лучшую производительность по сравнению с SDPA и Flash-Attention.

  3. Не всегда лучше: Как показал тест с QLoRA, Flash-Attention 2 не всегда является серебряной пулей, и в некоторых задачах стоится проверять разные бэкенды.

  4. Экосистема растет, но: По прежнему остается множество программных продуктов которые нельзя завести под Windows с ROCm, например onnxruntime или nunchaku, однако сейчас дела с ROCm явно обстоят лучше чем пару лет назад.

Главные проблемы пока заключаются в необходимости ручной сборки многих компонентов и отсутствии официальной поддержки со стороны AMD и многих разработчиков библиотек.

Все скрипты используемые в статье можно найти в моем репозитории.

P.S. Я так понимаю, что с RX 7900 XT, в том же ценовом сегменте на б/у рынке, находится RTX 4070 super, однако у нее чуть меньше памяти. Если кто из читателей является счастливым владельцем оной, напишите пожалуйста в комментариях сильно ли проигрывает по скорости генерации и прочим параметрам карта от красных.

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу [email protected] для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Паническая распродажа XRP обернулась против продавцов: киты скупили падение в рекордных объемах

Паническая распродажа XRP обернулась против продавцов: киты скупили падение в рекордных объемах

Последние несколько дней стали одними из самых тяжелых для крипторынка за последние месяцы. Bitcoin, Ethereum и XRP пережили жестокие просадки, при этом основные активы
Поделиться
Captainaltcoin2026/02/07 05:45
Ripple намечает институциональное DeFi-будущее для XRP Ledger

Ripple намечает институциональное DeFi-будущее для XRP Ledger

Ripple и участники разработки XRP Ledger представили подробную дорожную карту, направленную на позиционирование сети как совместимой основы для институциональной децентрализованной
Поделиться
Ethnews2026/02/07 04:57
Сможет ли XRP повторить свой рост на 300% и достичь 5 $? Аналитики высказываются

Сможет ли XRP повторить свой рост на 300% и достичь 5 $? Аналитики высказываются

Пост «Сможет ли XRP Повторять свой рост на 300% и достичь 5 долларов? Аналитики высказываются» появился на BitcoinEthereumNews.com. Одним из самых заметных результатов бычьего рынка стал рост цены XRP на 300% в этом году. Инвесторы задаются вопросом, сможет ли XRP достичь 5 долларов в 2025 году, учитывая темпы, обусловленные улучшениями экосистемы, институциональным интересом и правовой ясностью. Многие аналитики придерживаются этой точки зрения, указывая на значительные стимулы спроса, такие как предстоящее одобрение ETF на XRP и введение опционов XRP на CME. Помимо предположений, фундаментальные показатели XRPL сейчас прочнее, чем когда-либо. Всего за несколько месяцев Общая заблокированная стоимость (TVL) сети выросла с 20 миллионов долларов до более 100 миллионов долларов, а кроссчейн DeFi приложения становятся более доступными благодаря совместимости с EVM. XRPL превращается в центр ликвидности и интеллектуальных финансовых решений в результате этого всплеска инноваций. Как нативная DEX, которая давно требовалась XRPL, DeXRP становится все более популярной. DeXRP готовится к запуску в качестве центрального элемента новой DeFi экономики XRPL, уже собрав более 6,6 миллионов долларов в ходе предпродажи и привлекая более 9 500 инвесторов. Что такое DeXRP? Как первая децентрализованная биржа (DEX) на базе XRPL, DeXRP выходит на передний план, поскольку XRP продолжает укреплять свои позиции на мировом рынке. Сочетание амбиций DeXRP по созданию передовой торговой платформы и устоявшейся инфраструктуры XRPL, известной своими быстрыми транзакциями, низкими комиссиями и готовностью к институциональному использованию, вызвало огромные ожидания. В отличие от многих спекулятивных предпродаж, развитие DeXRP демонстрирует как институциональный интерес, так и импульс, движимый сообществом. Его раннее достижение отметки в 6,4 миллиона долларов показывает, как быстро инвесторы осознают его потенциал. Успех предпродажи DeXRP Более 9 300 отдельных кошельков уже присоединились к предпродаже DeXRP, что указывает на высокий уровень интереса со всего мира. Объем и разнообразие участия подчеркивают ключевой аспект:...
Поделиться
BitcoinEthereumNews2025/09/19 20:01