Debug CNTK codice sorgente in Visual Studio
I passaggi per il debug dei kernel CUDA:
- Installare NVIDIA Nsight seguendo le istruzioni da qui
- Seguire le istruzioni per "Debug locale".
- Impostare la variabile di ambiente NSIGHT_CUDA_DEBUGGER = 1.
- Eseguire Visual Studio e il monitoraggio di Nsight come amministratore.
- In Nsight Monitor-Options-CUDA>> impostare "Use this monitor for CUDA attach" (Usa questo monitoraggio per il collegamento CUDA) su True. Potrebbe essere necessario riavviare Nsight. Eseguire di nuovo come amministratore.
- In Visual Studio passare a Nsight-Options> e assicurarsi che le opzioni corrispondano alle opzioni in Monitoraggio Nsight (ad esempio, le porte sono le stesse). In particolare, assicurarsi che "Stabilire una connessione sicura" sia lo stesso in entrambi.
- Fare clic con il pulsante destro del mouse sul progetto MathCUDA in Esplora soluzioni e passare a Proprietà.
- Passare a Proprietà di configurazione -> CUDA C/C++ -> Dispositivo e impostare Genera informazioni di debug GPU su Sì
- Passare a Proprietà di configurazione -> Linker CUDA -> Generale e impostare Genera informazioni di debug GPU su Sì
- Aggiungere i punti di interruzione nel kernel, ricompilare CNTK e prepararsi a eseguire qualsiasi operazione che si sta tentando di eseguire il debug.
- In Visual Studio passare a Debug -> Connetti a processo, impostare Trasporto su Debugger GPU Nsight e impostare Qualificatore su localhost.
- Avviare CNTK.
- Fare clic su Aggiorna e trovare CNTK nell'elenco dei processi, quindi allegare. Quando raggiunge un punto di interruzione, dovrebbe essere possibile visualizzare tutte le variabili locali dal kernel. Se vengono visualizzati solo i global CUDA come threadIdx e blockIdx, non sono stati impostati correttamente i flag di debug GPU nelle proprietà MathCUDA.