
O que é a memória cache
Antes de explicar o que é AMD Infinity Cache, consideramos necessário abordar o conceito de memória cache de forma sucinta. Este tipo de memória está presente na CPU e GPU, embora nesta ocasião estejamos interessados em conhecer a da GPU.
A memória cache é uma memória onde a CPU e GPU armazenam temporariamente dados recentemente processados para que no futuro não tenham que esperar e o desempenho seja aumentado. Portanto, a memória cache está dentro do die da CPU e GPU, não fora.
Organiza-se em vários níveis: L1, L2, L3 e, até mesmo, L4. Os níveis mais baixos têm menos memória, mas são mais rápidos; os níveis mais altos costumam estar mais longe dos núcleos do chip e demoram alguns ciclos a mais para aceder, mas têm mais capacidade.
Tudo gira em torno do "dado": se encontra o dado é um hit, e se não o encontra é um miss:
- A GPU procura primeiro o dado na L1; se o encontrar, obtém-no e a instrução é executada rapidamente.
- Se não o encontrar na L1, passará para a L2.
- O mesmo acontece com L3 e L4.
E se não o encontrar em nenhum nível de cache? A CPU irá para a RAM, enquanto a GPU irá para a VRAM. O problema disso é que a RAM está fora da CPU, assim como a VRAM também está fora da GPU. Isso resulta em mais latência, devendo dizer que demora mais e que o desempenho cai.
Por que pode ser que não encontrem o dado na memória cache? Porque, em geral, a memória cache da CPU e GPU tem pouca capacidade, exceto no caso da AMD. Foi "a equipa vermelha" que defendeu o aumento da memória cache nos seus chips após analisar bem este problema, pois a maioria das memórias cache não ultrapassa os 30-40 MB.
O que é AMD Infinity Cache
Infinity Cache é uma memória cache semelhante à L3 que se encontra dentro do chip da GPU, que promete melhorar a eficiência e o desempenho em jogos a 4K e 1440p. A ideia era colocá-la em funcionamento juntamente com a memória GDDR6 que as placas gráficas AMD Radeon de 256 bits e 16 Gbps usam.
Dizem as "más línguas" que os engenheiros da AMD precisavam de fugir de um bus de 512 bits porque o seu consumo era alto e era muito caro fabricar GPUs com esta especificação. Desta forma, a AMD apresentou-o como "desempenho de alta largura de banda"
Como se consegue essa melhoria de desempenho? Com o acesso imediato aos dados para que a renderização das texturas do jogo seja mais rápida. Claro que, quanto mais memória cache tivermos, melhor, certo?
Tudo começou com as AMD Radeon RX 6800, 6800 XT e 6900 XT porque a GPU Navi 21 (variantes) e o próprio Infinity Cache: 128 MB. Até agora, as placas gráficas vinham com cache L1 e L2, sendo mais interessante porque a latência é menor, assim como são mais pequenas.
Como funciona
O processo seria o seguinte:
- Cada AMD Radeon vem com várias CU ou Compute Units;
- Quando uma CU precisa de um dado vai para a cache L0.
- Se não o encontrar, passará de nível para L1, depois para L2 e assim sucessivamente.
- Finalmente, irá para a VRAM, que é o último caso.
Se a este processo adicionarmos uma cache L3, a CU não vai tanto à VRAM para obter um dado porque poderá armazenar mais na cache L3. Não apenas uma cache L3 qualquer, mas uma cache de 128 MB como era o caso das RX 6000 de gama alta.
Quantos FPS aumenta?
Isso dependerá do videojogo, sendo sabido que há títulos que favorecem mais as GPUs NVIDIA, como outros favorecem as GPUs AMD. A equipa de Lisa Su mede-o numa "taxa de acertos", que obteve selecionando certos jogos a 4K. Segundo a AMD, a taxa de acertos da Infinity Cache é de 58%, ou seja, em 58% das vezes a GPU não teve que ir à VRAM para obter um dado.
Obviamente, o mais preciso ao comparar é ter 2 placas gráficas com a mesma VRAM ou o mais semelhante possível.possível para apreciar o impacto de ter mais cache L3. Dito isto, o desempenho não dependerá exclusivamente do Infinity Cache, mas também importa a VRAM que têm, a largura de banda, o bus, os shaders que as GPUs incorporam, os Ray Accelerators em Ray Tracing, etc.
Se é tão bom, por que a NVIDIA não o tem?
No final, cada marca tem a sua arquitetura determinada e o seu design de GPU específico. Por exemplo, pensa que a AMD apostou num design MCM em algumas das Radeon RX 7000, enquanto a NVIDIA continuou com o die monolítico.
A NVIDIA não aposta na abordagem de aumentar a memória cache a esse nível, embora seja verdade que aumentou a sua cache nas suas RTX 4000. As possibilidades poderiam ser:
- Estrutura de CUDA Cores, Tensor Cores e RT Cores. Se comparares modelos de ambas as marcas, verás que a NVIDIA incorpora mais peças de hardware dedicadas ao render de texturas, bem como para o Ray Tracing e o DLSS (Tensor). Isto tem um custo e consome um espaço importante na GPU.
- A memória cache L3 da AMD ocupa muito espaço no die. Isto faz com que tenhas que otimizar espaço e, isto, pode ser um problema para a NVIDIA.
- A arquitetura da NVIDIA não requer tanta memória cache.
- Poupança de custos. Implementar mais memória cache significa aumentar os custos de produção.
- Prefere aumentar a VRAM e apostar em GDDR6X, que é mais cara que a GDDR6.
Placas gráficas AMD com Infinity Cache
Claro que, se fosse uma abordagem falhada, a AMD não recorreria a ela depois de usar as RX 6000 como cobaias. Também vemos Infinity Cache nas AMD Radeon RX 7000, embora tenham apostado em menos MB por GPU.
Escolhe a tua GPU AMD com Infinity Cache para voar em QHD e 4K, mereces isso!