Zubnet AIAprenderWiki › Multiplicação de Matrizes
Fundamentos

Multiplicação de Matrizes

Também conhecido como: Matmul, GEMM
A operação matemática fundamental por trás de todas as redes neurais. Multiplicar uma matriz de pesos por um vetor (ou matriz) de entrada produz um vetor de saída. Cada camada linear, cada computação de attention e cada busca de embedding é, no fundo, uma multiplicação de matrizes. O desempenho do hardware de IA (GPUs, TPUs) é medido pela velocidade com que consegue fazer multiplicações de matrizes.

Por que isso importa

Entender que redes neurais são apenas sequências de multiplicações de matrizes (com não-linearidades no meio) desmistifica todo o campo. Explica por que GPUs são essenciais (são máquinas de multiplicação paralela de matrizes), por que o tamanho do modelo é medido em parâmetros (o número de valores nas matrizes de pesos) e por que FLOPs é a unidade de computação (conta as operações de multiplica-e-soma nessas multiplicações de matrizes).

Em profundidade

Uma camada linear com dimensão de entrada 4096 e dimensão de saída 4096 multiplica uma matriz de entrada (batch_size × 4096) por uma matriz de pesos (4096 × 4096), produzindo uma saída (batch_size × 4096). Cada elemento de saída é o produto escalar de uma linha de entrada e uma coluna de peso: 4096 multiplicações e 4095 adições. Para um exemplo, são 4096 × 4096 ≈ 16,8 milhões de operações multiplica-e-soma. Para uma camada. Um Transformer de 32 camadas faz isso dezenas de vezes por camada.

Por Que GPUs

A multiplicação de matrizes é "embaraçosamente paralela": cada elemento de saída pode ser computado independentemente. Uma CPU os computa sequencialmente (rápido por elemento, mas serial). Uma GPU computa milhares simultaneamente (mais lento por elemento, mas massivamente paralelo). Uma NVIDIA H100 realiza ~1000 TFLOP/s de multiplicação de matrizes FP16 — aproximadamente 1 quatrilhão de operações multiplica-e-soma por segundo. Esse paralelismo é a razão inteira pela qual deep learning se tornou prático.

Otimização GEMM

GEMM (General Matrix Multiply) é tão central que fabricantes de hardware o otimizam obsessivamente. CUDA cores são projetados para matmul. Tensor Cores (NVIDIA) realizam multiplicações de matrizes 4×4 em um único ciclo de clock. Toda a hierarquia de memória (registradores, memória compartilhada, cache L1/L2, HBM) é organizada para manter dados fluindo para as unidades de matmul. Quando pessoas dizem que a inferência de IA é "limitada por largura de banda de memória", elas querem dizer que o hardware consegue multiplicar mais rápido do que consegue ler as matrizes da memória.

← Todos os termos
ESC