cudaMalloc e cudaFree
Riservi e rilasci la memoria globale.
cudaMalloc e cudaFree è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CUDA Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CUDA Academy include 4 lezioni in totale.
La GPU ha una RAM propria
La GPU non utilizza la memoria principale del computer. Dispone di un'area separata chiamata memoria globale, che i kernel leggono e scrivono. 🧠
Deve richiederla
Prima che un kernel possa usare la memoria del dispositivo, deve riservarne personalmente una porzione. La funzione che esegue questa operazione è cudaMalloc.
La firma di cudaMalloc
cudaMalloc accetta l'indirizzo di un puntatore e un numero di byte. Inserisce in quel puntatore un nuovo indirizzo del dispositivo.
float* d_data;
cudaMalloc(&d_data, n * sizeof(float));Perché un puntatore a un puntatore
Passa &d_data affinché cudaMalloc possa scrivere il nuovo indirizzo nella Sua variabile. Il valore restituito è riservato al codice di errore.
Conti sempre in byte
cudaMalloc ragiona in byte grezzi, non in elementi. Moltiplichi il numero di elementi per sizeof(type), così il buffer avrà la dimensione corretta.
cudaMalloc(&d_arr, count * sizeof(int));Lo restituisca con cudaFree
Quando ha finito di usare un buffer, lo restituisca alla GPU usando cudaFree. In questo modo libera la memoria globale per altre operazioni.
cudaFree(d_data);Una coppia, come chiave e serratura
Consideri cudaMalloc e cudaFree come una coppia. Ogni allocazione effettuata deve avere esattamente una cudaFree corrispondente.
La memoria non è inizializzata
La memoria appena ottenuta da cudaMalloc contiene valori casuali. Leggerla prima di scrivere o copiare i dati produce risultati imprevedibili.
L'allocazione può fallire
Se la GPU esaurisce la memoria, cudaMalloc restituisce un errore invece di causare un arresto anomalo. Nel codice reale controlli sempre quel codice restituito.
La memoria globale è abbondante, ma lenta
I buffer ottenuti con cudaMalloc risiedono nella memoria globale: offre gigabyte di spazio, ma appartiene al livello più lento del chip. La usi liberamente, prestando però attenzione agli schemi di accesso.
Il ritmo di ogni programma
Quasi ogni programma CUDA segue la stessa sequenza: cudaMalloc, copia dei dati in ingresso, lancio di un kernel, copia dei risultati in uscita e infine cudaFree.
Verifica rapida
Verifichiamo come cudaMalloc riceve il puntatore di destinazione.
Riepilogo
Ha imparato a riservare memoria sulla GPU con cudaMalloc, specificandone la dimensione in byte, e a liberarla con cudaFree in coppie corrispondenti. 🎉
Impara C++ con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «cudaMalloc e cudaFree» è gratuita?
Sì — il testo completo di «cudaMalloc e cudaFree» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CUDA Academy, passa a CoddyKit PRO. Il corso CUDA Academy include 4 lezioni in totale.
Cosa imparerò in «cudaMalloc e cudaFree»?
Riservi e rilasci la memoria globale. Eserciti CUDA Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare CUDA Academy?
Non è richiesta alcuna esperienza precedente. CUDA Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «cudaMalloc e cudaFree»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione CUDA Academy?
Sì. Ogni lezione CUDA Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- cudaMalloc e cudaFree
- Puntatori alla memoria GPU
- Inizializzare con cudaMemset
- Evitare perdite e doppi free