Depurar CNTK código fonte em Visual Studio
Os passos para depurar os núcleos cuda:
- Instale nvidia Nsight seguindo as direções daqui
- Siga as instruções para "Depuragem Local".
- Desaprote a variável ambiente NSIGHT_CUDA_DEBUGGER = 1.
- Executar Visual Studio e o monitor Nsight como administrador.
- No Nsight Monitor-Options-CUDA>>, desemote "Utilize este monitor para a ligação CUDA" à True. Talvez tenhas de reiniciar o Nsight. Correrá como administrador novamente.
- Em Visual Studio, vá à Nsight-Options e certifique-se> de que as opções coincidem com as suas opções no monitor Nsight (por exemplo, as portas são as mesmas). Certifique-se especialmente de que "Estabelecer uma ligação segura" é o mesmo em ambos.
- Clique direito no projeto MathCUDA no explorador de solução e vá para Propriedades.
- Vá a Propriedades de Configuração -> CUDA C/C++ -> Dispositivo e desconte Debug DEBUG GPU para Sim
- Ir para Propriedades de Configuração -> CUDA Linker -> Geral e definir Gerar Informações de Depuração GPU para Sim
- Adicione os seus pontos de rutura no seu núcleo, reconstrua CNTK, e prepare-se para executar o que estiver tentando depurar.
- Em VS, vá a Debug -> Attach to Process, desloque o Transporte para a Nsight GPU Debugger, e coloque a Qualificação na localidade.
- Começa CNTK.
- Clique em atualizar e encontre CNTK na lista de processos e, em seguida, anexe. Quando atingir um ponto de rutura, deve ser capaz de ver todas as suas variáveis locais a partir do núcleo. Se você só vê globales CUDA como threadIdx e blockIdx, você não definiu corretamente as bandeiras de GPU Debug nas propriedades MathCUDA.