0Pricing
Mojo Academy · Lección

Construir una multiplicación de matrices paso a paso

De bucles ingenuos a un kernel real.

Construir una multiplicación de matrices paso a paso es una lección gratuita de Mojo 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 Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.

Qué calcula matmul

La multiplicación de matrices, o matmul, combina una matriz M por K con una matriz K por N para producir un resultado M por N. Es el núcleo de las operaciones matemáticas de la IA.

La regla del producto escalar

Cada celda de salida es un producto escalar: recorra una fila de A y una columna de B, multiplique y sume sus elementos.

Tres bucles anidados

La versión ingenua utiliza tres bucles sobre i, j y k. Los dos exteriores seleccionan la celda de salida y el interior suma los productos.

for i in range(M):
    for j in range(N):
        for k in range(K):
            C[i, j] += A[i, k] * B[k, j]

Comience cada celda en cero

Antes de acumular, establezca cada celda del resultado en cero. De lo contrario, los valores antiguos o basura contaminarán la suma.

C[i, j] = 0.0

Acumule la suma

El bucle interior sobre k mantiene un acumulador progresivo. Sumar en una variable local suele ser más rápido que acceder a C en cada paso.

var acc: Float32 = 0.0
for k in range(K):
    acc += A[i, k] * B[k, j]
C[i, j] = acc

Use fn para obtener velocidad

Escriba el kernel con fn y argumentos tipados. Los tipos estrictos permiten a Mojo compilar código máquina compacto sin sobrecarga dinámica.

fn matmul(A: Matrix, B: Matrix, C: Matrix):
    pass

Por qué la versión ingenua es lenta

El triple bucle básico realiza las operaciones correctas, pero lee B por columnas y salta por la memoria. Una mala localidad desperdicia caché y tiempo.

El orden de los bucles importa

Reordenar a i, k, j hace que el bucle interior recorra la memoria en líneas rectas. Unos mejores patrones de acceso pueden acelerar mucho matmul.

for i in range(M):
    for k in range(K):
        for j in range(N):
            C[i, j] += A[i, k] * B[k, j]

El bucle interior es el objetivo

Casi todo el tiempo se concentra en el bucle más interno. Ese bucle interior crítico es exactamente donde la vectorización y el ajuste ofrecen beneficios.

La corrección es lo primero

Haga funcionar correctamente la versión sencilla y guarde su salida. Se convertirá en la referencia con la que comparará cada kernel más rápido.

El camino hacia un kernel real

A partir de aquí puede añadir SIMD, tiling y paralelismo. Cada paso conserva el mismo resultado, pero aumenta el throughput hacia la velocidad máxima del hardware.

Comprobación rápida

¿Por qué el matmul del triple bucle de los libros de texto suele ser lento en la práctica?

Resumen

Matmul suma un producto escalar por cada celda de salida mediante tres bucles; inicialice las celdas en cero, acumule localmente y tenga en cuenta el orden de los bucles para la caché. 🔢

Preguntas frecuentes

¿La lección «Construir una multiplicación de matrices paso a paso» es gratis?

Sí — el texto completo de «Construir una multiplicación de matrices paso a paso» 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 Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Construir una multiplicación de matrices paso a paso»?

De bucles ingenuos a un kernel real. Practicas Mojo 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 Mojo Academy?

No se requiere experiencia previa. Mojo 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 «Construir una multiplicación de matrices paso a paso»?

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 Mojo Academy?

Sí. Cada lección de Mojo 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. Modelar un tensor en Mojo
  2. Construir una multiplicación de matrices paso a paso
  3. Optimizar el producto escalar
  4. Verificar la corrección numérica
← Volver a Mojo Academy