Pelo contrário. Representação em virgula flutuante é bastante comuns nos sistemas actuais, mesmo nos móveis especialmente para o raciocínio lógico de criptografia. Igualmente para ML, face/object detection, HDR/Gaussian Blur/Inpainting, etc. Esse workload é especialmente optimizado no ISA ARM(A64), igualmente justificado pela crescente implementação de vector e ML co-processors, bem como image signal processors(ISP) como o Pixel Visual Core e Spectra da Qualcomm. A capacidade desses co-processadores especializados nessas tarefas que descrevi ultrapassa facilmente a grande maioria dos general processing units actuais.
Eu não consigo concordar com a parte "Esse workload é especialmente optimizado no ISA ARM(A64)". Ou pelo menos, a maior parte dos benchmarks que eles usam não estão assim tão "apontados" para o mercado móvel.
Eu vejo ali 3 benchmarks onde um processador do mercado móvel poderá estar mais optimizado. Face Detection, Speech Recognition e Machine Learning. No entanto há ali muita coisa bastante "genérica. Sqlite, PDF Rendering, compilação, text rendering, etc.
Além disso, também não faltam instruções especializadas em x86. Criptografia é um exemplo. Vector tens em SSE e AVX. ML, penso que só em AVX512 nos Intel "Ice Lake", que a bem da verdade, a Apple ainda não usa.
Seria interessante saber o que é executado nos cores genéricos e o que não é, nas diferentes plataformas.
Das duas uma, ou corres código nativo ou terás que usar um interpreter/VM que corre por cima da camada abstracta(tem os seus limites), situação pouco adequada performance-wise(temos o exemplo da virtualização Win32 no kernel ARM64 do Windows 10).
Qual é o problema de correr código nativo em ARM? Até Windows corre nos Snapdragons (e noutras plataformas, com hacks). Linux é banal. BSD é banal.
Mesmo que existam rotinas de simplificação aritmética, o ISA x86(e x86-64 como extensão desta) é uma representação de um design CISC.
Sim é uma representação CISC, mas que não são executados directamente pelos processadores x86.
Tenho quase a certeza que o mesmo acontece em plataformas RISC, como ARM e PPC. As instruções são divididas em micro ops.
Não disse o contrário, aliás há muitos mais como por exemplo Jazelle, Thumb entre outros, simplesmente num contexto de ISA CISC não há execução directa em RISC, e isto sem ter em conta extensões como por exemplo AVX que aquando compilação requerem assembly especifico, similarmente ao NEON quando é compilado para ARMv8-A/AArch64.
Como disse atrás, o mesmo se passa em plataformas RISC. Não há execução directa das instruções.
De outra forma como irias obter paridade de resultados entre as várias plataformas? A PrimeLabs usa o cross-compiler Clang 8.0/LLVM para Windows, Linux e Android, resta acreditar que aquando do assembling/linking, este foi devidamente acelerado para além do baseline.
Não se iria obter paridade, por isso é que afirmei que são os mesmos testes. Há benchmarks que na plataforma móvel, não são iguais às plataformas Desktop e os resultados não podem ser comparados.
Quanto à forma como compilaram os benchmarks, quero acreditar que não favorecem ou desfavorecem uma ou mais plataformas.
Sei que o Geekbench 4 usava AVX256 em x86 em alguns dos testes, por exemplo.
Já agora, o scrore de Geekbench que o
@hildeberto colocou, do A13, fica muito perto de um Ryzen.