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).
Не идёт? Подключусь, поставлю нужный драйвер, обновлю ядро WSL и проверю CUDA/DirectML тестами.

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 поддержка шире и стабильнее.

Читайте также: