0Pricing
CUDA Academy · Leçon

Réduction, balayage et tri avec Thrust

Primitives de haut niveau en un seul appel

Réduction, balayage et tri avec Thrust 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.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Hard Algorithms, One Line

Reductions, scans, and sorts are tricky to write fast by hand. Thrust gives you tuned versions through a single function call. 🎁

Reduce Collapses to One Value

thrust::reduce combines every element into a single result, like summing an array, all in parallel under the hood.

int total = thrust::reduce(d.begin(), d.end());

Custom Reduction Operators

Reduce defaults to addition, but you can pass an init value and a binary op to compute a product, max, or anything associative.

int m = thrust::reduce(d.begin(), d.end(),
  0, thrust::maximum<int>());

Scan Keeps the Running Total

A scan, or prefix sum, outputs the running total at each position. It is the backbone of compaction, sorting, and stream allocation.

Inclusive vs Exclusive

inclusive_scan includes the current element in its sum; exclusive_scan does not. Picking the right one avoids an off-by-one bug.

thrust::inclusive_scan(d.begin(), d.end(),
  out.begin());

Scan Is Not Obvious to Parallelize

A prefix sum looks sequential, yet Thrust runs it in parallel with a clever tree algorithm you never have to write yourself.

Sort in Place

thrust::sort orders a device_vector in place using a fast GPU radix or merge sort, far quicker than a CPU sort on big data.

thrust::sort(d.begin(), d.end());

Sort by Key

sort_by_key sorts one array and reorders a second values array to match, perfect for keeping records aligned with their keys.

thrust::sort_by_key(keys.begin(),
  keys.end(), values.begin());

Compose Primitives

Real pipelines chain these: transform then reduce, or sort then scan. Each step is one tuned call, so you focus on the logic.

Fused transform_reduce

transform_reduce maps and sums in one pass, computing things like a dot product or sum of squares without a temporary array.

float ss = thrust::transform_reduce(
  d.begin(), d.end(), sq, 0.0f, thrust::plus<float>());

Let the Library Win

These primitives are heavily optimized by NVIDIA. Reaching for them first usually beats a custom kernel and saves hours of work.

Quick Check

Recall what a prefix sum produces.

Recap

You collapsed data with reduce, built running totals with scan, ordered arrays with sort, and fused steps with transform_reduce. 🏁

Questions Fréquemment Posées

La leçon « Réduction, balayage et tri avec Thrust » est-elle gratuite ?

Oui — le texte complet de « Réduction, balayage et tri avec Thrust » 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 « Réduction, balayage et tri avec Thrust » ?

Primitives de haut niveau en un seul appel 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 « Réduction, balayage et tri avec Thrust » ?

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. cuBLAS GEMM comme il se doit
  2. Vecteurs et transformations Thrust
  3. Réduction, balayage et tri avec Thrust
  4. cuDNN pour l’apprentissage profond
← Retour à CUDA Academy