Share via


Depurar código de GPU

Puede depurar el código de C++ que se está ejecutando en la unidad central (GPU) de gráficos.Compatibilidad con la depuración de GPU en Visual Studio incluye la detección de la precipitan, iniciar procesos y adjuntandolos a ellos, y la integración en las ventanas de depuración.

Plataformas compatibles

La depuración se admite en Windows 7, Windows 8, Windows Server 2008 R2, y Windows Server 2012.Para depurar en el emulador de software, se requiere Windows 8, o Windows Server 2012 .Para depurar en el hardware, debe instalar controladores para su tarjeta gráfica.No todos los distribuidores de hardware implementan todas las características del depurador.Vea la documentación del proveedor para las limitaciones.

[!NOTA]

Fabricantes independientes de hardware que desean para admitir la depuración de GPU en Visual Studio deben crear un archivo DLL que implementa la interfaz de VSD3DDebug y tiene sus propios controladores.

Depuración de configuración de GPU

El depurador no puede interrumpir el código de la CPU y el código de GPU en la misma ejecución de la aplicación.De forma predeterminada, las interrupciones del depurador en el código de la CPU.Para depurar código de GPU, use uno de estos dos pasos:

  • Para Depurar el tipo mostrado en la barra de herramientas Estándar , elija Solo GPU.

  • En Explorador de soluciones, en el menú contextual del proyecto, elija Propiedades.En el cuadro de diálogo Páginas de propiedades , Depuraciónseleccione, y Solo GPU seleccione en la lista Tipo de depurador .

El iniciar y adjuntarlo a las aplicaciones

Puede utilizar los comandos de depuración de Visual Studio para iniciar y detener la depuración de GPU.Para obtener más información, vea Iniciar, interrumpir, detener el Depurador de Visual Studio y navegar por él.También puede asociar el depurador de GPU a un proceso en ejecución, pero únicamente si ese proceso ejecuta código de GPU.Para obtener más información, vea Cómo: Conectar a procesos en ejecución.

Mosaico actual de ejecutar hasta el Cursor y ejecutar hasta el Cursor

Al depurar en el GPU, tiene dos opciones para ejecutarse a la ubicación del cursor.Los comandos para ambas opciones están disponibles en el menú contextual del editor de código.

  1. El comando Ejecutar hasta el cursor ejecuta la aplicación hasta que llegue a la ubicación del cursor y a continuación las interrupciones.Esto no implica que el subproceso actual se ejecuta al cursor; en su lugar, significa que el primer subproceso que alcanza el punto de cursor desencadena la interrupción.Para obtener más información, vea [NIB] 12/13 Cómo: Ejecutar un proceso hasta la ubicación del cursor.

  2. El comando Ejecutar Tile actual hasta el cursor ejecuta la aplicación hasta que todos los subprocesos del mosaico actual alcancen el cursor y a continuación las interrupciones.

Depuración Windows

Mediante algunas ventanas de depuración, puede examinar, marca, y subprocesos freeze GPU.Para obtener más información, vea:

Excepciones de la sincronización de datos

El depurador puede identificar varias condiciones de la sincronización de datos durante la ejecución.Cuando se detecta una condición, el depurador entra en el estado de interrupción.Tiene dos opcionesInterrumpir o Continuar.Mediante el cuadro de diálogo Excepciones , puede configurar si el depurador detecta estas condiciones y qué condiciones que interrumpirá para.Para obtener más información, vea Control de excepciones (Depurar).También puede utilizar el cuadro de diálogo Opciones para especificar que el depurador debe omitir excepciones si se escriben los datos que no cambia el valor de los datos.Para obtener más información, vea General, Depuración, Opciones (Cuadro de diálogo).

Solución de problemas

Hh873126.collapse_all(es-es,VS.110).gifEspecificar un acelerador

Los puntos de interrupción en el código de GPU se alcanzan sólo si el código se ejecuta en el acelerador de accelerator::direct3d_ref (referencia).Si no especifica un acelerador en el código, el acelerador de referencia se selecciona automáticamente como Tipo de acelerador de depuración en las propiedades del proyecto.Si el código selecciona explícitamente un acelerador, el acelerador de referencia no se usará durante la depuración y los puntos de interrupción no se alcanzan a menos que el hardware de GPU tiene compatibilidad con la depuración.Puede resolver esto escribiendo el código para que utilice el acelerador de referencia durante la depuración.Para obtener más información, vea las propiedades del proyecto y Usar objetos accelerator y accelerator_view y Configuración del proyecto para una configuración de depuración de C++.

Hh873126.collapse_all(es-es,VS.110).gifPuntos de interrupción condicionales

Puntos de interrupción condicionales en código de GPU se admiten, pero no cada expresión se puede evaluar en el dispositivo.Cuando una expresión no se puede evaluar en el dispositivo, se evalúa en el depurador.El depurador es probable ejecutarse más despacio que el dispositivo.

Hh873126.collapse_all(es-es,VS.110).gifError: Existe un problema de configuración con el tipo seleccionado de aceleradores de depuración. 

Este error se produce cuando hay una inconsistencia entre las configuraciones de proyecto y la configuración del equipo que está depurando en.Para obtener más información, vea Configuración del proyecto para una configuración de depuración de C++.

Hh873126.collapse_all(es-es,VS.110).gifError: El controlador de depuración para el tipo seleccionado de aceleradores de depuración no está instalado en el equipo.

Este error se produce si está depurando en un equipo remoto.El depurador no puede determinar hasta el tiempo de ejecución si los controladores instalados en el equipo remoto.Los controladores son disponibles del autor de la tarjeta gráfica.

Hh873126.collapse_all(es-es,VS.110).gifError: La detección y Recuperación (TDR) de tiempo de espera se deben deshabilitar en el sitio remoto.

Es posible que los cálculos de AMP de C++ superen el intervalo temporal predeterminada que es establecido por la detección y el proceso de recuperación (TDR) de tiempo de espera de Windows.Cuando esto ocurre, se cancela el cálculo y se pierden.Para obtener más información, vea Administrar TDRs en el AMP de C++.

Vea también

Tareas

Tutorial: Depurar una aplicación de C++ AMP

Referencia

Configuración del proyecto para una configuración de depuración de C++

Otros recursos

Inicie la depuración de GPU en Visual Studio