Memória unificada é uma arquitetura em que a CPU e a GPU compartilham o mesmo espaço de memória física. Em vez de ter memória separada para cada processador, com cópia de dados entre elas, ambos acessam a mesma memória. Isso simplifica o desenvolvimento e permite rodar modelos maiores do que a memória dedicada da GPU permitiria.
Como funciona
Em arquiteturas tradicionais, a CPU tem sua RAM e a GPU tem sua VRAM. Para a GPU processar dados da CPU, é preciso copiá-los para a VRAM. Em memória unificada, ambos leem e escrevem na mesma memória, eliminando essa cópia.
Quando a GPU precisa de mais memória do que tem disponível, ela pode usar a memória do sistema (CPU) de forma transparente. Isso permite carregar modelos que não caberiam na VRAM, embora com desempenho menor quando acessa a memória do sistema. A troca de dados é gerenciada pelo hardware e pelo driver.
Exemplo prático
Um desenvolvedor roda um modelo de 70 bilhões de parâmetros em um computador com 64 GB de RAM unificada e 16 GB de VRAM dedicada. Com memória unificada, o modelo carrega na memória compartilhada e a GPU acessa conforme necessário. Sem isso, seria impossível rodar o modelo na GPU, e a inferência na CPU seria muito lenta.
Para que serve
Memória unificada torna viável rodar modelos grandes em hardware de consumo, como Macs com Apple Silicon e PCs com GPUs integradas. No bridgecode, agentes que rodam modelos localmente se beneficiam dessa arquitetura para executar inferência sem depender de servidores remotos.