Percorrendo kernels no cuda-gdb
Pontos de interrupção e inspeção por thread.
Percorrendo kernels no cuda-gdb é uma aula grátis de CUDA Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CUDA Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CUDA Academy inclui 4 aulas no total.
Conheça o cuda-gdb
Quando um kernel apresenta comportamento incorreto, o cuda-gdb permite pausá-lo e examiná-lo internamente, assim como o gdb faz com programas comuns de CPU. 🔍
Compile com informações de depuração
O cuda-gdb precisa de símbolos; portanto, compile seu kernel com -G para adicionar informações completas de depuração do dispositivo antes de depurar.
nvcc -g -G vecadd.cu -o vecaddPor que -G é importante
O sinalizador -G desativa muitas otimizações para que os números das linhas e as variáveis permaneçam precisos, tornando confiável percorrer o código do dispositivo passo a passo.
Inicie o depurador
Inicie uma sessão fornecendo seu binário ao cuda-gdb e, em seguida, digite run para executá-lo sob o controle do depurador.
cuda-gdb ./vecaddDefina um ponto de interrupção em um kernel
Coloque um ponto de interrupção dentro do kernel informando o nome da função, para que a execução seja interrompida assim que uma thread chegar a esse ponto.
(cuda-gdb) break vecAddKernelMuitas threads, uma pausa
Milhares de threads podem atingir esse ponto de interrupção; por isso, o cuda-gdb interrompe a execução e se concentra em uma thread por vez para inspeção.
Percorra linha por linha
Use next para executar a linha atual e pausar na seguinte, percorrendo a lógica do seu kernel passo a passo.
(cuda-gdb) nextInspecione uma variável
Verifique o que uma thread realmente calculou pedindo ao cuda-gdb para print uma variável local enquanto você está pausado dentro do kernel.
(cuda-gdb) print iAlterne a thread em foco
Mude o foco para uma thread específica com cuda thread, escolhendo exatamente o bloco e a lane que deseja inspecionar.
(cuda-gdb) cuda block 0 thread 5Leia os índices integrados
Você pode imprimir threadIdx e blockIdx assim como variáveis comuns, confirmando exatamente qual elemento de dados essa thread processa.
(cuda-gdb) print threadIdx.xContinue a execução
Quando terminar de examinar o código, digite continue para retomar o programa até o próximo ponto de interrupção ou até que ele termine.
(cuda-gdb) continueVerificação rápida
Qual sinalizador do compilador adiciona informações de depuração do dispositivo para o cuda-gdb?
Recapitulação
Você compilou com -G, definiu um ponto de interrupção no kernel, percorreu as linhas, alternou entre threads e imprimiu índices. Esse é o ciclo básico do cuda-gdb. 🎉
Perguntas Frequentes
A aula “Percorrendo kernels no cuda-gdb” é grátis?
Sim — o texto completo de “Percorrendo kernels no cuda-gdb” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CUDA Academy, atualize para CoddyKit PRO. O curso de CUDA Academy inclui 4 aulas no total.
O que vou aprender em “Percorrendo kernels no cuda-gdb”?
Pontos de interrupção e inspeção por thread. Você pratica CUDA Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar CUDA Academy?
Nenhuma experiência prévia é necessária. CUDA Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Percorrendo kernels no cuda-gdb”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de CUDA Academy?
Sim. Cada aula de CUDA Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Percorrendo kernels no cuda-gdb
- Encontrando vazamentos com memcheck
- Caçando condições de corrida com racecheck
- Detectando erros de sincronização com synccheck