Zen 3 e SMT capaz de 3 Threads – Será esta uma arma secreta da Microsoft na futura geração?

O rumor de que as próximas Xbox usarão das primeiras versões do ZEN 3, capaz de processar 3 Threads em simultâneo, o que tornaria o seu CPU num CPU de 8 núcleos, 24 Threads, face aos 8 núcleos, 16 Threads que um Zen 2 pode oferecer. Nesse sentido torna-se pertinente perceber-se que tipo de ganhos esta situação poderia trazer.

O Zen foi o primeiro CPU da AMD que realmente penetrou convenientemente no campo de uma estrutura pensada de raiz para o multi-thread simultâneo. Para tal, partes dos núcleos poderão ter comportamentos diferentes durante a implementação do SMT.

Os threads são basicamente tarefas de processamento, sendo que há tarefas mais relevantes e outras menos relevantes. São relevantes aquelas das quais outras dependem, ou que são criticas a nível de tempo de resposta (latência) e menos relevantes aquelas que podem ser processadas paralelamente sem que haja dependências directas do processamento mais importante.

Basicamente os CPUs são desenhados para processar uma tarefa de processamento, ou Thread, por núcleo, mas com o SMT, esse valor sobe para duas tarefas, e com o Zen 3, que se fala poder vir a estar na futura Xbox, esse valor sobre para 4, sendo que as primeiras versoes do CPU, na qual se incluiria o CPU da Xbox, apenas lidarão com 3.

Nas actuais implementações do ZEN, a ideia geral para o SMT implementado na AMD é a divisão do tempo, o que quer dizer que cada thread, real ou virtualizado, terá uma fatia igual de tempo dedicado.
Ora esta nem sempre é a melhor política, especialmente quando temos um thread dominante, ou uma thread que pela sua complexidade entope todo o sistema, ou até uma thread em que queremos o resultado da mesma o mais rápido possível pois a sua latência é vital.



Nesse sentido, e percebendo esta diferença de prioridades, a AMD criou uma metodologia de marcação das threads conforme a sua relevância.

Em cada thread, O sistema analisa a sua gestão, verificando qual tem prioridade no algoritmo de cálculo.E isto quer dizer que o CPU dedicará mais recursos às threads mais relevantes para que estas sejam processadas mais rapidamente. Assim as operações que são mais sensíveis a nível de latência ou importância de cálculo, são priorizadas de forma a que o seu processamento não sofra.

Daí que a ocupação do núcleo entre as threads reais e as virtuais seja competitiva! Ou seja, apesar de o CPU poder processar mais do que uma thread em simultâneo, as threads mais relevantes podem usar o núcleo todo, dando assim 0% de processamento livre à thread virtual criada pelo SMT.

Ou seja, as threads virtualizadas podem no máximo usar 50% do núcleo, mas tal pode descer até aos zero, dependendo da ocupação do CPU no processamento mais relevante que corre sempre na thread não virtual.

Por aqui se percebe que o SMT não se comporta como um núcleo adicional real, mas sim um teórico núcleo cuja capacidade de processamento depende dos recursos que o CPU tem livres. Daí que onde ele ele é ultra relevante é na optimização do uso do CPU! Ao poder usar os recursos livres de cada núcleo com uma segunda thread, o SMT garante que os tempos em que o CPU está ocioso decrescem ou se anulam. E para processamento mais básico onde mesmo duas threads não ocupam de forma nenhuma um núcleo, esta optimização melhoraria ainda mais com o acréscimo de uma terceira ou uma quarta thread.



A questão que fica no ar quanto à eficiência adicional que pode ser aportado por um Zen 3 passa então por se perceber a real capacidade de optimização do CPU que já existe com as 16 Threads que o SMT do Zen 2 já traz, pois a grande diferença entre o SMT destes dois CPUS estará na optimização adicional que as threads extra podem trazer.
Daí que essa é a grande dúvida que paira no ar, pois somente a resposta a essa questão pode dar uma noção do que pode ou não trazer de diferença estes threads adicionais.

E nas consolas, essa questão é mais pertinente do que nunca! Tal deve-se ao facto que nas consolas a optimização do hardware é uma realidade corrente, uma vez que essa ocupação pode ser monitorizada pelas ferramentas disponibilizadas para desenvolvimento, e que são capazes de analisar a utilização do hardware. Com uma distribuição de tarefas devidamente planeada, o CPU ficará devidamente optimizado, pelo que os ganhos trazidos por mais Threads adicionais, ao serem colocados num núcleo já optimizado, serão bastante reduzidos. Reduzidos ao ponto de poder não ser compensador apostar num CPU que deverá ser forçosamente mais caro, e cujos ganhos podem ser compensados com uma melhoria nas velocidades de relógio num SMT de 2 vias tradicional.

