CUDA Academy · Aula

O ciclo de vida de um programa CUDA

Reserve, copie, execute, copie de volta e libere.

Aula 4 de 413 etapas

O ciclo de vida de um programa CUDA é uma aula grátis de CUDA Academy no CoddyKit. Esta é a aula 4 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.

Um Ritmo Repetitivo

Quase todo programa CUDA segue a mesma sequência de cinco etapas. Aprenda o ritmo uma vez e você poderá ler qualquer código de GPU. 🕺

Etapa 1: Alocar

Primeiro, reserve memória do dispositivo para suas entradas e saídas com cudaMalloc, pois a GPU não pode usar diretamente os buffers do hospedeiro.

cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);

Etapa 2: Copiar para o Dispositivo

Em seguida, envie seus dados de entrada do hospedeiro para o dispositivo com cudaMemcpy. Agora a GPU tem sua própria cópia para processar.

cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);

Etapa 3: Lançar

Agora lance seu kernel em muitas threads. É aqui que o trabalho paralelo realmente acontece no dispositivo. 🚀

myKernel<<<blocks, threads>>>(d_a, d_b, n);

Etapa 4: Copiar de Volta

Quando o processamento terminar, baixe os resultados do dispositivo para o hospedeiro, para que a CPU possa lê-los e usá-los.

cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);

Etapa 5: Liberar

Por fim, libere todos os buffers do dispositivo com cudaFree. Ignorar essa etapa causa um vazamento de memória da GPU que poderia ser usada por outro trabalho.

cudaFree(d_a);
cudaFree(d_b);

Não Se Esqueça de Sincronizar

Como os lançamentos são assíncronos, chame cudaDeviceSynchronize antes de ler os resultados, para garantir que a GPU realmente terminou.

cudaDeviceSynchronize();

As Cópias Consomem Tempo

As etapas de cópia atravessam o barramento PCIe, que é lento, portanto a transferência de dados costuma ser o verdadeiro gargalo, não o kernel em si.

Reutilize os Buffers

Alocar uma vez e reutilizar os buffers em vários lançamentos é melhor do que alocar memória nova a cada iteração de um laço.

Simetria do Padrão

Observe a simetria: cada cudaMalloc corresponde a um cudaFree, e toda cópia para o dispositivo acaba correspondendo a uma cópia de volta.

O Ciclo de Vida em Uma Frase

Diga como um mantra: alocar, copiar, lançar, copiar de volta, liberar. Essa única linha é o esqueleto de quase todo programa com kernels.

Verificação Rápida

Vamos verificar o ciclo de vida padrão de um programa CUDA.

Recapitulação

Você aprendeu o ciclo de vida do CUDA em cinco etapas: alocar, copiar para o dispositivo, lançar, copiar de volta, liberar, além de sincronizar antes de ler os resultados. 🎉

Grátis para começar

Aprenda C++ com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “O ciclo de vida de um programa CUDA” é grátis?

Sim — o texto completo de “O ciclo de vida de um programa CUDA” é 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 “O ciclo de vida de um programa CUDA”?

Reserve, copie, execute, copie de volta e libere. 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 4 de 4.

Quanto tempo leva a aula “O ciclo de vida de um programa CUDA”?

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

  1. O qualificador de função __global__
  2. Funções __device__ e __host__
  3. Espaços de endereçamento separados
  4. O ciclo de vida de um programa CUDA
← Voltar para CUDA Academy