O que há de Novo?
Fórum Outer Space - O maior fórum de games do Brasil

Registre uma conta gratuita hoje para se tornar um membro! Uma vez conectado, você poderá participar neste site adicionando seus próprios tópicos e postagens, além de se conectar com outros membros por meio de sua própria caixa de entrada privada!

  • Anunciando os planos GOLD no Fórum Outer Space
    Visitante, agora você pode ajudar o Fórum Outer Space e receber alguns recursos exclusivos, incluindo navegação sem anúncios e dois temas exclusivos. Veja os detalhes aqui.


FLOPS é tipo os novos bits - entenda

ragecom

Bam-bam-bam
Mensagens
1.193
Reações
1.799
Pontos
353
Então, com o anúncio do Stadia do Google, muitas pessoas ficaram impressionadas com o imagem abaixo:

20190319054554_1200_675.jpg


Beleza... O problema é que parece que a maioria das pessoas não entende 1) o que é esse número; 2) como ele foi obtido e; 3) qual a veracidade desse número. Então eu resolvi escrever um pequeno texto da maneira mais superficial que eu pude pra tentar ajudar os demais a entender. Quem manja de computação, por favor, fique à vontade pra contribuir.

P: o que é FLOPS?
R: floating-point operations per second, ou operações de ponto flutuante por segundo.
P: o que é um ponto flutuante?
R: um número real.
P: quanto mais FLOPS melhor, certo?
R: sim, mas primeiro a gente precisa entender como esse número foi obtido pra verificar se ele foi medido de verdade ou meramente estimado.
P: porque só se usa FLOPS pra medir desempenho de supercomputadores?
R: na verdade não se usa só o FLOPS. Usa-se também o MIPS (millions of instructions per second), que é o equivalente ao FLOPS pra números de ponto fixo (inteiros) - isso é particularmente interessante porque uma operação lógica recai numa comparação inteira, o que é feito o tempo todo.

Então vamos do início. Existem duas formas de analisar o FLOPS: a teórica e a prática.

A teórica se chama rpeak. O rpeak é calculado muito facilmente:

rpeak = clock * cores * inst * quant, onde:

clock é o clock do processador em gigahertz;
cores é a quantidade de cores do processador;
inst é a quantidade de instruções do processador por ciclo de hardware e;
quant é o número de processadores do computador. Claro que se o sistema for heterogêneo (sistemas distribuídos, por exemplo), o cálculo do rpeak é a soma de todos os rpeaks de cada tipo de processador.

Beleza, mas como dá pra ver, essa abordagem é totalmente teórica: ela não leva em conta absolutamente mais nada além das variáveis relativas aos processadores, quando na verdade até o meio como os processadores se comunicam possuem latência (um core falando com outro core no mesmo processador é mais rápido que um falando com outro por um barramento, que por sua vez é mais rápido do que se um estiver falando com o outro pela rede). Então na prática esse número é um teto, um limitador máximo, o melhor dos casos. Mas na prática não é o que interessa, porque dependendo da topologia do cluster, do gerenciamento da memória e de tantas outras coisas, a diferença entre o rpeak e o real pode ser imensa.

Agora vamos ver como medir FLOPS da forma prática. O resultado dessa operação dará um número de FLOPS conhecido como rmax.

Para medir o rmax, precisamos submeter o supercomputador a um teste. Geralmente se faz isso aplicando uma série de equações lineares e medindo o desempenho. Mas serve qualquer sistema de equações lineares? Sim e não... Eu explico:

Sim porque, bem, se você mandar um conjunto de equações lineares pra dois computadores resolverem e tirar a diferença, você está medindo alguma coisa pelo menos.

E não porque isso já é estudado desde os anos 60, então hoje já temos bem estabelecidos benchmarks que calculam o rmax de uma forma matematicamente eficiente com o mínimo de bias.

