Construindo uma multiplicação de matrizes passo a passo
De laços ingênuos a um kernel real.
Construindo uma multiplicação de matrizes passo a passo é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.
O que o Matmul Calcula
A multiplicação de matrizes, ou matmul, combina uma matriz M por K com uma matriz K por N para produzir um resultado M por N. Ela é o coração da matemática de IA.
A Regra do Produto Escalar
Cada célula de saída é um produto escalar: percorra uma linha de A e uma coluna de B, multiplicando e somando à medida que avança.
Três Laços Aninhados
A versão ingênua usa três laços sobre i, j e k. Os dois laços externos escolhem a célula de saída, e o interno soma os produtos.
for i in range(M):
for j in range(N):
for k in range(K):
C[i, j] += A[i, k] * B[k, j]Comece Cada Célula em Zero
Antes de acumular, defina cada célula do resultado como zero. Caso contrário, valores antigos ou lixo de memória contaminarão a soma.
C[i, j] = 0.0Acumule a Soma
O laço interno de k mantém um acumulador corrente. Somar em uma variável local costuma ser mais rápido do que acessar C a cada etapa.
var acc: Float32 = 0.0
for k in range(K):
acc += A[i, k] * B[k, j]
C[i, j] = accUse fn para Ganhar Velocidade
Escreva o núcleo com fn e argumentos tipados. Tipos rigorosos permitem que Mojo compile código de máquina otimizado, sem sobrecarga dinâmica.
fn matmul(A: Matrix, B: Matrix, C: Matrix):
passPor que a Versão Ingênua é Lenta
O laço triplo básico faz a matemática correta, mas lê B por coluna, saltando pela memória. A baixa localidade desperdiça cache e tempo.
A Ordem dos Laços Importa
Reordenar para i, k, j mantém o laço interno percorrendo a memória em linhas contínuas. Melhores padrões de acesso podem acelerar muito o 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]O Laço Interno é o Alvo
Quase todo o tempo está no laço mais interno. É exatamente nesse laço interno crítico que a vetorização e o ajuste fino trazem benefícios.
Correção em Primeiro Lugar
Faça a versão simples funcionar corretamente e salve sua saída. Ela se torna a referência com a qual você compara cada núcleo mais rápido.
Um Caminho até um Núcleo Real
A partir daqui, você adiciona SIMD, blocagem e paralelismo. Cada etapa mantém o mesmo resultado, mas aumenta a vazão em direção à velocidade máxima do hardware.
Verificação rápida
Por que o matmul com laço triplo dos livros costuma ser lento na prática?
Recapitulação
O matmul soma um produto escalar por célula de saída usando três laços; comece as células em zero, acumule localmente e preste atenção à ordem dos laços para aproveitar o cache. 🔢
Aprenda Mojo com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Construindo uma multiplicação de matrizes passo a passo” é grátis?
Sim — o texto completo de “Construindo uma multiplicação de matrizes passo a passo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.
O que vou aprender em “Construindo uma multiplicação de matrizes passo a passo”?
De laços ingênuos a um kernel real. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Mojo Academy?
Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Construindo uma multiplicação de matrizes passo a passo”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Mojo Academy?
Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelando um tensor em Mojo
- Construindo uma multiplicação de matrizes passo a passo
- Otimizando o produto interno
- Verificando a correção numérica