Reduce, Scan y Sort de Thrust
Primitivas de alto nivel con una sola llamada
Reduce, Scan y Sort de Thrust es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CUDA Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CUDA Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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. 🏁
Preguntas frecuentes
¿La lección «Reduce, Scan y Sort de Thrust» es gratis?
Sí — el texto completo de «Reduce, Scan y Sort de Thrust» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CUDA Academy, actualiza a CoddyKit PRO. El curso de CUDA Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Reduce, Scan y Sort de Thrust»?
Primitivas de alto nivel con una sola llamada Practicas CUDA Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CUDA Academy?
No se requiere experiencia previa. CUDA Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Reduce, Scan y Sort de Thrust»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CUDA Academy?
Sí. Cada lección de CUDA Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- cuBLAS GEMM bien hecho
- Vectores y transformaciones de Thrust
- Reduce, Scan y Sort de Thrust
- cuDNN para deep learning