Conoscere il tipo SIMD
Un vettore di valori elaborati insieme.
Conoscere il tipo SIMD è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
One Value at a Time Is Slow
A normal Int holds a single number, so math happens one value at a time. For AI you often need to crunch many numbers at once.
Meet SIMD
SIMD means Single Instruction, Multiple Data: one operation applied to a whole pack of numbers in a single step.
A Vector of Values
In Mojo the SIMD type holds several values of the same kind together, like a tiny fixed-size vector handled as one unit.
var v = SIMD[DType.float32, 4](1, 2, 3, 4)Two Type Parameters
A SIMD type takes two parameters in brackets: the element DType and how many lanes it holds, like SIMD[DType.int32, 4].
alias Pack = SIMD[DType.int32, 4]DType Picks the Element Kind
The first parameter is a DType such as float32 or int32. It decides what each lane stores and how big it is.
var x = SIMD[DType.float32, 4](0.5, 1.5, 2.5, 3.5)Width Is the Lane Count
The second parameter is the width: the number of values packed side by side. A width of 4 means four numbers travel together.
var four = SIMD[DType.int32, 4](10, 20, 30, 40)Width Is a Power of Two
SIMD widths are powers of two like 1, 2, 4, 8, or 16. This maps cleanly onto the lanes your CPU offers.
var eight = SIMD[DType.float32, 8](0)A Scalar Is Width One
Even a plain number is really a SIMD of width 1 in Mojo. Scalars and vectors share the same underlying type.
var one = SIMD[DType.float32, 1](3.14)Indexing the Lanes
You can read a single lane by index just like a list. Lane 0 is the first value in the vector.
var v = SIMD[DType.int32, 4](5, 6, 7, 8)
print(v[0])Fill Every Lane at Once
Passing one value fills all lanes with it. This is a quick way to make a SIMD vector of constant values.
var zeros = SIMD[DType.float32, 4](0)Why SIMD Is Fast
Because the CPU acts on a whole pack in one instruction, SIMD does more work per cycle. That is the heart of vectorization.
Quick Check
You declare SIMD[DType.float32, 4]. What do those two parameters mean?
Recap
SIMD packs several same-typed values into one vector set by a DType and a power-of-two width, so one instruction touches them all. 🚀
Domande Frequenti
La lezione «Conoscere il tipo SIMD» è gratuita?
Sì — il testo completo di «Conoscere il tipo SIMD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.
Cosa imparerò in «Conoscere il tipo SIMD»?
Un vettore di valori elaborati insieme. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Mojo Academy?
Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Conoscere il tipo SIMD»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Mojo Academy?
Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Conoscere il tipo SIMD
- Calcolo SIMD elemento per elemento
- Scegliere la larghezza SIMD
- Vettorializzare un ciclo