CUDA Academy · Lección

Qué es una transacción de memoria

Líneas de caché y segmentos de 32 y 128 bytes.

Lección 1 de 413 pasos

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 line

La 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. 🎉

Gratis para empezar

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

  1. Qué es una transacción de memoria
  2. Lecturas fusionadas frente a estriadas
  3. Estructura de arrays frente a array de estructuras
  4. Medir el ancho de banda efectivo
← Volver a CUDA Academy