Transferências do hospedeiro para o dispositivo
Envie os dados de entrada para a GPU.
Transferências do hospedeiro para o dispositivo é 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.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Two Memories, One Goal
Your data starts in host RAM, but the GPU can only crunch numbers that live in its own device memory. First you must move it across. 🚚
Meet cudaMemcpy
The cudaMemcpy function is your delivery truck: it copies a block of bytes from one address to another, host or device.
cudaMemcpy(dst, src, bytes, kind);The Upload Direction
To send input data up to the GPU you use cudaMemcpyHostToDevice. Source is host RAM, destination is device memory.
cudaMemcpy(d_a, h_a, n*sizeof(float), cudaMemcpyHostToDevice);Argument Order Matters
Like memcpy, the destination comes first, then the source. Swap them by accident and your GPU buffer stays empty. 😬
cudaMemcpy(d_dst, h_src, bytes, cudaMemcpyHostToDevice);Count Bytes, Not Elements
The size argument is measured in bytes, so multiply your element count by the type size with sizeof.
size_t bytes = n * sizeof(float);Allocate Before You Copy
The device pointer must already point at real GPU memory. Always cudaMalloc the destination before uploading into it.
cudaMalloc(&d_a, bytes);
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);A Synchronous Wait
Plain cudaMemcpy is blocking: your CPU thread pauses until every byte has safely landed on the GPU.
Then Launch Your Kernel
Upload first, compute second. Once the input is on the device, your kernel can read it and start the real work.
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);
myKernel<<<blocks, threads>>>(d_a, n);Sizes Must Match
Make sure the byte count you upload fits the buffer you allocated. Copying more than you reserved is a classic overflow bug.
Check the Return Code
cudaMemcpy returns a cudaError_t. Inspect it so a bad pointer or size fails loudly instead of corrupting your run.
cudaError_t err = cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);Copies Are Not Free
Every upload travels across the slow PCIe bus, so copy only the data you truly need on the device.
Quick Check
You want to send an input array from CPU RAM to the GPU. Which call is correct?
Recap
You learned to upload data with cudaMemcpyHostToDevice: allocate the device buffer, put destination first, size it in bytes, and copy before launching. 🎉
Perguntas Frequentes
A aula “Transferências do hospedeiro para o dispositivo” é grátis?
Sim — o texto completo de “Transferências do hospedeiro para o dispositivo” é 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 “Transferências do hospedeiro para o dispositivo”?
Envie os dados de entrada para a GPU. 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 “Transferências do hospedeiro para o dispositivo”?
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
- Transferências do hospedeiro para o dispositivo
- Transferências do dispositivo para o hospedeiro
- O enumerador da direção de cópia
- O gargalo de transferência do PCIe