E quais são esses benchmarks? Bem, existem vários. Mas pelo que eu saiba o mais utilizado é o LINPACK. Existem várias implementações do LINPACK, mas em geral elas partem do seguinte pressuposto: resolver um sistema de equações lineares por meio de eliminação de Gauss, ou seja, uma abordagem matricial para o sistema de equações. A quantidade de operações é fixada em 2/3n^3 + 2n^2, então a ordem da matriz que representa o sistema de equações lineares é quem dita o tamanho do problema.

Essa matriz deve ser bem populada (não deve ser esparsa). A primeira versão especificação do LINPACK permite matrizes de ordem 100. Depois foi lançado o benchmark LINPACK 1000, que é basicamente a mesma coisa, mas permitindo o uso de matrizes de ordem 1000. Depois disso, foi criado o HPL, que é a versão do LINPACK pra computação paralela: essa é a que interessa nesse caso. A quantidade de operações é exatamente a mesma de todas as versões anteriores do LINPACK, mas o HPL funciona resolvendo o sistema de equações lineares através de fatoração lower-up da matriz que a representa. A formulação é simples:

A = LU onde,
A é a matriz original, que representa o sistema de equações lineares;
L é a matriz triangular inferior de A e;
U é a matriz triangular superior de A.

Em resumo, alguém provou matematicamente que a solução por fatoração LU é mais adequada pra medir FLOPS do que a eliminação de Gauss. Eu não entendo muito dessas coisas, então eu acredito nos caras.

Vale lembrar que o HPL não usa floats comuns, e sim doubles (pontos flutuantes de 64 bits, o dobro do float normal).

Então... Rodando o HPL, o que a gente tem? Depende... Pode ter várias coisas:

. O rmax, que é o que a gente queria;
. O nmax, que é o tamanho do maior problema submetido ao supercomputador;
. O consumo de memória pra resolução do problema no rmax;
. O nmeio, que é o tamanho do problema quando a execução do rmax chegou na metade.
. O rpeak - rmax, que pode ser usado como resíduo (estatisticamente falando), como se fosse o módulo da diferença do real pro predito, ou seja, uma medida de qualidade nesse caso;
. A temperatura dos processadores no rmax;
. Todo tipo de estatística do supercomputador.

P: e a diferença entre o rpeak e o rmax costuma ser grande?
R: Sim. Vejam a tabelinha abaixo, com o rpeak e rmax dos 10 maiores supercomputadores do mundo:
RankSiteSystemCoresRmax (TFlop/s)Rpeak (TFlop/s)Power (kW)
1DOE/SC/Oak Ridge National Laboratory
United States
Summit - IBM Power System AC922, IBM POWER9 22C 3.07GHz, NVIDIA Volta GV100, Dual-rail Mellanox EDR Infiniband
IBM
2,397,824143,500.0200,794.99,783
2DOE/NNSA/LLNL
United States
Sierra - IBM Power System S922LC, IBM POWER9 22C 3.1GHz, NVIDIA Volta GV100, Dual-rail Mellanox EDR Infiniband
IBM / NVIDIA / Mellanox
1,572,48094,640.0125,712.07,438
3National Supercomputing Center in Wuxi
China
Sunway TaihuLight - Sunway MPP, Sunway SW26010 260C 1.45GHz, Sunway
NRCPC
10,649,60093,014.6125,435.915,371
4National Super Computer Center in Guangzhou
China
Tianhe-2A - TH-IVB-FEP Cluster, Intel Xeon E5-2692v2 12C 2.2GHz, TH Express-2, Matrix-2000
NUDT
4,981,76061,444.5100,678.718,482
5Swiss National Supercomputing Centre (CSCS)
Switzerland
Piz Daint - Cray XC50, Xeon E5-2690v3 12C 2.6GHz, Aries interconnect , NVIDIA Tesla P100
Cray Inc.
387,87221,230.027,154.32,384
6DOE/NNSA/LANL/SNL
United States
Trinity - Cray XC40, Xeon E5-2698v3 16C 2.3GHz, Intel Xeon Phi 7250 68C 1.4GHz, Aries interconnect
Cray Inc.
979,07220,158.741,461.27,578
7National Institute of Advanced Industrial Science and Technology (AIST)
Japan
AI Bridging Cloud Infrastructure (ABCI) - PRIMERGY CX2570 M4, Xeon Gold 6148 20C 2.4GHz, NVIDIA Tesla V100 SXM2, Infiniband EDR
Fujitsu
391,68019,880.032,576.61,649
8Leibniz Rechenzentrum
Germany
SuperMUC-NG - ThinkSystem SD530, Xeon Platinum 8174 24C 3.1GHz, Intel Omni-Path
Lenovo
305,85619,476.626,873.9
9DOE/SC/Oak Ridge National Laboratory
United States
Titan - Cray XK7, Opteron 6274 16C 2.200GHz, Cray Gemini interconnect, NVIDIA K20x
Cray Inc.
560,64017,590.027,112.58,209
10DOE/NNSA/LLNL
United States
Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom
IBM
1,572,86417,173.220,132.77,890

