Compartilhar via


Depuração CNTK código-fonte no Visual Studio

As etapas para depurar kernels cuda:

  1. Instalar o NVIDIA Nsight seguindo as instruções daqui
  2. Siga as instruções para "Depuração local".
  3. Defina a variável de ambiente NSIGHT_CUDA_DEBUGGER = 1.
  4. Execute Visual Studio e o monitor Nsight como administrador.
  5. No Nsight Monitor-Options-CUDA>>, defina "Usar este monitor para anexação cuda" como True. Talvez seja necessário reiniciar o Nsight. Execute como administrador novamente.
  6. Em Visual Studio, vá para Nsight-Options> e verifique se as opções correspondem às suas opções no monitor do Nsight (por exemplo, as portas são as mesmas). Especialmente verifique se "Estabelecer conexão segura" é o mesmo em ambos.
  7. Clique com o botão direito do mouse no projeto MathCUDA no gerenciador de soluções e vá para Propriedades.
  8. Ir para Propriedades de Configuração –> CUDA C/C++ –> Dispositivo e definir Gerar Informações de Depuração de GPU como Sim
  9. Ir para Propriedades de Configuração –> Vinculador CUDA –> Geral e definir Gerar Informações de Depuração de GPU como Sim
  10. Adicione seus pontos de interrupção no kernel, recompile CNTK e prepare-se para executar o que estiver tentando depurar.
  11. No VS, vá para Depurar –> Anexar ao Processo, defina o Transporte para o Depurador de GPU do Nsight e defina Qualificador como localhost.
  12. Inicie CNTK.
  13. Clique em atualizar e localize CNTK na lista de processos e anexe. Quando ele atinge um ponto de interrupção, você deve ser capaz de ver todas as variáveis locais do kernel. Se você só vir globais cuda como threadIdx e blockIdx, você não definiu corretamente os sinalizadores de depuração de GPU nas propriedades MathCUDA.