0Pricing
Mojo Academy · Lección

Vectorizar un bucle

Convierta un bucle escalar en trabajo vectorial.

Vectorizar un bucle es una lección gratuita de Mojo Academy en CoddyKit. Esta es la lección 4 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.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

The Scalar Loop

A plain loop touches one element per step. It is clear but leaves your CPU's vector lanes mostly unused.

for i in range(n):
    out[i] = a[i] + b[i]

The Vector Idea

Vectorizing means each loop step handles a whole pack of elements instead of one. You do more work per iteration.

Load a Chunk

Instead of one value, you load several at once into a SIMD vector. That single load grabs a slice of your data.

var chunk = a.load[width=4](i)

Compute the Whole Chunk

With both chunks in SIMD form, add them in one element-wise step. The math covers every lane at once.

var sum = a.load[width=4](i) + b.load[width=4](i)

Store the Result

Write the whole SIMD result back in one move with a vector store. One write covers all the lanes you computed.

out.store[width=4](i, sum)

Step by the Width

A vectorized loop advances by the width, not by one. Each pass covers a full pack of elements.

for i in range(0, n, 4):
    pass

Let Mojo Drive It

Mojo's vectorize helper runs a closure across the range in vector steps and handles the bookkeeping for you.

from algorithm import vectorize

A vectorize Closure

You write a small parameterized function that processes one chunk. Mojo calls it with the right width as it sweeps the range.

fn work[w: Int](i: Int):
    out.store[width=w](i, a.load[width=w](i) + b.load[width=w](i))

Run the Vectorize

Call vectorize with your chunk function, the width, and the total size. It does the looping and the tail for you.

vectorize[work, 4](n)

Same Result, Far Faster

The vectorized loop gives identical output to the scalar one but moves through data in big steps, so it finishes sooner.

Measure to Confirm

Always time both versions. Vectorization usually wins big, but a benchmark proves the gain on your real data.

Quick Check

You replace a one-element-per-step loop with SIMD loads and stores. How should the loop advance?

Recap

Vectorizing loads and stores whole chunks, steps by the width, and lets vectorize handle the sweep and tail, giving the same result far faster. 🚀

Preguntas frecuentes

¿La lección «Vectorizar un bucle» es gratis?

Sí — el texto completo de «Vectorizar un bucle» 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 «Vectorizar un bucle»?

Convierta un bucle escalar en trabajo vectorial. 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 4 de 4.

¿Cuánto tiempo toma la lección «Vectorizar un bucle»?

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. Conozca el tipo SIMD
  2. Cálculo SIMD elemento a elemento
  3. Elegir un ancho SIMD
  4. Vectorizar un bucle
← Volver a Mojo Academy