Daí que a grande dúvida que colocamos é se a escolha da Microsoft pelo do Zen 3, com o SMT de 3 vias, se prendeu verdadeiramente com a Xbox, ou pelo facto que a empresa, para descer custos de produção, pretende usar o mesmo hardware das consolas nos seus servidores Cloud. E nos servidores cloud, com serviços que requerem processamento ligeiro, mesmo com duas threads a correr em simultâneo no CPU a sua ocupação a 100% fica longe de ser garantida. Daí que para tarefas mais mundanas que não sejam os videojogos, o SMT de 3 vias poderá efectivamente trazer vantagens, e compensar a escolha deste hardware em detrimento de hardware dedicado a servidores!

Pelo exposto, caso a implementação do SMT no Zen 3 se mantenha idêntica à atual, um SMT capaz de mais do que 2 Threads parece mostrar um interesse superior quando utilizado em servidores, do que realmente em consolas. Tal pode ser visualizado de forma muito simples, pesquisando videos na internet que comparem as performances de jogos com o SMT ligado e desligado, e percebendo-se que os ganhos, a existirem, são por norma reduzidos, sendo que, nas melhores das hipóteses, em jogos menos optimizados, eles podem alcançar valores na ordem dos 25%.



Acima de tudo perceba-se que estes ganhos não se devem a ganhos de performance do CPU, mas sim uma optimização de uso que permite usar o CPU em situações em que ele estaria ocioso, particularmente em situações em que os programadores não tiveram esse cuidado.

No entanto, jogos não optimizados no uso do CPU não são uma realidade em consolas,e nada melhor para vermos isso do que olharmos para os actuais jogos e vermos como o pequeno jaguar se tem desenrascado e competido com processadores bem mais capazes. E isso deve-se pura e exclusivamente à optimização do seu uso. Daí que o SMT de 3 Threads, a ser efectivamente usado nas futuras Xbox, aparente estar longe de poder ser uma arma secreta, e nesta fase, sem se saber que outras novidades poderão existir no CPU, ela não parece passar de algo que é implementado pelas necessidades de uso do hardware das consolas em servidores de uso mais genérico.



newest oldest
Notify of
bruno
Visitante
bruno

Surgiu agora mesmo um novo rumor que refere que a Navi apresentará melhorias ao nível das compute units que a aproximam mais da Maxwell.

E acrescenta que uma das melhorias será paralelismo ao nível das instrucoes.

Ora o VLIW, era a arquitetura anterior que lidava com isso, tinha 3 alu por SP. Com um quarto opcional.

Se o SP voltar a isso, 3 alu por SP, temos os 192 que referiste há tempos para a Navi, numa compute unit.

Mas o ponto é, será que as 3 threads Sao para alimentar individualmente as 3 ALU?

Brunoab
Visitante
Brunoab

Não lembro onde li, acho que foi no Resetera, que o Phill falou sobre isso… que os servidores xbox do xcloud são feitos para serem usados também em tarefas gerais de cloud.

veremos o que vai ser comprometido na parte de jogos para priorizar o Cloud Azure.

E esse é mais um indicio que a Sony vai sair na frente com o PS5, impossível um projeto com mais compromissos (cloud geral e jogos) sair melhor que um com menos compromissos (PS5 pesando para somente JOGOS).

Sera que teremos uma repetição?

xone infeirior ao PS4 pq foi pensando para “TVTVTVTV SPORTS”

xone2 inferior ao PS5 pq foi pensado para “cloud, azure, nuvem mágica” ?

PS: se isso se confirmar, aguardem os fanboys do xbox hypando que o xone2 tem 24 nucleos (claro que vão usar meia verdade q thread = nucleo)e falar que o PS5 tem apenas 8 nucleos.

Carlos Zidane
Visitante
Carlos Zidane

Sobre o que referes no post scriptum, te digo que já estou passando longe de qualquer fanático. Quase me fizeram tomar nojo do Xbox, o qual sem dúvida ficaria bem melhor sem esse lixo de débeis.
Torço pra que o Xbox Next seja ótimo em games e hardware e esses trolls que vão catar coquinho.

bruno
Visitante
bruno

Nao ha absolutamente nada, nenhum indicio ate agora existente, que permita concluir que a proxima Xbox sera mais fraca que a PS5. O mesmo para que sera mais poderosa.

O que ha e a garantia que desta vez a MS estara completamente focada em trazer ao publico o hardware mais poderoso possivel. A ONE X e uma declaracao bastante obvia nesse sentido.

Sobre a historia dos servidores e consolas… isso nao e nada de novo, porque ate ja houve uma consola com um chip construido para poder ser usado em paralelo com varios sistemas a rodar em simultaneo… a PS3.

Isso foi tao verdade, que ate tiveste o programa folding home que se conectava a consolas em rede para usar processamento pela nuvem para simulacao biomolecular.

E nao se pode dizer que o hardware da PS3 nao estava desenhado para jogos. Pelo contrario, o Cell permitiu efeitos que esta geracao pura e simplesmente desapareceram – recordo apenas as sequencias em uncharted 2 do edificio a colapsar – algo que nesta gercao nao vimos sequer em batlefield 4 nas consolas, ou a sequencia em Uncharted 3 no navio cruzeiro, em que tinhas dezenas de objectos a colidir uns com uns outros em tempo real.

