Gabarits et fenêtres glissantes
Tuilez les voisinages avec des cellules périphériques.
Gabarits et fenêtres glissantes est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.
Qu’est-ce qu’un filtre
Un filtre calcule chaque sortie à partir d’un voisinage fixe de données d’entrée, par exemple en faisant la moyenne d’un pixel avec les cellules qui l’entourent.
La fenêtre glissante
Lorsque vous vous déplacez dans le tableau, la fenêtre d’entrée glisse d’une position. Les sorties consécutives partagent la plupart de leurs entrées, ce qui offre une réutilisation considérable.
Idéal pour le découpage en tuiles
Comme les voisins se chevauchent, une tuile chargée une fois alimente de nombreuses sorties. Les filtres sont un exemple classique où le découpage en tuiles est particulièrement efficace.
Voici la bordure
Pour calculer les bords d’une tuile, vous avez aussi besoin de quelques éléments juste à l’extérieur. Ces cellules supplémentaires de bordure sont appelées la bordure fantôme.
Pourquoi la bordure existe
Le premier thread d’une tuile a besoin de son voisin de gauche, qui appartient à la tuile précédente. Sans cellules de bordure, cette lecture serait incorrecte.
Dimensionner la bordure
Pour un filtre de rayon r, vous chargez r cellules supplémentaires de chaque côté. Un flou à 3 points a un rayon de 1 : une cellule de bordure par côté suffit.
Une tuile complétée
Déclarez la mémoire partagée avec une taille égale à blockDim plus 2 * radius, afin qu’elle contienne l’intérieur et les deux bordures dans un seul tampon bien organisé.
__shared__ float tile[BLOCK + 2 * RADIUS];Charger l’intérieur
Chaque thread charge d’abord son propre élément dans la tuile, avec un décalage de radius, afin de laisser de la place à la bordure gauche devant lui.
tile[threadIdx.x + RADIUS] = in[gid];Charger les bordures
Les premiers threads effectuent une double tâche : ils récupèrent également les cellules de bordure gauche et droite avant la synchronisation du bloc.
Puis synchroniser et appliquer le filtre
Après __syncthreads, chaque thread lit entièrement ses voisins dans la tuile, sans plus toucher à la mémoire globale pour cette étape.
Facteur de réutilisation
Chaque valeur intérieure sert désormais à produire 2r + 1 sorties à partir d’un seul chargement en mémoire partagée. C’est précisément le trafic redondant que le découpage en tuiles élimine.
Vérification rapide
Pourquoi un filtre découpé en tuiles a-t-il besoin de cellules de bordure ?
Récapitulatif
Les filtres parcourent des fenêtres qui se chevauchent ; une bordure de r cellules supplémentaires par côté permet donc à une tuile de fournir chaque sortie avec un seul chargement. ✅
Questions Fréquemment Posées
La leçon « Gabarits et fenêtres glissantes » est-elle gratuite ?
Oui — le texte complet de « Gabarits et fenêtres glissantes » 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 « Gabarits et fenêtres glissantes » ?
Tuilez les voisinages avec des cellules périphériques. 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 3 sur 4.
Combien de temps prend la leçon « Gabarits et fenêtres glissantes » ?
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
- Le problème de la réutilisation des données
- Le modèle charger-synchroniser-calculer
- Gabarits et fenêtres glissantes
- Gérer les tuiles de bord