CUDA Academy · Lección

API de fragmentos de WMMA

Cargar, ejecutar mma_sync y guardar fragmentos

Lección 3 de 413 pasos

API de fragmentos de WMMA es una lección gratuita de CUDA Academy en CoddyKit. Esta es la lección 3 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 API WMMA

Para programar directamente los Tensor Cores, utilice WMMA, la API de multiplicación de matrices con acumulación por warp del espacio de nombres nvcuda::wmma. 🧩

Coopera un warp completo

WMMA funciona a nivel de warp: los 32 hilos de un warp trabajan juntos en un bloque. Debe pensar en bloques, no en hilos individuales.

Conozca el fragmento

Un fragmento es el tipo de datos de WMMA que contiene la parte de un warp de un bloque de matriz. Cada hilo posee internamente algunos de sus elementos.

Tres funciones de los fragmentos

Declare fragmentos etiquetados como matrix_a, matrix_b o accumulator. La etiqueta indica a WMMA cómo participa el bloque en la multiplicación con acumulación.

Las formas de los bloques son fijas

Los fragmentos utilizan tamaños de bloque establecidos, como 16 por 16 por 16. Elija una forma compatible; el hardware solo acepta esas combinaciones.

Paso 1: cargar

Primero, llame a load_matrix_sync para transferir un bloque de la memoria a un fragmento. Esta carga distribuye los datos entre el warp automáticamente.

wmma::load_matrix_sync(a_frag, ptr, ldm);

Paso 2: borrar el acumulador

Antes de sumar, ponga a cero el bloque de resultados con fill_fragment. Un acumulador limpio garantiza que las sumas comiencen desde un valor conocido.

wmma::fill_fragment(c_frag, 0.0f);

Paso 3: multiplicar y acumular

La llamada principal es mma_sync. Ejecuta D = A por B más C en los fragmentos cargados utilizando directamente los Tensor Cores.

wmma::mma_sync(c_frag, a_frag, b_frag, c_frag);

Paso 4: almacenar

Por último, store_matrix_sync escribe el fragmento acumulador de nuevo en la memoria. Este almacenamiento reúne las partes de cada hilo en un único bloque.

wmma::store_matrix_sync(out, c_frag, ldm, layout);

Sync significa sincronización del warp

El sufijo _sync recuerda que cada llamada de WMMA es sincrónica respecto al warp. Los 32 lanes deben alcanzarla juntos o el comportamiento será indefinido.

Disposición y dimensión líder

Las cargas y los almacenamientos necesitan la dimensión líder, el salto entre filas, además de una disposición por filas o por columnas para leer correctamente la memoria.

Comprobación rápida

¿Qué llamada de WMMA ejecuta realmente la multiplicación de matrices con acumulación en los Tensor Cores?

Resumen

Ha recorrido el flujo de WMMA: declarar un fragmento, cargar los bloques, borrar el acumulador, llamar a mma_sync y, después, almacenar. Cada paso es sincrónico respecto al warp. 🙌

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 «API de fragmentos de WMMA» es gratis?

Sí — el texto completo de «API de fragmentos de WMMA» 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 «API de fragmentos de WMMA»?

Cargar, ejecutar mma_sync y guardar fragmentos 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 3 de 4.

¿Cuánto tiempo toma la lección «API de fragmentos de WMMA»?

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é calculan los Tensor Cores
  2. Precisión mixta: FP16, BF16 y TF32
  3. API de fragmentos de WMMA
  4. Compromisos de estabilidad numérica
← Volver a CUDA Academy