2013/09/18

iPhone 5S mostra o poder dos 64bits


O iPhone 5s já começa a ser alvo de análises por toda a internet (em breve cá teremos também a nossa), e houve um aspecto que não resisti a partilhar convosco, por ser uma das mudanças que prometia ser mais "revolucionária" mas que alguns duvidavam que se viesse a fazer notar: a mudança de uma arquitectura de 32 bits para uma de 64 bits com o novo chip A7.

Com os primeiros testes a serem feitos... parece ficar inequivocamente demonstrado que sim.



Como sempre, haverá testes onde a diferença é maior e onde é menor, mas a diferença de desempenho entre o novo A7 de 64bits e o anterior A6 fica demonstrada de forma clara. E também o novo GPU, que marca também a estreia da nova geração de PowerVRs Serie 6 se faz notar, fazendo com que em testes como o T-Rex HD mais que duplique o desempenho face a um iPhone 5 e ultrapasse pela primeira vez a barreira dos 30fps (37fps para ser mais exacto), embora também se comporte pior noutros testes devido à nova distribuição de recursos dedicados à geometria e texturas - mas isso deixaremos para outra ocasião.

Voltando ao CPU, os 64 bits e a nova arquitectura mostram assim que fazem toda a diferença, mesmo não se tendo mais que 4GB de RAM - outra das vantagens que os 64bits possibilitarão quando se lá chegar. (E relembro que esta arquitectura ARMv8 de 64bits será igualmente utilizada por mais fabricantes, pelo que, mesmo considerando que a Apple possa ter feito algumas modificações à sua medida - estes benefícios em breve se estenderão a muitas mais plataformas e equipamentos).

Para além dos registos melhorados neste núcleo de 64 bits, esta arquitectura ARM representa um corte total com a arquitectura anterior que tinha origens em designs com cerca de duas décadas e com um enormes limitações devido à necessidade de manter a compatibilidade. Isto permitiu criar um chip "de raiz", moderno, capaz de responder às novas exigências (mesmo se mantém um modo de compatibilidade para poder correr código antigo de 32bits). Quando funciona no modo de 64bits, o chip desliga por completo todas as partes dedicadas ao processamento de 32bits, algumas das quais eram bastante complexas e gastadoras devido ao compromisso de evoluir mas manter a compatibilidade ao longo de duas décadas.

O resultado final prático é que o A7 do iPhone 5S consegue ser bastante mais rápido que o A6 do iPhone 5 (aproximadamente o dobro... como foi "prometido") e consegue fazê-lo também sem que isso se faça sentir na autonomia, que se mantém praticamente inalterada.


Outro aspecto a ter em conta e que nos relembra da rápida evolução que temos tido no segmento mobile, é que estes CPUs começam a aproximar-se assustadoramente (e até superar nalguns casos) as prestações de CPUs "desktop", como os Intel Bay Trail e AMD A4. Aquela ideia do Ubuntu Edge, de um smartphone poder servir como computador de secretária quando ligado a um monitor e teclado fica assim demonstrada que é mais que possível (e arriscar-me-ia a dizer mesmo: que é inevitável).



Em suma... excelentes notícias para todos os fãs dos equipamentos mobile. Sabendo-se que a Apple anda atrás da concorrência em termos de memória (o iPhone 5S continua a ter apenas 1GB de RAM), e com os equipamentos Android a chegarem aos 3GB de RAM, é de esperar que no próximo ano começaremos a ter Androids de 4GB e com CPUs de 64bits a darem igual salto no desempenho e eficiência. Talvez seja isso que o Google está a reservar para o Android 6.0 - o suporte para arquitecturas de 64 bits - que poderiam ser acompanhados também por um Nexus 6. ;) Daqui por um ano saberemos.

