O processador Apple M1, que equipa os novos Macs, representa a mudança de arquitetura (outra) da maçã, desta vez deixando o x86 da Intel em prol do ARM. Os novos produtos chegaram e começaram a ser esmiuçados pelo público e especialistas, e muita gente se empolgou com a suposta alta performance do chip, que consegue superar mesmo processadores ultra premium da Intel, consumindo bem menos energia.
No entanto, nem todo mundo se atentou às diferenças cruciais de arquitetura entre o Apple M1 e os chips CISC x86, que influem no desempenho single core.
Não vou entrar em detalhes sobre como um chip RISC funciona em comparação a um CISC, o Cardoso já usou a analogia da cozinha e do bolo e ela serve muito bem, e são pontos válidos para analisar o funcionamento de um chip ARM e de um x86. De fato, um RISC consegue fazer uma tarefa em menos ciclos, e consequentemente, gasta menos energia.
O custo da evolução do CISC, que agrega milhares de soluções a serem resolvidas por hardware, diferente do RISC que depende de software, se refletiu no aumento do clock dos processadores e no consumo energético. Com o tempo, uma solução foi proposta para otimizar a execução das tarefas, ou threads, de modo simultâneo.
O multithreading surgiu como um conceito que permite a um processador usar suas áreas ociosas com a execução de uma thread, para atender outra thread de um mesmo processo. Esse conceito foi implementado na tecnologia original Super threading (ST), mas deu um salto com a Simultaneous multithreading (SMT), que a Intel chama de Hyper Threading, ou HT.
Esta permite que o computador reconheça um núcleo do processador como dois, um físico e um virtual, permitindo a execução paralela de threads que não necessariamente precisam ser de um mesmo processo. Isso permite a um chip fazer mais com menos ciclos, o que originalmente derrubou o clock final dos processadores com SMT em relação aos seus antecessores.
O SMT/HT é muito vantajoso em operações multi core, mas quando passamos para o single core, a coisa muda de figura: como o processador não pode usar o recurso para potencializar a execução da tarefa com toda a potência do processador, uma thread inteira fica ociosa. É por isso que chips modernos endereçam duas threads por núcleo por vez.
É irônico, mas um processador com SMT é menos eficiente trabalhando em single threading do que em multithreading.
O Apple M1, assim como todo processador RISC/ARM, não tem esse problema. Por design, o chip só precisa de uma thread para saturar um núcleo, e ele irá funcionar a toda potência sempre. Os benchmarks lançados depois da chegada do Apple M1 apontam um desempenho estelar em single core quando comparado a processadores poderosos da Intel, incluindo o monstruoso Core i9-10900K, que conta com um clock de até 5,3 GHz com TurboBoost e TDP de 120 Hz.
O que ninguém se atentou, no entanto, é que o núcleo dos processadores x86 opera “capado”, com entre 75 e 80% de sua capacidade, enquanto o núcleo RISC do Apple M1 está sempre no talo. A demonstração da maçã e os testes de usuários apontavam que o novo chip iria destruir os da Intel e da AMD, mas tais dados não refletem a realidade de maneira precisa.
Como os benchmarks em geral não levaram em conta essa diferença crucial nas arquiteturas CISC e RISC, todo mundo foi levado a crer que o Apple M1 é de fato imbatível em performance single core, quando na verdade estamos vendo uma comparação entre o Tesla Roadster e o Model 3. Ambos são potentes, mas o segundo não tem suporte em design para ir mais rápido.
O site WCCFTech compilou dados comparando o Apple M1 e processadores x86, considerando a perda de performance em tarefas single core, de modo a demonstrar a real posição do processador dos novos Macs em relação aos concorrentes. A prova de conceito demonstrada traz resultados mais fidedignos ao que realmente acontece, ao ocupar o núcleo x86 parcialmente ocioso com duas threads, para que ele também possa operar a 100%.
Como resultado, o Apple M1 perde em potência single core para o AMD Ryzen 4800U e para o Intel Core i9-9980HK. Ele é um processador poderoso, disso não há dúvidas, mas ainda permanece dentro de uma escala próxima a de seus rivais x86, ao invés de ficar léguas à frente.
Este modelo de comparação é fiel para retratar a performance de chips RISC/ARM para desktops em comparação aos CISC x86, mas apenas no que diz respeito aos núcleos, não às threads. Forçar o Apple M1 e similares a executar 2 threads por núcleo é empurrar um caso de uso para o qual o chip não foi desenhado. Ao mesmo tempo, testes de uma thread por núcleo são comprovadamente injustos com processadores Intel e AMD.
A questão é que os benchmarks single core atuais não levam isso em conta e exibem resultados falsos, que não refletem a real diferença entre o Apple M1, que funciona a 100% e núcleos x86, que vão operar abaixo disso. Usar o modelo 2T1C (2 threads, 1 núcleo) no x86 e 1T1C no Apple M1 também não é ideal, porque o teste só é fiel na capacidade dos núcleos, mas o chip da maçã está rodando uma thread a menos.
Não há vantagem em usar 2 threads para alcançar igualdade de saturação em relação ao Apple M1, quando este foi desenhado para suportar uma thread por padrão. Ao mesmo tempo, é preciso levar em conta que a performance do chip cai entre 20% e 30% para rodar aplicativos desenvolvidos para os chips Intel, e isso implica também maior consumo de energia.
Em última análise, talvez não seja possível ter uma comparação de performance single core justa entre SRM e x86, o que pode ser visto como um indicador de que o design CISC para desktops está no limite.
Muito provavelmente, a Apple percebeu isso também.
Fonte: WCCFTech, ExtremeTech
Source link