E vou so recordar o rumor de que houve uma demo de Gt Sport a rodar a 8K 120 fps usando 4 Pro em paralelo.

E por ultimo, que a MS usara no inicio APUs da Xbox ONE S para a sua cloud.

Logo, o ser desenhado para correr num servidor ou nao, em nada prejudica o hardware base.

Sobre as caracteristicas do Zen 3 e se irao ou nao dar vantagem o que se sabe e isto: este chip permitira a um core do CPu dividir-se em 3 processar e 3 instrucoes em simultaneo, quando necessario.

Isto no funcionamento normal.

O que tambem torna obvio que e possivel forcar os nucleos a dividir-se sempre em 3 e processar em 3 paralelamente, basta programar para isso.

ha vantagens? E muito cedo para se dizer – mas pelo menos algumas melhorias ha.

Brunoab
Visitante
Brunoab

a vantagem de muitas threads por core é objetivamente para tarefas de Cloud, simples assim

A – 1 site com 1 visita rodando em uma thread em um core, ao mesmo tempo outra thread no mesmo core com b- 100 visitantes em 1 site. uma thread tem 99% e outra fica com 1%. Esse é o motivo de várias threads nos servidores. E pode ser um site em HTML e outro em PHP, cada um rodando em uma maquina virtual diferente, sendo que ninguém nunca imaginou dois SO, com dois servidores HTTP rodando no mesmo nucleo de CPU…. Coisa que acontece direto em Cloud.

A= windows com ISS rodando alguma solução da MS de hospedagem em HTML.

B= Linux com Apache rodando PHP

vc acha que o pessoal do linux e windows projetou isso para dividir um nucleo de CPU?

agora me diga onde vai ter vantagens nisso para Jogos, sendo que o desenvolvedor já sabe quantos nucleos vai ter na CPU e ele mesmo controla TODAS as threads?

E isso tudo é CUSTO, zen com 1 nucleo + 2 threads é mais caro que zen com 1 nucleo + 1 thread.

CELL esta ai para mostrar o sucesso que fez apostar em tecnologia de super computação (nome da epoca) em um video game…

bruno
Visitante
bruno

Sobre o cell, recomendo a leitura deste artigo:

https://www.pcmanias.com/obrigada-playstation-3-pelo-cell/

O cell, foi de certa forma, uma continuacao do que a Sony tinha feito na PS2 ao continuar a apostar em unidades especializadas em calculos vectoriais.

E sobre as suas vantagens: na geracao passada, jogos como Uncharted 2 e 3 e The Last of Us (e mesmo God of War Ascension), conseguiram efeitos que nao viste em mais nenhuma consola dessa geracao.

Refiro-me aos niveis do Nepal, onde estas dentro de um andar de um predio a colapsar, e aos niveis do cruzeiro em Uncharted 3, onde tens milhares de objectos em simultaneo a colidirem uns com os outros. Os programadores da Naughty Dog foram peremptorios: nunca teria sido possivel ter isso sem o Cell.

Agora, que o Hardware da PS3 nao foi perfeito? Nao, nao foi. Mas isso nao significa que, devidamente aproveitado, nao tivesse caracteristicas bastante atractivas para o desenvolvimento de jogos.

O que e preciso entender e isto sobre a questao Zen 3 vs Zen 2.

Ambos podem ter o mesmo numero de nucleos, mas:

– O Zen 3 sera indubitavelmente mais rapido em IPC que o Zen 2. E inevitavel e so nisto leva vantagem.

– O Zen 3, pode dividir virtualmente os seus nucleos em 3, ao passo que o Zen 2 os pode dividir somente em 2. Mas isso nao significa que o Zen 3 estara sempre a processar com os nucleos divididos em 3. Podem estar divididos em 2 ou nem sequer estar divididos. E uma escolha.

Os jogos tem tarefas e opracoes que precisam de ser executadas, e por muito optimizados que sejam, nao se pode dizer nunca que a possibilidade de dividir um nucleo virtualmente em 3 nucleos, com menor relogio claro, para processar mais paralelamente pequenas instrucoes e algo mau. Nao e! Podera trazer vantagens ou entao nao trazer vantagem nenhuma.

O que sei, e que o multicore tem sido considerado como uma caracteristica essencial ao processamento de fisica, porque permite realizar mais tarefas em simultaneo – e os jogos sao dos programas mais exigentes em paralelismo.

Por isso acredito que esta possibilidade nao e uma desvantagem nunca, mas sim uma vantagem.

Brunoab
Visitante
Brunoab

Lembrei de outra coisa, depois de escrever o meu post.

se o novo xbox é focado também em cloud, não seria o caso de valer a pena usar HBM?

O Stadia usa HBM, pq vai ser para jogos e uso geral em cloud…

daniel
Visitante
daniel

Uma outra coisa Mário, que pode pesar em favor da microsoft não seria o IPC do Zen 3 frente ao Zen 2? Não poderia além do aumento de threads, essa suposta terceira geração vir com uma evolução no IPC, assim como do zen 1 para o 2? Tudo é rumor, mas seria possível, sem contar no aprimoramento do zen 3 (7nm+).