24 comentários:

  1. Android 6.0? Não quererá dizer 5.0?

    ResponderEliminar
    Respostas
    1. Tenho esperança que o Android 5.0 seja uma versão intermédia que surja mais recentemente (e ficava bonito ser um Android 6 para um Nexus 6 com suporte para 6... 4... bits. :)

      Eliminar
    2. Qualquer coisa como a versão Honeycomb?

      Estou esclarecido! ;)

      Eliminar
    3. De certeza que a Google já terá nos seus laboratórios uma versão do Android de 64 bits. Provavelmente estaria a preparar-se para o lançar lá para os finais de 2014 ou início de 2015, quando os fabricantes começassem a querer fabricar tablets ou mesmo telemóveis com mais de 4Gb de RAM. Agora, provavelmente, vão ter que acelerar o processo.

      Eliminar
  2. Penso que o Android já suporta 64bit desde o gingerbread ;-)

    ResponderEliminar
    Respostas
    1. A Samsung só precisa de um iPhone 5S para testar :)

      Eliminar
    2. Ou somente o CPU A7 (produzida pela própria Samsung)

      Eliminar
    3. Fabricado na Samsung sob licença da Apple. Mas também há rumores de que o A7 já não é fabricado pela Samsung...

      Eliminar
    4. Sim, fala-se de que o A7 poderá estar a ser produzido pela Intel. Mas isso sabermos quando começarem a dissecar os chips e a mostrar o que está lá dentro...

      Eliminar
  3. Engraçados os comentários da AnandTech sobre os equipamentos programados/optimizados para obter os melhores resultados nos testes de benchmark.

    Não era só o Samsung S4 octa-core ? Também não lhe valeu de muito porque o iPhone 5s passou-lhe por cima e disse-lhe adeus :)

    ResponderEliminar
    Respostas
    1. O Samsung octa-core é um SoC BIG.little da ARM. A arquitectura do processador foi desenhada pela ARM, o BIG.little é da ARM.
      A Samsung pegou no design e usou-o.

      O iPhone 5S usa uma arquitectura da ARM mais recente de 64 bits. Básicamente o que estás a glorificar é a ARM a ultrapassar a ARM. Ena pá! Que coisa fantástica!

      Eliminar
    2. Dado que o link está no comentário a seguir e bastava copiar:

      "Apple continues to build its own SoCs and invest in them because honestly, no one else seems up to the job."

      Eliminar
    3. Dos Passos, a Apple licencia a arquitectura 64 bits da ARM e depois desenha os seus SoCs compliant a essa arquitectura.
      Não anda para aqui a criar as coisas sozinhas, se as faz é porque a ARM autoriza e segue as guidelines da ARM.

      A Samsung licencia os desenhos de processadores da própria ARM. Por isso da próxima vez que atacares os octa-cores da Samsung apercebe-te que estás a atacar os octa-cores da ARM, porque não foi a Samsung a desenhá-los e sim a usar os planos da ARM.

      Por isso como tu disseste: "Não era só o Samsung S4 octa-core ? Também não lhe valeu de muito porque o iPhone 5s passou-lhe por cima e disse-lhe adeus :)" - estás para aí a dizer que a Apple superou a Samsung. Não tem nada a ver quando a Samsung nem sequer desenha os seus próprios processadores mas usa os desenhos da ARM.

      Eliminar
    4. Vamos lá ver. Eventualmente escrevi umas linhas com primeira e segunda derivada.

      Se te interessam as "derivadas" é preciso perceber como aparece a referência à Samsung, p. ex. em:
      http://abertoatedemadrugada.com/2013/07/galaxy-s4-faz-batota-nos-benchmarks.html

      O que quis dizer em primeiro lugar é que a AnandTech dá a entender que há vários fabricantes (porque não também a Apple ?) a introduzirem "habilidades" no código de maneira que o equipamento reconheça que está a ser corrido um teste de benchmark e "acelere até ao limite para obter os melhores resultados". A Samsung com o S4 octa-core tinha sido apanhada nisso (que não tem nada a ver com a ARM).

      Quanto ao A7 ter passado por cima do S4 quad-core, enfim, são os números. Tem alguma relevância porque só se falava no iPhone 5 e sabia-se que o S4 tinha melhores resultados.

      O outro aspecto, de quem faz o quê entre a ARM e a Apple é outra questão. Sem menosprezar a ARM, a Apple está a colher os frutos do seu trabalho de desenvolvimento dos seus próprios SoC "que mais ninguém é capaz de fazer". E quando saírem os novos SoC para iPad ainda se vai notar mais.

      Eliminar
    5. Além disso a Apple também está a colher os frutos de ter investido na Arm. Sim, a Apple foi fundadora da Arm.

      Eliminar
  4. Continuo a achar que estás a prestar um serviço informativo pouco sério na questão dos 64bits. Continuas a misturar a torto e a direito as vantagens da nova arquitectura com as vantagens de ser 64bits. (frases como "alguns duvidavam que se viesse a fazer notar: a mudança de uma arquitectura de 32 bits para uma de 64 bits" e "Voltando ao CPU, os 64 bits e a nova arquitectura mostram assim que fazem toda a diferença" -- isto é para meter medo?)

    Felizmente a anandtech não foi em hypes e fez o favor de benchmarkar 64 vs 32 na medida do possível, usando testes numéricos no A7. Encontram-se na página anterior à que linkaste: http://www.anandtech.com/show/7335/the-iphone-5s-review/4

    O que esses benchmarks numéricos mostram é exactamente o mesmo tipo de ganhos que temos em x86-64, ou seja, ganhos na ordem de 5% a 30%. Em aplicações reais, como o safari, podes já contar com vantagens mínimas, excepto se for, novamente, nada mais que multiplicar inteiros em javascript. Infelizmente, e por razões óbvias, a anandtech não tem um build de safari para ARMv8 AArch32 para comparar com o safari nativo. O mais provável é só termos benchmarks reais de 64bits vs 32bits quando esta tecnologia chegar ao android.

    Tudo isto é óbvio, estou em crer, para alguém como tu que domina a tecnologia como poucos. Por isso, porquê papaguear o marketing da apple? Porque não um mínimo de pensamento crítico para contrabalançar o hype? Para ler press releases já basta o pplware.

    E agora para ser mauzinho: Eu nem sei como conseguiram duplicar a performance da gráfica sem ter que passar de FP32 para FP64 ;)

    ResponderEliminar
    Respostas
    1. @Tiago

      Estou apenas a apresentar resultados mensuráveis que mostra que afinal o ARMv8 de 64 bits tem diferenças bem visíveis, independentemente de estar a ser usado com menos de 4GB de RAM.

      Também refiro que não é o "dobro" em tudo: "Como sempre, haverá testes onde a diferença é maior e onde é menor, mas a diferença de desempenho entre o novo A7 de 64bits e o anterior A6 fica demonstrada de forma clara."

      Mas no Sunspider, e mantendo-se o iOS7 para um iPhone 5 e 5S a diferença é quase do dobro - isso são números, não é "marketing".

      Tanto me faz que este A7 seja da Apple, se fosse um Qualcomm ou Exynos estaria igualmente a defender a arquitectura de 64bits do ARMv8 - mas gostem ou não, foi um iPhone o primeiro a dar-lhe uso; tal como a Samsung foi a primeira a lançar um big.LITTLE octa-core (que também por cá defendi, recordam-se?) ... mesmo se depois a primeira versão saiu com bug que limitava o desempenho... mas isso é outro assunto; e no final do acto chegará a versão que poderá ter os oito cores a trabalhar, que vai ser também muito interessante de analisar (embora aí o grande segredo vá estar no scheduler e kernel para saber mandar cada thread para o core mais adequado...)

      Eliminar
    2. Então temos quanto à questão - 64 bits vs. 32 bits

      - A7(de 64 bits) vs A6(de 32 bits) - que é a perspectiva do post e, que dá o "dobro"

      - A7(a 64 bits) vs A7(a 32 bits) - que dará mais entre 5% e 30%.

      Ambas as perspectivas são importantes para se perceber o que está em causa. Mas obviamente o que interessará às pessoas é a primeira - os resultados que obteve o novo sistema de 64 bits.

      Eliminar
    3. Como é evidente eu não estou a duvidar da performance do A7 nem nunca o fiz. Estamos a falar, literalmente, de um salto geracional. A Apple chamou-lhe um cpu desktop-class e não está longe da verdade; a própria ARM, quando lançou a arquitectura em 2011, disse que traria grandes vantagens em servidores high-end (obviamente que todos se iam rir se tivesse dito desktop, mas é a mesma coisa -- http://www.arm.com/about/newsroom/arm-discloses-technical-details-of-the-next-version-of-the-arm-architecture.php)

      O meu ponto é que essa diferença de performance *não é* devido a ser 64bits. Não é por "os registos têm o dobro do tamanho, logo processa o dobro da informação". Vou repetir: os 64bits têm no máximo um benefício de 30% em aplicações numéricas. O verdadeiro ganho, que realmente atinge pode atingir 100% para aplicações normais em relação ao cpu anterior, vem da nova arquitectura ARMv8. Mal comparado, estamos a falar de um salto como do 486 ao pentium. E tu não estás a ajudar a distinguir as coisas com títulos de post como este. Felizmente a anandtech explica em detalhe as melhorias em coisas como cache size, instrution set ou controlador de memória, além do aumento de registos que já tinhas referido.

      Btw escusas de me tentar colar a estereótipos de samsung-fanboy ou anti-apple fanboy, estou um bocadinho acima disso na minha argumentação. Se quiseres chamar-me 64bits fanboy, aceito. Afinal de contas estou aqui a perder tempo com uma coisa que aparentemente não interessa a ninguém e fui early adopter de amd64 quando não havia nenhuma razão para o ser, daí conhecer bem os prós e contras. Assim sendo, vou continuar atento a posts futuros, para, quando necessário, esclarecer nos comentários pessoas interessadas na realidade dos 64bits.

      TL;DR: Se no título em vez de "64bits" estivesse "A7" ou "ARMv8" estaria tudo bem. (até dou de barato o "irresistível" que foi fazer um post de um benchmark de "64bits" sem ter lido as páginas todas -- oops).

      Eliminar
    4. Tiago Sousa, em parte concordo contigo, mas este título até nem está muito descabido se comparar-mos com certos títulos apresentados no PPLWARE (na minha opinião deviam mudar o nome para APPLEWARE dado a imensa publicidade "enganosa" que fazem à marca), e o Carlos até ao momento tem tentado manter a sua isenção na matéria.
      Contudo, as vezes a falta de tempo para publicar noticias pode fazer com que não possa fazer uma critica mais aprofundada.
      Ainda ontem fiz um post no PPLWARE a demonstrar o meu desagrado com esse tipo de situações recorrentes e num momento o meu posta tinha sido moderado e aprovado e no outro momento seguinte tinha desaparecido, vá-se lá saber porque???

      Eliminar
    5. @Dos Passos

      Concordo contigo, a perspectiva que interessa às pessoas è o resultado prático e é evidente que temos ganhos estrondosos.

      A minha crítica está no uso do termo 64bits, apenas isso. Sendo este um "blog" que normalmente é bastante rigoroso e isento, acho que esta é uma questão que não deve ser ignorada. As pessoas que não souberem as diferenças (e que desconfio que são a maioria, a julgar pelas conversas que tenho com amigos meus IRL) ficam a pensar que toda esta performance advém do uso de 64bits, quando sabemos que não é assim.

      Eliminar
  5. Esqueci-me de repetir o "disclaimer" de que obviamente estou contente que a apple tenha sido early adopter do ARMv8 e dos 64bits, dado que existem benefícios inegáveis nisso. Mas uma notícia com título "iphone mostra o poder dos 64bits" juntamente com um benchmark de dobro da performance... epá, não :)

    ResponderEliminar
  6. Curioso que ainda há dias vi uma noticia com um slide a mostrar que o Android muito em breve irá suportar a arquitectura de 64 bit, que poderá ser já no versão 4.4 daqui a uns dias ;)
    http://www.androidheadlines.com/2013/09/android-4-4-kitkat-64-bit-support.html

    ResponderEliminar
    Respostas
    1. Aliás, basta pensar que o Android usa o kernel Linux com uma máquina virtual Dalvik que pode não ser a forma mais efeciente de correr aplicações, mas tem beneficios em termos de portabilidade e segurança.
      O kernel Linux em 1995 começou a suportar os 64 bit na arquitectura Alpha (CPU RISC assim como os ARM :)

      Eliminar