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.