Ou seja... Diante disso tudo ai que eu escrevi, algumas dúvidas vem em mente quando a gente vê esse número do Stadia:

Os 10.7 TeraFLOPS são o rpeak ou o rmax? Porque se for o rpeak não vale nada. Supondo que seja o rmax... Como foi medido isso pra começo de conversa? Com HPL? Qual implementação e configuração do sistema de equações? Qual é o desempenho dessa mesma configuração em outro supercomputador similar pra gente poder comparar?


Vejam como essa questão do FLOPS é o novo "bit". Quanto mais FLOPS melhor, mas peraí... Esse FLOPS foi obtido como? Como comparar o que um vendedor diz com outro, se os dois podem estar medindo diferente ou simplesmente jogando um rpeak no slide? FLOPS é legal, mas não é um número fechado: ele pode ser obtido de muitas formas diferentes.

Espero ter ajudado. Quem quiser contribuir, mete bala ai. Quem quiser me corrigir, idem: às vezes eu falo m****.
 

Kise Ryota

Exploiter Lixoso
VIP
Mensagens
50.425
Reações
80.033
Pontos
2.059
Confesso que nem li. Mas pra mim me parece algo bastante simples: Sabemos que eles irão usar GPUs AMD. A partir daí só comparar arquiteturas equivalentes e os FLOPS poderão posicionar aquele hardware numa tabela de performance.
 


Aigaion

Hunter of Hunters
VIP
GOLD
Mensagens
21.906
Reações
19.765
Pontos
1.219
Não sei. Só sei que RDR2 rodará melhor na plataforma que alcançar maior TFLOP.
 

dk120

Lenda da internet
Mensagens
41.894
Reações
95.019
Pontos
2.179
No sentido tecnico nem é uma boa comparação. Bits era detalhe técnico de hardware que o marketing na epoca meio que "sequestrou". Tecnicamente a "bitagem" de um processador não é parâmetro de desempenho. Teoricamente você conseguiria fazer um processador de 16 bits bem poderoso. Provavelmente ficaria uma m**** para programar, porque precisaria fazer umas loucuras para endereçar memória suficiente com apenas 16 bits, mas seria possível.

Já flops é uma ótima medida de poder bruto de um processador sim. Mas também nada da para dizer que uma plataforma com um processador que faz mais flops é automaticamente melhor que uma que faz menos, salvo se a diferença for muito grande tipo PS4 vs Switch.
 

nominedomine

Mil pontos, LOL!
Mensagens
26.422
Reações
51.458
Pontos
1.254
Alguem tinha que esconder um benchmark dentro de um jogo indie para ter ainda mais briga.
Quando o PS4 era o mais poderoso não vi tópico pra questionar flops.
Verdade, só lembro dos caixistas falando que de 720p para 1080p nao dava pra ver diferença, mesmos caixistas com olhos de aguia que conseguem perceber a diferença de 4K para Fake 4K a 1km de diferença.

Naquela epoca o foco nao era flop, era eDRAM e power of the cloud.
 

Lino Germano

Mil pontos, LOL!
Mensagens
19.475
Reações
17.133
Pontos
1.389
Jogo mais bonito = mais processamento = mais flops
Tá mas... pra mim a dúvida ainda não foi elucidada, se no frigir dos ovos quem processa os graficos é o servidor lá na pqp e no final ele apenas vai mandar um sinal de vídeo mais dados do controle e do online pro videogame na sua casa.
 

Gradior

Bam-bam-bam
Mensagens
1.355
Reações
1.642
Pontos
353
A relação entre rMax e rPeak na tabela é bem inconstante, com casos comuns na casa dos 70 - 77%, mas com um caso catastrófico de menos de 50% e um bem sucedido de 85%.
É bem provável que o mostrado é um rPeak, considerando que a Google precisa de atenção nesse momento. Mas ainda que fique "apenas" semelhante ao XOneX, seria uma grande conquista.
O que realmente me deixa curioso é o quanto a Google mediu o custo para entregar um alto processamento para um eventual "milhões de jogadores" simultâneos. Pois caso ela fracasse em entregar um bom jogo com input lag irrelevante e sem queda nos servidores, vai acabar usando todo o potencial dos seus 6, 7 ou mesmo 8 Tflops para entregar multiplayer simples e apenas single.
 

Kise Ryota

Exploiter Lixoso
VIP
Mensagens
50.425
Reações
80.033
Pontos
2.059
Microsoft é especialista em Flops, vide os jogos "exclusivos" da empresa.

Sempre que eu vejo vc metendo pau na MS por conta de "exclusivos" eu me racho de rir :klol

Na época do 360, que os sonystas só ficavam nessa de exclusivos, vc defendia o xbox dizendo que exclusivo não tinha o peso que eles diziam, que o xbox vendia bem sem precisar de exclusivos e tal. Como as pessoas mudam.

Não me leve a mal, mas eu acho engraçado os 180°s que a gente vê por aqui (provavelmente eu devo ter a minha cota também).
 

Gradior

Bam-bam-bam
Mensagens
1.355
Reações
1.642
Pontos
353
Tá mas... pra mim a dúvida ainda não foi elucidada, se no frigir dos ovos quem processa os graficos é o servidor lá na pqp e no final ele apenas vai mandar um sinal de vídeo mais dados do controle e do online pro videogame na sua casa.
Eu entendi que você perguntou sobre o porquê da necessidade de tanto poder de processamento (Tflops) se o conceito é streaming. Com relação ao "tudo isso" da sua pergunta, lá na pqp teremos um computador teoricamente mais poderoso que o XBoxX e portanto vc vai ver um lindo jogo no seu dispositivo. Mas isso se vc tiver uma Internet muito rápida, caso contrário será um pesadelo.
 

ragecom

Bam-bam-bam
Mensagens
1.193
Reações
1.799
Pontos
353
Já flops é uma ótima medida de poder bruto de um processador sim. Mas também nada da para dizer que uma plataforma com um processador que faz mais flops é automaticamente melhor que uma que faz menos, salvo se a diferença for muito grande tipo PS4 vs Switch.

Meu ponto não é que FLOPS não seja uma boa medida, ou que o Google esteja mentindo, nem nada disso... O que eu queria abordar é que falar "eu entrego 100TFLOPS" sozinho, sem explicar de onde veio esse número não diz grandes coisas.

O paralelo com os bits é mais porque o endereçamento do processador sozinho também não significa grandes coisas, como você bem pontuou. Em teoria, um processador de 64 bits lê da memória a word de 64 bits 2x mais rápido que um de 32, que precisaria de dois ciclos de hardware pra pegar o mesmo dado. Só que isso "solto" não diz nada.
 

Edhuardo0026

Bam-bam-bam
Mensagens
1.154
Reações
3.662
Pontos
303
Grandes m**** tudo isso.
Achei que seria um console novo.

Esse conceito de Streaming para países de terceiro mundo e lugares emergentes onde a internet tem uma latência alta é furada.

E que Venha PS5, XBox Two e Nintendo alguma coisa.
 

LSTRY

Bam-bam-bam
Mensagens
4.316
Reações
8.252
Pontos
453
FLOPS são irrelevantes. Tem que contar o número de jogos de nicho pra vencer a geração.

Gostei muito do post, vou guardar esse texto pra quando eu for dar aula de Cálculo Numérico pra alunos da área de computação.
 

dk120

Lenda da internet
Mensagens
41.894
Reações
95.019
Pontos
2.179
Meu ponto não é que FLOPS não seja uma boa medida, ou que o Google esteja mentindo, nem nada disso... O que eu queria abordar é que falar "eu entrego 100TFLOPS" sozinho, sem explicar de onde veio esse número não diz grandes coisas.

O paralelo com os bits é mais porque o endereçamento do processador sozinho também não significa grandes coisas, como você bem pontuou. Em teoria, um processador de 64 bits lê da memória a word de 64 bits 2x mais rápido que um de 32, que precisaria de dois ciclos de hardware pra pegar o mesmo dado. Só que isso "solto" não diz nada.


Não sei na programação de jogos, mas na programação mundana, o maior gargalo para alto desempenho é há muito tempo a latência da memória. Os processadores são muito mais rápidos que a memória. A CPU faz seus cálculos ultra rápido, mas quando precisa buscar um byte que não está em cache fica parada esperando. Isso se ameniza com cache de CPU maiores, mas a memória normal é grande demais. Hoje tem até celular com 12 GB.

Aliás, nunca entendi porquê cache de CPU é tão pouco comentado. É algo tão importante para alto desempenho.
 

Snake-Eyes

Mil pontos, LOL!
Mensagens
18.717
Reações
8.927
Pontos
1.209
Bom mas como a Sony sempre divulgou numeros teoricos em todos os sues consoles ta de bom tamanho se a Google usar esses mesmos parametos contra ela.
 

LudwigVonMises

Bam-bam-bam
Mensagens
1.253
Reações
3.231
Pontos
303
Tá mas... pra mim a dúvida ainda não foi elucidada, se no frigir dos ovos quem processa os graficos é o servidor lá na pqp e no final ele apenas vai mandar um sinal de vídeo mais dados do controle e do online pro videogame na sua casa.

Compare os seguintes vídeos, todos em 1080p, no YouTube:

  • God of War de PS2
  • God of War 3 de PS3
  • God of War de PS4
Todos estão rodando por streaming, na mesma resolução, 1080p, porém existem muitas diferenças entre os gráficos exibidos. Expressões faciais, taxa de polígonos, sombras, texturas.

Imagino que a altíssima capacidade de processamento de cada unidade do Stadia funcionaria da mesma maneira. Enquanto um Assassin's Creed de Xbox One X rodaria com texturas e sombras no high, por exemplo, o mesmo jogo no Stadia rodaria em ultra high, além de possuir um draw distance maior. Na prática, o jogo nativo do X ainda seria melhor. Streaming perde bastante claridade na imagem.

As vantagens do Stadia, na teoria, seriam rodar um jogo em 4K nativo, com HDR, 60FPS, com tudo no Ultra High, e Ray Tracing. O mesmo jogo, no Xbox One X, rodaria 4K com checkerboarding, no High ou no medium e com sombras muito mais simples. Essa é uma comparação hipotética, é lógico.

Eu ainda prefiro a experiência de rodar um jogo diretamente do console, acredito que a qualidade da imagem seria bem superior à de um streaming.
 
Ultima Edição:
Topo Fundo