Aula 6: Duas Memórias Separadas — Host, Device e cudaMalloc
Até agora você escreveu um kernel, dimensionou um grid, e deu a cada thread o seu índice. Mas há um detalhe que ainda não tocamos: onde os dados realmente vivem? A CPU (o host) e a GPU (o device) têm duas memórias físicas completamente separadas. Um ponteiro de malloc mora na memória host, e um pont
O host e o device são como dois escritórios em cidades diferentes. Cada escritório tem seus próprios armários de arquivo, e você não pode abrir o armário do outro escritório à distância pela janela. cudaMalloc é alugar um armário vazio no outro escritório (a GPU), e cudaFree é esvaziá-lo no final. Na próxima aula vamos aprender como enviar documentos pelo correio entre os dois escritórios.
- memória host
- A memória da CPU. Um ponteiro de malloc mora aqui, e o código host pode acessá-la diretamente.
- ponteiro device
- Um ponteiro retornado por cudaMalloc que aponta para a memória da GPU. Ele não deve ser lido diretamente no código host.
- cudaMalloc
- Aloca memória no device e retorna um ponteiro device através do seu argumento. Como malloc, mas a memória mora na GPU.
- cudaFree
- Libera memória device alocada por cudaMalloc. É o equivalente de free para memória host.