threadIdx, blockIdx, blockDim
Las variables integradas que ubican un hilo.
threadIdx, blockIdx, blockDim es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 2 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.
¿Dónde estoy?
Todos los threads ejecutan el mismo código, así que cada uno debe preguntar: ¿qué parte de los datos me corresponde? CUDA responde mediante variables integradas. 📍
Conozca threadIdx
Dentro de un kernel, threadIdx indica a un thread su posición dentro de su propio block. El primer thread de un block tiene threadIdx.x igual a 0.
int t = threadIdx.x;Conozca blockIdx
La variable blockIdx indica a un thread a qué block pertenece dentro de la grid. La numeración de los blocks también comienza en 0.
int b = blockIdx.x;Conozca blockDim
También dispone de blockDim, que indica el número de threads por block. Si lanzó 256 threads, blockDim.x vale 256 para todos los threads.
int width = blockDim.x;Son automáticas
Usted nunca establece estas variables. CUDA las completa para cada thread en el momento en que se lanza el kernel.
Los campos .x, .y y .z
Cada una tiene los campos x, y y z para lanzamientos 1D, 2D o 3D. Para arrays sencillos, normalmente solo utilizará el campo x.
Cómo combinarlas
Por sí solo, threadIdx se repite en cada block. Para obtener una posición única, debe combinar blockIdx y blockDim con threadIdx.
Un pequeño recorrido
Con un blockDim de 4, el thread 2 del block 0 corresponde al elemento 2, pero el thread 2 del block 1 corresponde al elemento 6. El block desplaza el punto de inicio.
Ayudas de solo lectura
Estas funciones integradas son de solo lectura dentro del kernel. Trátelas como coordenadas fiables que describen exactamente dónde se encuentra su thread.
También está gridDim
Hay otro elemento útil: gridDim contiene el número total de blocks de la grid. Resulta práctico cuando recorre más datos que threads.
int blocks = gridDim.x;Por qué es importante
Estas tres variables son la materia prima para calcular un índice global, que es la forma en que cada thread reclama su propio elemento.
Comprobación rápida
Elija la variable que realiza la tarea indicada.
Resumen: localizar un thread
Ha conocido las variables integradas: threadIdx para la posición dentro de un block, blockIdx para el block y blockDim para el tamaño del block. Juntas permiten localizar un thread con precisión. ✅
Preguntas frecuentes
¿La lección «threadIdx, blockIdx, blockDim» es gratis?
Sí — el texto completo de «threadIdx, blockIdx, blockDim» 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 «threadIdx, blockIdx, blockDim»?
Las variables integradas que ubican un hilo. 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 2 de 4.
¿Cuánto tiempo toma la lección «threadIdx, blockIdx, blockDim»?
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