Il qualificatore di funzione __global__
Contrassegni una funzione come kernel della GPU.
Il qualificatore di funzione __global__ è 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.
Due mondi, due compilatori
Il file CUDA contiene sia codice CPU sia codice GPU. Una piccola parola chiave indica al compilatore a quale lato appartiene una funzione. Questa parola chiave è il function qualifier. ⚡
Presentiamo __global__
Il qualificatore __global__ contrassegna una funzione come kernel GPU: codice lanciato dalla CPU ma eseguito dalla GPU su molti thread.
__global__ void myKernel() {
// runs on the GPU
}Chiamata qui, esecuzione là
Una funzione __global__ è l'unico tipo che l'host può chiamare e che il device può eseguire. È il ponte tra i due mondi.
Restituisce sempre void
Un kernel deve restituire void. Non può restituire un valore alla CPU, quindi i risultati passano invece attraverso la memoria.
__global__ void addOne(int* data) {
data[0] += 1;
}Il lancio è asincrono
Quando lancia un kernel __global__, la CPU non attende. La chiamata restituisce immediatamente il controllo mentre la GPU lavora in background. 🚀
Molti thread, una funzione
Una definizione __global__ viene eseguita contemporaneamente da migliaia di thread. Lei scrive il corpo una sola volta; la GPU replica il lavoro sui core.
La sintassi di lancio
Per chiamare un kernel servono speciali triple angle brackets che impostano il numero di thread da eseguire. Le sole parentesi normali non bastano.
myKernel<<<1, 256>>>();Parametri per valore
Gli argomenti del kernel vengono copiati sul device. Per gli array passi device pointers, perché un puntatore host non avrebbe significato sulla GPU.
Non è uguale a __device__
Non li confonda: __global__ è un punto di ingresso lanciabile, mentre le funzioni __device__ sono helper chiamabili solo dal codice GPU.
Niente ricorsione all'ingresso
Un kernel __global__ non può chiamare direttamente sé stesso come fanno le funzioni host. La ricorsione classica appartiene invece alle funzioni helper device.
Perché è importante
Padroneggiare __global__ apre la strada a tutto ciò che segue: ogni kernel che scriverà, lancerà e ottimizzerà inizia con questa piccola parola chiave.
Controllo rapido
Verifichiamo la sua comprensione del qualificatore __global__.
Riepilogo
Ha imparato che __global__ contrassegna un kernel GPU: viene chiamato dall'host, eseguito dal device, restituisce void e viene lanciato con parentesi angolari triple. 🎉
Domande Frequenti
La lezione «Il qualificatore di funzione __global__» è gratuita?
Sì — il testo completo di «Il qualificatore di funzione __global__» è 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 «Il qualificatore di funzione __global__»?
Contrassegni una funzione come kernel della GPU. 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 «Il qualificatore di funzione __global__»?
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
- Il qualificatore di funzione __global__
- Funzioni __device__ e __host__
- Spazi di indirizzamento separati
- Il ciclo di vita di un programma CUDA