Mojo Academy · Aula

Construindo uma multiplicação de matrizes passo a passo

De laços ingênuos a um kernel real.

Aula 2 de 413 etapas

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.0

Acumule 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] = acc

Use 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):
    pass

Por 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. 🔢

Grátis para começar

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

  1. Modelando um tensor em Mojo
  2. Construindo uma multiplicação de matrizes passo a passo
  3. Otimizando o produto interno
  4. Verificando a correção numérica
← Voltar para Mojo Academy