0Pricing
CUDA Academy · Leçon

Se protéger contre les dépassements de plage

La vérification des limites if (i < n).

Se protéger contre les dépassements de plage est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

You Often Launch Too Many

Thread counts come in fixed block sizes, so you almost always launch a few extra threads beyond your array length. Those spares need handling.

What Goes Wrong

An extra thread computes an index past the end of the array. If it writes there, it touches memory it does not own, causing a silent out-of-bounds bug.

The GPU Will Not Warn You

Unlike a clean crash, an out-of-range write may corrupt nearby data or read garbage. The kernel keeps running, so the failure is invisible until results look wrong.

The Fix Is One Line

Before any thread uses its index, check that it falls inside the array. This tiny bounds check is the most important safety habit in CUDA.

if (i < n) {
    out[i] = a[i] + b[i];
}

Why Less Than, Not Less Or Equal

Valid indices run 0 to n minus 1. The strict i < n lets the last real element through and stops the first invalid one.

Idle Threads Just Exit

A thread whose index is out of range simply skips the work and returns. Doing nothing is perfectly safe and costs almost no time.

Pass n to the Kernel

The kernel cannot guess the array length, so you give it n as a parameter. Then the guard always knows where the data ends.

__global__ void add(float* a, float* b, float* out, int n) {
    int i = blockIdx.x * blockDim.x + threadIdx.x;
    if (i < n) out[i] = a[i] + b[i];
}

Guard Reads Too

It is not only writes. Reading a[i] past the end loads garbage or faults, so the same i < n check protects every access.

A Common Off-by-One

Writing i <= n by mistake lets one thread touch element n, which does not exist. Always keep the comparison strict.

Cheap Insurance

The branch costs almost nothing because extra threads are rare and exit fast. The safety it buys is worth far more than that tiny cost. ✅

Make It a Reflex

Treat the bounds check as part of the index formula itself. Compute i, then immediately guard it before doing anything else.

Quick Check

Pick the correct guard.

Recap

You learned to add if (i < n) after computing the index. This one line stops out-of-range reads and writes that the GPU would never warn you about. 🛡️

Questions Fréquemment Posées

La leçon « Se protéger contre les dépassements de plage » est-elle gratuite ?

Oui — le texte complet de « Se protéger contre les dépassements de plage » 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 « Se protéger contre les dépassements de plage » ?

La vérification des limites if (i < n). 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 2 sur 4.

Combien de temps prend la leçon « Se protéger contre les dépassements de plage » ?

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

  1. La formule d’index classique
  2. Se protéger contre les dépassements de plage
  3. Arrondir le nombre de blocs vers le haut
  4. Boucles avec pas de grille
← Retour à CUDA Academy