Qué es una transacción de memoria
Líneas de caché y segmentos de 32 y 128 bytes.
Qué es una transacción de memoria es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 1 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.
La memoria llega en bloques
La GPU nunca obtiene un solo byte por separado. Mueve la memoria en bloques de tamaño fijo llamados transacciones de memoria, aunque solo haya solicitado un valor.
El warp realiza la solicitud conjuntamente
Un warp de 32 hilos emite sus cargas al mismo tiempo. El hardware reúne las 32 solicitudes e intenta atenderlas con el menor número posible de transacciones.
Líneas de caché y segmentos
La memoria global se divide en segmentos alineados, normalmente de 32 o 128 bytes. Cada transacción obtiene un segmento completo, nunca una parte.
Por qué importan 128 bytes
Una línea de 128 bytes contiene exactamente 32 valores float de cuatro bytes. Es un valor por cada hilo de un warp, por lo que un warp ordenado puede atenderse con una sola transacción.
// 32 threads x 4-byte float = 128 bytes = one lineLa alineación es clave
Los segmentos comienzan en direcciones fijas y alineadas. Si los datos empiezan a mitad de un segmento, un solo warp puede extenderse por dos líneas y forzar una transacción adicional.
Paga por los bytes que no utiliza
Si un warp toca solo unos pocos bytes de una línea de 128 bytes, la GPU sigue moviendo los 128. Los bytes no utilizados son ancho de banda desperdiciado que paga de todos modos.
Contar transacciones
El rendimiento suele reducirse a una cifra: cuántas transacciones necesita un warp. Menos transacciones significan menos datos leídos y una finalización más rápida.
El mejor caso
Cuando 32 hilos leen 32 valores float contiguos desde una dirección alineada, la GPU responde con una sola línea ordenada de 128 bytes. Esa es la transacción única ideal.
float v = data[blockIdx.x * blockDim.x + threadIdx.x];El peor caso
Si cada hilo obtiene un valor alejado de los de sus vecinos, el warp puede activar hasta 32 transacciones independientes y traer 32 líneas completas para un uso mínimo.
El ancho de banda es el límite
La mayoría de los kernels están limitados por la velocidad a la que mueven la memoria, no por los cálculos. Reducir el número de transacciones aumenta directamente el ancho de banda efectivo. 🚀
Prepare el terreno
Ahora conoce la unidad de coste: la transacción del tamaño de un segmento. Cada técnica de coalescencia que verá a continuación consiste, en realidad, en concentrar los warps en el menor número posible de estas transacciones.
Comprobación rápida
Compruebe cuánto ha entendido sobre el tamaño de las transacciones.
Repaso
Ha aprendido que la GPU mueve la memoria en segmentos de tamaño fijo y que un warp se atiende con el menor número posible de transacciones. Menos transacciones, un kernel más rápido. 🎉
Aprende C++ con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Qué es una transacción de memoria» es gratis?
Sí — el texto completo de «Qué es una transacción de memoria» 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 «Qué es una transacción de memoria»?
Líneas de caché y segmentos de 32 y 128 bytes. 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 1 de 4.
¿Cuánto tiempo toma la lección «Qué es una transacción de memoria»?
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é es una transacción de memoria
- Lecturas fusionadas frente a estriadas
- Estructura de arrays frente a array de estructuras
- Medir el ancho de banda efectivo