WSL2: GPU AMD RX 7600 deja de detectarse (dxgkio_query_adapter_info Ioctl failed: -22) tras entrenamiento LoRA prolongado

Miguel SL 20 Puntos de reputación
2026-09-20T16:16:45.7+00:00

Servicio: Windows Subsystem for Linux 2 (WSL2), GPU compute con ROCm sobre GPU AMD.

Escenario: Llevaba varios días entrenando modelos (LoRA fine-tuning con PyTorch+ROCm) dentro de WSL2 usando una GPU AMD Radeon RX 7600, sin ningún problema. Tras finalizar un entrenamiento largo, al intentar lanzar el siguiente, WSL2 dejó de detectar la GPU por completo, sin ningún cambio de configuración de por medio.

Resultado: Desde entonces, en cada arranque de WSL, el log del kernel muestra este error nada más iniciar, antes de ejecutar nada:

[    0.328612] hv_vmbus: registering driver dxgkrnl

[    1.514588] misc dxg: dxgk: dxgkio_is_feature_enabled: Ioctl failed: -22

[    1.519442] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22

[    1.519853] misc dxg: dxgk: dxgkio_query_adapter_info: Ioctl failed: -22

Como consecuencia: rocminfo da "hsa_init Failed, possibly no supported GPU devices", y torch.cuda.is_available() devuelve False sin ningún error visible.

Entorno:

  • Windows 11 IoT Enterprise LTSC, build 10.0.26100.9168
  • GPU: AMD Radeon RX 7600, driver 32.0.31041.1004 (2026-08-17)
  • WSL: probado en 2.7.14 (kernel 6.18.33.2), 2.9.12 (kernel 6.18.40.1) y una reinstalación limpia de 2.6.2 (kernel 6.6.87.2) — el fallo es idéntico en las tres
  • ROCm 7.2.4 en Ubuntu 22.04 dentro de WSL, con librocdxg correctamente instalado

Esfuerzos de solución de problemas: reinicio completo de Windows; actualización del kernel de WSL (incluye un fix de dxgkrnl para una fuga de memoria, sin efecto); limpieza de versiones antiguas del driver AMD en el almacén de controladores (solo queda la actual); desactivación de Memory Integrity (HVCI) vía registro + reinicio; reinstalación completa de WSL desde cero a una versión de octubre de 2025; activación de IOMMU/SR-IOV/Above 4G Decoding en la BIOS (estaban en "Auto"); verificado que no hay ninguna directiva de grupo bloqueando vGPU. Ninguna de estas acciones cambió el resultado. Tampoco hay ningún evento de error/advertencia en el Visor de eventos de Windows relacionado, ni volcados de memoria (crash dumps) de ningún tipo — el fallo no deja rastro de un cuelgue o driver reiniciado.

Pasos reproducibles:

  1. wsl --shutdown
  2. wsl -d Ubuntu-22.04
  3. Dentro de WSL: dmesg | grep dxg → muestra los errores de arriba inmediatamente
  4. rocminfo → falla con "hsa_init Failed"

Materiales auxiliares: tengo capturados los logs oficiales de diagnóstico (collect-wsl-logs.ps1), incluida una traza ETL reproduciendo el fallo, listos para adjuntar. También he reportado esto en GitHub: https://github.com/microsoft/WSL/issues/41654

Windows Subsystem for Linux

Windows para empresas | Windows para IoT
0 comentarios No hay comentarios

Respuesta aceptada por el autor de la pregunta
Daphne Huynh (WICLOUD CORPORATION) 1,900 Puntos de reputación Personal externo de Microsoft Moderador
2026-09-21T03:49:00.6266667+00:00

¡Bienvenido a Microsoft Q&A!

Gracias por proporcionar una descripción tan detallada del problema y de los pasos de solución de problemas que ya ha realizado.

Según la información que ha compartido, los errores dxgkio_query_adapter_info: Ioctl failed: -22 se producen durante la inicialización del controlador dxgkrnl de WSL, antes de que se carguen ROCm o PyTorch. Como resultado, el posterior mensaje hsa_init Failed de rocminfo y que torch.cuda.is_available devuelva False parecen ser síntomas posteriores y no la causa principal.

