0Pricing
CUDA Academy · Aula

cudaMalloc e cudaFree

Reserve e libere a memória global.

cudaMalloc e cudaFree é 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.

A GPU tem sua própria RAM

Sua GPU não usa a memória principal do computador. Ela possui um espaço separado chamado memória global, que os núcleos leem e gravam. 🧠

Você precisa solicitá-la

Antes que um núcleo possa usar a memória do dispositivo, você precisa reservar um espaço por conta própria. A função que faz essa reserva é cudaMalloc.

A assinatura de cudaMalloc

cudaMalloc recebe o endereço de um ponteiro e uma quantidade de bytes. Ela preenche esse ponteiro com um novo endereço no dispositivo.

float* d_data;
cudaMalloc(&d_data, n * sizeof(float));

Por que um ponteiro para um ponteiro

Você passa &d_data para que cudaMalloc possa gravar o novo endereço de volta na sua variável. O valor retornado é reservado para um código de erro.

Sempre conte em bytes

cudaMalloc trabalha com bytes brutos, não com elementos. Multiplique a quantidade de elementos por sizeof(type) para que o buffer tenha o tamanho correto.

cudaMalloc(&d_arr, count * sizeof(int));

Devolva com cudaFree

Quando terminar de usar um buffer, devolva-o à GPU usando cudaFree. Isso libera a memória global para outros trabalhos.

cudaFree(d_data);

Pares, como fechadura e chave

Trate cudaMalloc e cudaFree como um par. Cada alocação que fizer deve ter exatamente uma liberação correspondente.

A memória não é inicializada

A memória recém-obtida com cudaMalloc contém valores indefinidos. Lê-la antes de escrever ou copiar dados produz resultados imprevisíveis.

A alocação pode falhar

Se a GPU ficar sem memória, cudaMalloc retornará um erro em vez de causar uma falha. Em código real, verifique sempre esse código de retorno.

A memória global é abundante, mas lenta

Os buffers de cudaMalloc ficam na memória global: gigabytes de espaço, mas a camada mais lenta do chip. Use-a sem economia, mas preste atenção aos padrões de acesso.

O ritmo de todo programa

Quase todo programa CUDA segue o mesmo ritmo: cudaMalloc, copiar os dados para a GPU, iniciar um kernel, copiar os resultados de volta e então executar cudaFree.

Verificação rápida

Vamos confirmar como cudaMalloc recebe o ponteiro de destino.

Recapitulação

Você aprendeu a reservar memória da GPU com cudaMalloc, especificando o tamanho em bytes, e a liberá-la com cudaFree em pares correspondentes. 🎉

Perguntas Frequentes

A aula “cudaMalloc e cudaFree” é grátis?

Sim — o texto completo de “cudaMalloc e cudaFree” é 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 “cudaMalloc e cudaFree”?

Reserve e libere a memória global. 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 “cudaMalloc e cudaFree”?

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. cudaMalloc e cudaFree
  2. Ponteiros para a memória da GPU
  3. cudaMemset para inicialização
  4. Evite vazamentos e liberações duplicadas
← Voltar para CUDA Academy