WSL2: GPU/CUDA/DirectML не работает — как включить и починить в Windows 10/11 (2025)
WSL2 давно умеет отдавать линуксу доступ к видеокарте через DirectX. Но если /dev/dxg отсутствует, nvidia-smi не видит графику, а библиотеки ML ругаются — идём по списку ниже. Сделаем всё по правилам: драйвер → WSL → компоненты → тесты → частые ошибки.
Коротко: что проверить сразу
- Windows 10 21H2+/Windows 11, свежие накопительные обновления.
- Включены «Платформа виртуальной машины» и «Компоненты Hyper-V».
- Обновлены WSL и ядро:
wsl --update. - Драйвер видеокарты с поддержкой WSL (NVIDIA/AMD/Intel).
1) Включаем компоненты Windows
PowerShell (Администратор) — можно вставить целиком:
dism /online /enable-feature /featurename:VirtualMachinePlatform /all
dism /online /enable-feature /featurename:Microsoft-Hyper-V /all
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
bcdedit /set hypervisorlaunchtype auto
Перезагрузите компьютер.
2) Обновляем WSL и ядро
PowerShell — выполнять по одной:
wsl --status
wsl --update
wsl --shutdown
wsl --list --verbose
Убедитесь, что дистрибутив в версии 2 (колонка «VERSION» = 2). Если нет: wsl --set-version Ubuntu 2.
3) Ставим драйвер с поддержкой WSL
- NVIDIA: скачайте драйвер с поддержкой CUDA/WSL на официальном сайте.
- AMD/Intel: используйте актуальные драйверы с поддержкой вычислений/D3D12.
PowerShell — выполнить по одной:
pnputil /enum-drivers | findstr /i "display nvidia amd intel"
dxdiag /t "%USERPROFILE%\Desktop\dxdiag.txt"
4) Проверяем доступ к GPU из WSL
Запустите дистрибутив, затем:
Команды Linux (внутри WSL) — выполнять по одной:
ls -l /dev/dxg
nvidia-smi
python3 - <<'PY'
try:
import torch
print("PyTorch:", torch.__version__, "CUDA:", torch.cuda.is_available())
except Exception as e:
print("PyTorch ошибка:", e)
PY
Если /dev/dxg есть и nvidia-smi показывает GPU — доступ настроен.
5) Устанавливаем инструменты
Команды Linux (WSL) — выполнять по одной (пример для Ubuntu):
sudo apt update
sudo apt install -y build-essential python3-pip
# Пример: установка CUDA Toolkit (для NVIDIA)
# Подробности — на официальном сайте NVIDIA для WSL
pip3 install --upgrade pip
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu121
Для DirectML в Windows-нужных сценариях используйте пакеты, поддерживающие DirectML.
6) Частые ошибки и решения
- /dev/dxg отсутствует. Проверьте включение Hyper-V/VirtualMachinePlatform, драйвер GPU, версию WSL и перезагрузку.
- nvidia-smi not found. Драйвер без CUDA или не поддерживает WSL. Скачайте пакет с поддержкой CUDA.
- Torch CUDA = False. Проверьте соответствие версии torch и установленного CUDA, переустановите колёсные пакеты.
FAQ
Можно ли использовать несколько дистрибутивов?
Да, GPU-шарится между всеми дистрибутивами WSL2. Контролируйте версии библиотек отдельно.
Windows 10 поддерживается?
Да, начиная с 21H2. Но на Windows 11 поддержка шире и стабильнее.