Elegir hilos por bloque
Valores predeterminados razonables, como 128 y 256.
Elegir hilos por bloque es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 4 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.
Una decisión real
Al lanzar un kernel, debe elegir cuántos threads por block utilizar. Esta pequeña decisión afecta al rendimiento real. 🎚️
Múltiplos de 32
La GPU ejecuta los threads en grupos de 32 llamados warps, por lo que debe elegir siempre un múltiplo de 32. Los tamaños impares desperdician lanes en un warp incompleto.
Valores predeterminados seguros
Un buen punto de partida son 128 o 256 threads por block. Son múltiplos de 32 y funcionan bien en casi cualquier GPU.
int threadsPerBlock = 256;El límite superior estricto
En las GPUs actuales, un block puede contener como máximo 1024 threads. Si solicita más, el lanzamiento falla directamente con un error.
Muy pocos threads
Los blocks muy pequeños, como los de 32 threads, pueden dejar la GPU infrautilizada. El planificador dispone de menos warps para ocultar la latencia de memoria.
Demasiados threads
Los blocks enormes pueden quedarse sin registros o memoria compartida, por lo que caben menos blocks por multiprocesador. Más grande no siempre es mejor.
Calcular el número de blocks
Una vez fijado el número de threads por block, redondee hacia arriba el número de blocks para cubrir todos los elementos, aunque la división no sea exacta.
int blocks = (n + threadsPerBlock - 1) / threadsPerBlock;Añada siempre una comprobación de límites
Al redondear hacia arriba, quedan algunos threads adicionales. Proteja el kernel con un if para que no accedan a memoria más allá del final del array.
if (i < n) out[i] = a[i] + b[i];Deje que CUDA sugiera un tamaño
Puede pedir a CUDA que calcule automáticamente un buen tamaño de block mediante la ayuda de ocupación y después ajustar el resultado.
cudaOccupancyMaxPotentialBlockSize(&grid, &block, kernel);Mida, no adivine
El tamaño realmente óptimo depende de su kernel y de su GPU. Empiece con 256, haga un benchmark con varios valores y conserve el más rápido.
Una regla práctica
Para la mayoría de los kernels de principiante, 256 threads por block y un número de blocks redondeado hacia arriba son un punto de partida fiable y rápido.
Comprobación rápida
Elija la opción más adecuada para los threads por block.
Resumen: dimensionar los blocks
Ha aprendido a dimensionar los blocks: usar múltiplos de 32, tomar 256 como valor predeterminado, mantenerse por debajo de 1024, redondear hacia arriba el número de blocks y hacer benchmarks. 🏁
Preguntas frecuentes
¿La lección «Elegir hilos por bloque» es gratis?
Sí — el texto completo de «Elegir hilos por bloque» 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 «Elegir hilos por bloque»?
Valores predeterminados razonables, como 128 y 256. 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 4 de 4.
¿Cuánto tiempo toma la lección «Elegir hilos por bloque»?
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
- La jerarquía de hilos
- threadIdx, blockIdx, blockDim
- Por qué existen los bloques
- Elegir hilos por bloque