GPU para jogos vs placas gráficas HPC, semelhanças e diferenças

GPU para jogos vs placas gráficas HPC

Atualmente, existem dois mercados diferentes para os quais as placas de vídeo se destinam. O mais popular é o jogo, onde dezenas de milhões de fãs de videogame para PC os usam para jogar com a melhor taxa de quadros possível e / ou os melhores gráficos. O outro mercado é para computação de alto desempenho ou GPUs HPC. Como os dois tipos de gráficos são diferentes?

Não há dúvida de que as placas gráficas passaram por uma grande evolução nos últimos anos. Eles não apenas oferecem a capacidade de reproduzir gráficos cada vez mais realistas, mas seu poder de computação também é usado para aplicações científicas de todos os tipos, o que lhes permitiu alcançar mais mercados do que os videogames. Mas em diferentes mercados soluções diferentes e como já se sabe, ambos NVIDIA e AMD têm arquiteturas projetadas para o que é a reprodução de videogames por um lado e por outro lado para a computação científica.

Em um nível geral, eles compartilham uma série de elementos comuns, mas trazem consigo uma série de elementos diferenciais que os torna criaturas diferentes se compararmos um HPC GPU arquitetura com uma GPU de jogos. É por isso que decidimos falar sobre as diferenças entre os dois tipos de GPU.

Precisão de dados, a principal diferença em GPU HPC e jogos

Em um videogame, o fato de um dado não ser totalmente preciso não é um problema, já que geralmente se trabalha com o que matematicamente chamamos de aproximação. Que consiste em utilizar figuras de menor precisão, mas com o suficiente para realizar uma simulação aproximada. Isso se deve ao fato de que a quantidade de bits que podemos atribuir aos dados nas ALUs são limitados e mais bits por ALU, mais transistores e com isso, o tamanho dos transistores é maior. Como o orçamento do transistor de uma GPU comercial é limitado e a precisão dos dados não é tão importante, esse sacrifício acaba sendo feito.

Mas na computação científica é diferente, a precisão dos dados é muito importante para realizar os cálculos. Uma simples variação nos dados pode fazer com que o modelo com o qual você está trabalhando se desvie muito ou obtenha resultados errôneos. Imagine o desastre que seria se uma GPU de baixa precisão fosse usada para calcular certos elementos ao criar um novo medicamento e que, por falta de precisão, um erro acabasse resultando em um desastre para a saúde. Portanto, muitas das GPUs projetadas para HPC usam ALUs de ponto flutuante de 64 bits de precisão. O que normalmente não vemos nas GPUs usadas para jogos é um fato muito óbvio.

O uso de instruções de maior precisão requer a implementação de ALUs especializadas e com isso mudanças em toda a unidade de sombreador, não só no que diz respeito à implementação dessas ALUs, mas também no que diz respeito aos registros, conjunto de instruções e intercomunicação.

A estrutura de custos é diferente em uma GPU HPC

HBM 2

No mercado consumidor, por exemplo, não é possível vender uma GPU grande, porque o que os clientes podem pagar é muito pouco, nem podem ser usados ​​tipos de memória extremamente caros como a memória HBM. Que apesar de ser melhor em duas das três variáveis ​​(tamanho e consumo), perde em termos de custos em relação à memória GDDR6, que é muito mais barata.

A limitação de custo não ocorre no caso das GPUs HPC, uma vez que são projetadas para um mercado onde altos custos tornam lucrativo o uso de memórias do tipo HBM. Portanto, as GPUs desse tipo geralmente usam esse tipo de memória em vez de GDDR6. Se seus clientes estão dispostos a pagar o custo por um tipo melhor de memória, eles o farão.

A outra razão é que supercomputadores e data centers que fazem uso de GPUs HPC é o fato de que normalmente já têm seu consumo de energia orçado previamente onde cada watt utilizado tem que ser aproveitado ao máximo. Devido ao fato da memória HBM ter um consumo muito menor em pJ / bit do que GDDR6 acabou se impondo nesse mercado e isso fez com que todos os projetos de GPU HPC futuros baseados no uso deste tipo de memória, o que requer o uso de intermediários e, portanto, de estruturas 2.5DIC.

Mercados diferentes, necessidades diferentes

Nvidia-A100-HPC

As GPUs para renderizar gráficos utilizam uma série de unidades que chamamos de função fixa devido ao fato de não serem programáveis. O trabalho dele? Execute certas funções repetitivas e redundantes ao gerar os gráficos em tempo real que vemos na tela. As placas de vídeo HPC são diferentes, muitas dessas unidades não precisam delas e, portanto, não as usam.

Normalmente, a alteração mais simples na conversão de uma GPU de jogos em uma GPU HPC começa com o bloqueio da saída de vídeo. Mas, como vimos nas outras duas seções, as GPUs HPC vão além disso. O que é verdade é que os fabricantes tendem a deixar esses tipos de unidades em suas GPUs HPC. O que é paradoxal para dizer o mínimo, especialmente no caso das GPUs usadas no NVIDIA Tesla onde as diferentes unidades não são usadas. A AMD, por outro lado, em seu AMD Instinct baseado em CDNA os eliminou completamente da equação.

Por que as unidades não utilizadas ainda estão lá? Pois bem, pelo facto de ocuparem pouco espaço, são desligados quando não são utilizados e é um trabalho maior retirá-los do meio e reconfigurar todo o desenho sem eles do que mantê-los. Afinal, eles não são processadores completos e ocupam muito pouco espaço. O suficiente para não incomodar apesar de estar lá. Embora a maior mudança seja no processador de comandos gráficos, a maioria das GPUs HPC têm essa unidade desativada e, portanto, não podem processar a lista de exibição criada pelo CPU para gerar gráficos.