Dado que el error se produce durante la enumeración del adaptador /dev/dxg, es poco probable que reinstalar ROCm dentro de Ubuntu resuelva el problema por sí solo.

Una consideración importante es que la AMD Radeon RX 7600 no aparece actualmente en la matriz de compatibilidad ROCm sobre WSL publicada por AMD. AMD valida combinaciones específicas de GPU compatibles, controladores Radeon Software para WSL, versiones de ROCm, versiones de Ubuntu, kernels de WSL y versiones de frameworks. Debido a que la RX 7600 no está incluida actualmente en esa matriz de compatibilidad, resulta difícil determinar si este comportamiento representa una regresión de WSL, un problema del controlador o una limitación de compatibilidad de la plataforma.

Para ayudar a aislar aún más el problema, recomendaría lo siguiente:

  1. Verifique que Windows siga detectando correctamente la RX 7600 en Administrador de dispositivos y dxdiag, y que esté cargado el controlador de AMD en lugar del Adaptador de pantalla básico de Microsoft.
  2. Dentro de WSL, verifique que la interfaz de la GPU esté disponible: ls -l /dev/dxg

Si /dev/dxg no existe, o si los errores dxgkio_query_adapter_info aparecen inmediatamente durante el inicio, el enfoque debería centrarse en el controlador de pantalla de Windows y la capa de virtualización de GPU de WSL, en lugar de en la propia instalación de ROCm.

  1. Realice una prueba con una configuración ROCm sobre WSL compatible con AMD utilizando exactamente el paquete Radeon Software para-WSL y las versiones de software documentadas por AMD.
  2. Si es posible, intente reproducir el comportamiento en hardware que aparezca explícitamente en la matriz de compatibilidad ROCm sobre WSL de AMD. Esto puede ayudar a determinar si el problema está relacionado con el modelo actual de GPU o con la pila de virtualización de GPU de WSL.
  3. Continúe adjuntando el paquete de diagnósticos y las trazas ETL a su incidencia de GitHub. Además de los registros existentes, considere incluir:
  • wsl --version
  • wsl --status
  • winver
  • dxdiag /t dxdiag.txt
  • Get-CimInstance Win32_VideoController
  • Get-PnpDevice -Class Display
  • dmesg | grep -iE "dxg|drm|hsa"
  • La última versión conocida funcional del controlador AMD, la versión de WSL y la versión de ROCm
  • Si deshabilitar y volver a habilitar el adaptador de pantalla o reinstalar el controlador AMD restaura temporalmente /dev/dxg

Dado que el comportamiento persiste en múltiples versiones de WSL, versiones del kernel e incluso tras una reinstalación limpia de WSL, no parece estar causado por una distribución Ubuntu dañada. En esta etapa, es razonable seguir investigándolo como un posible problema de interoperabilidad entre el controlador de pantalla de Windows y DXG en WSL. Sin embargo, dado que la RX 7600 se encuentra actualmente fuera de la matriz de compatibilidad ROCm sobre WSL documentada por AMD, todavía no hay evidencia suficiente para concluir que se trate de una regresión confirmada del producto WSL.

Como solución alternativa práctica, puede probar con una combinación de GPU y software que figure en la matriz de compatibilidad ROCm sobre WSL de AMD, ejecutar ROCm en una instalación nativa de Linux o evaluar DirectML en WSL si satisface los requisitos de su carga de trabajo.

Referencias: Habilitación de PyTorch con DirectML en WSL | Microsoft Learn

Ejecución de aplicaciones de GUI de Linux con WSL | Microsoft Learn

DirectX 12 para subsistemas de Windows | Microsoft Support

Si esta información le resulta útil, haga clic en Aceptar respuesta.

Gracias por elegir Microsoft Q&A.

Nota: Esta respuesta ha sido traducida mediante una herramienta de traducción. Tenga en cuenta que puede contener errores gramaticales o semánticos. Gracias por su comprensión.

¿Le resultó útil esta respuesta?

2 personas encontraron esta respuesta útil.

0 respuestas adicionales

Ordenar por: Lo más útil

Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.