Anatomie d’un noyau
Signature, type de retour et règle void.
Anatomie d’un noyau est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CUDA Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CUDA Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
What a Kernel Is
A kernel is a single C++ function that runs on the GPU, executed at once by thousands of threads. You write it once, the hardware fans it out. 🚀
The __global__ Marker
You mark a kernel with the __global__ qualifier. It tells nvcc this function is called from the CPU but actually runs on the device.
__global__ void myKernel() {
// runs on the GPU
}Kernels Return void
Every kernel must return void. There is no return value to hand back, so results travel out through pointers to device memory instead.
__global__ void k() { /* void only */ }Why Not Return a Value?
Thousands of threads run your kernel together, so a single return value would make no sense. Each thread writes its own slot of an output array.
Parameters Are by Value
Kernel parameters are copied to every thread, so pass small things: ints, sizes, and pointers. Never pass big objects by value.
__global__ void add(float* out, float* a, int n) {}Pass Pointers, Not Arrays
To give a kernel an array, you pass a device pointer. The kernel reads and writes the GPU memory that pointer addresses.
__global__ void scale(float* data, float k) {}Each Thread Picks Its Work
The same code runs in every thread, so each one uses its index to decide which element to touch. That is how one function covers a whole array.
int i = threadIdx.x; // who am I?A Tiny Complete Kernel
Here is a full kernel: it doubles one element per thread. Notice the __global__ marker, the void return, and the pointer parameter all together.
__global__ void doubleIt(float* x) {
int i = threadIdx.x;
x[i] = x[i] * 2.0f;
}Host Code Stays Separate
Your normal CPU function, often main, is host code. It sets things up and then asks the GPU to run the kernel.
int main() {
// host side: prepare and launch
}No Recursion or I/O Surprises
A kernel runs on hardware with tight rules, so keep it simple: avoid deep recursion and heavy standard-library calls inside it.
Naming Your Kernels
Treat a kernel like any function: give it a clear, verb-based name like vectorAdd. Good names make launches far easier to read.
__global__ void vectorAdd(float* c, float* a, float* b);Quick Check
Let us check the kernel signature rules.
Recap: Kernel Anatomy
A kernel is a __global__ void function run by many threads. Pass pointers and small values, and let each thread use its index. Nicely done! 🎉
Questions Fréquemment Posées
La leçon « Anatomie d’un noyau » est-elle gratuite ?
Oui — le texte complet de « Anatomie d’un noyau » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CUDA Academy, passe à CoddyKit PRO. Le cours CUDA Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Anatomie d’un noyau » ?
Signature, type de retour et règle void. Tu pratiques CUDA Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer CUDA Academy ?
Aucune expérience préalable n'est requise. CUDA Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Anatomie d’un noyau » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon CUDA Academy ?
Oui. Chaque leçon CUDA Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Anatomie d’un noyau
- Le lancement entre triples chevrons
- printf dans un noyau
- cudaDeviceSynchronize expliqué