AssertionError: Torch not compiled with CUDA enabled — как поставить PyTorch с CUDA
Почему PyTorch не видит видеокарту NVIDIA и падает с Torch not compiled with CUDA enabled в ComfyUI, Stable Diffusion и своих скриптах: pip поставил CPU-сборку. Проверка одной командой, переустановка с нужным index-url (cu126, cu128, cu130), RTX 50, ComfyUI portable, AMD и Mac.
File "...\torch\cuda\__init__.py", line 310, in _lazy_init
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
Ошибка вылезает при запуске ComfyUI, Stable Diffusion WebUI, Whisper, обучения модели или
своего скрипта с .cuda() или device="cuda". Видеокарта и драйвер в порядке. Дело в
том, что установлен PyTorch без поддержки CUDA, то есть сборка только для процессора.
Так получается почти всегда из-за обычного pip install torch на Windows: по умолчанию
оттуда приезжает CPU-версия. CUDA-сборки для Windows лежат в отдельном индексе PyTorch.
Проверка одной командой
Запусти тем же Python, которым запускается программа:
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.version.cuda)"
| Что вывелось | Что это значит |
|---|---|
2.x.x+cpu False None | CPU-сборка, нужна переустановка |
2.x.x+cu128 False 12.8 | сборка с CUDA, но карту не видит: драйвер или отключённый GPU |
2.x.x+cu128 True 12.8 | всё работает, ошибка была в другом окружении (venv, portable-Python) |
Последний случай частый: проверка в одном Python, а программа запускается другим. Узнать, каким
именно, можно через python -c "import sys; print(sys.executable)".
Переустановка PyTorch с CUDA
Сначала удали CPU-сборку, потом поставь нужную из индекса PyTorch:
python -m pip uninstall -y torch torchvision torchaudio
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
Какой индекс брать:
| Индекс | Когда |
|---|---|
cu130 | свежий драйвер NVIDIA (ветка 580 и новее) |
cu128 | безопасный выбор для большинства; для RTX 50-й серии это минимальная подходящая версия |
cu126 | старый драйвер, который не хочется обновлять |
Точную команду под свою систему всегда можно собрать на pytorch.org в разделе Get Started: выбираешь Stable, Windows, Pip, Python и версию CUDA. CUDA Toolkit ставить не нужно, всё нужное идёт внутри колеса PyTorch. От системы требуется только драйвер видеокарты.
RTX 5060–5090. Карты Blackwell поддерживаются только сборками с CUDA 12.8 и новее. Со
старой cu121 или cu124 они дают либо эту ошибку, либо no kernel image is available for execution on the device.
Новый Python. Колёса PyTorch выходят под новую версию Python с задержкой. Если pip пишет
No matching distribution found for torch, поставь Python на одну версию старше.
ComfyUI
ComfyUI portable живёт со своим Python в папке python_embeded. Системный pip его не
трогает, поэтому переустанавливать нужно им:
cd ComfyUI_windows_portable
.\python_embeded\python.exe -m pip uninstall -y torch torchvision torchaudio
.\python_embeded\python.exe -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
Запускай через run_nvidia_gpu.bat, а не run_cpu.bat. Частая причина поломки — кастомная
нода, которая в своём requirements.txt тянет torch без индекса и при установке через
Manager заменяет CUDA-сборку на CPU. Если ошибка появилась после установки ноды, причина в ней.
ComfyUI с ручной установкой — то же самое, только командой Python из venv ComfyUI.
AMD и Mac
AMD. Ошибка про CUDA на Radeon ожидаема: CUDA — технология NVIDIA. Нужна сборка PyTorch
под ROCm и программа, которая умеет с ней работать. У ComfyUI есть отдельная portable-версия
для AMD. В своём коде проверяй устройство, а не пиши cuda жёстко.
Mac на Apple Silicon. CUDA там нет совсем. Видеоядро доступно через mps:
import torch
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
model.to(device)
Если ошибку выдаёт чужой скрипт с жёстко прописанным .cuda(), его придётся поправить в этих
местах.
Карта видна, но CUDA всё равно False
Сборка +cu128, а torch.cuda.is_available() возвращает False:
- Драйвер старше, чем нужно сборке.
nvidia-smiпоказывает максимальную поддерживаемуюCUDA Version. Она должна быть не ниже версии из индекса. - Ноутбук отключил дискретную карту ради экономии. Проверь, видна ли она в
nvidia-smi. - Переменная
CUDA_VISIBLE_DEVICESзадана пустой или-1после какой-то старой инструкции.
Отдать это агенту
Вся починка — это три-четыре команды: понять, какой Python запускает программу, какая сборка
стоит и какой индекс подходит к драйверу. Дока сделает это на твоём компьютере:
открой папку ComfyUI или проекта и напиши «падает с Torch not compiled with CUDA enabled,
почини». Агент проверит torch.__version__ и nvidia-smi, найдёт правильный Python и
переустановит сборку, показав каждую команду до запуска.
Если видеокарта нужна для языковых моделей, а не для картинок, похожий разбор есть про Ollama на процессоре вместо GPU. Что выбрать под локальные нейросети, если карту ещё только покупаешь, — в статье про видеокарту для локальных нейросетей.