Límites de registros y memoria compartida
Cómo los recursos limitan los bloques residentes.
Límites de registros y memoria compartida 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.
El presupuesto de recursos
Cada SM posee una cantidad fija de registros y memoria compartida. Cada bloque residente debe tomar su parte de estos recursos.
Registros por hilo
Su kernel utiliza cierta cantidad de registros por hilo. Multiplíquela por los hilos del bloque para obtener el coste de registros de un bloque.
Los registros limitan los bloques
Si cada hilo necesita muchos registros, caben menos hilos y, por tanto, permanecen residentes menos bloques. Los kernels que usan muchos registros pierden ocupación.
Cómo ver el uso de registros
Compile con esta opción y nvcc mostrará los registros por hilo, lo que le permitirá detectar cuándo un kernel consume demasiados registros.
nvcc -Xptxas -v vecadd.cuLimitar los registros
Puede imponer un límite mediante un launch bound para que el compilador utilice menos registros y permita que más warps permanezcan residentes.
__launch_bounds__(256, 4) __global__ void k() {}Memoria compartida por bloque
Cada bloque puede solicitar memoria compartida. El SM solo admite tantos bloques como permita su memoria compartida, a menudo entre 48 y 100 KB.
La memoria compartida limita los bloques
Solicite un tile __shared__ grande y solo cabrán uno o dos bloques por SM. Los tiles grandes intercambian ocupación por reutilización de datos.
Gana el límite más restrictivo
El SM calcula los bloques permitidos por los registros, la memoria compartida y el límite de warps. El menor de estos valores determina la ocupación.
Derramado de registros
Cuando un hilo necesita más registros de los permitidos, los adicionales se derraman a la memoria local, que es lenta. Los derrames pueden perjudicar más que una ocupación baja.
Ajustar el equilibrio
Reducir los registros o la memoria compartida aumenta la ocupación, pero una reducción demasiado agresiva provoca derrames. El punto óptimo está en el equilibrio.
Mida, no adivine
Lea siempre el uso real de registros y memoria compartida que indica el compilador antes de ajustar el kernel. Adivinar suele llevar a elegir el parámetro equivocado.
Comprobación rápida
Recuerde cómo decide el SM cuántos bloques pueden permanecer residentes.
Resumen
Ha visto que los registros y la memoria compartida son presupuestos fijos del SM, y que el límite más restrictivo limita la ocupación. Preste atención a los derrames. 🧮
Preguntas frecuentes
¿La lección «Límites de registros y memoria compartida» es gratis?
Sí — el texto completo de «Límites de registros y memoria compartida» 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 «Límites de registros y memoria compartida»?
Cómo los recursos limitan los bloques residentes. 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 «Límites de registros y memoria compartida»?
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
- Qué significa realmente la ocupación
- Límites de registros y memoria compartida
- API del calculador de ocupación
- La ocupación no lo es todo