quarta-feira, 8 de junho de 2016

Firefox 49 requererá SSE2

Snif, snif, não poderei mais rodar o Firefox no Windows ☹

Espantoso assombrações como Athlon XP, Duron e afins ainda terem influência em softwares atuais. SSE2 é suportado desde o Athlon 64 (K8, 2003) e Pentium 4 (Willamette, 2000).

O Visual C++ 2015 (compilador C/C++ do Visual Studio, vulgo MSVC) tem um bug que, em x86-32, emite instruções SSE mesmo quando configurado para não fazê-lo (/arch:IA32). Esse bug acendeu a discussão sobre o assunto. Para o Firefox 48, voltarão ao VS2013 temporariamente, cujos binários produzidos, devido à configuração da Mozilla, continuarão rodando em máquinas sem nem mesmo SSE!

No ciclo do Firefox 49, colocarão o VS2015 de volta e nas compilações x86-32 trocarão /arch:IA32 por /arch:SSE2 (que, a propósito, é padrão a partir do VS2012). O instalador do Firefox 49 será modificado para não prosseguir ao detectar processador sem SSE2. A infraestrutura de atualização funcionará assim: instalações anteriores precisarão atualizar obrigatoriamente para a versão 48 primeiro, que estará apta a detectar quais instruções adicionais são suportadas, de forma a oferecer ou não versões posteriores. Máquinas sem SSE2 ficarão na versão 48 para sempre. Restará para esse pessoal rodar a versão 45 ESR enquanto for suportada (idem com o Thunderbird).

Em x86-64, SSE2 é sempre presente pois faz parte do conjunto base de instruções da arquitetura. /arch:SSE2 não tem efeito na versão x86-64 do MSVC. Nela, é possível apenas habilitar geração de código com instruções AVX (/arch:AVX) ou AVX2 (/arch:AVX2).

Ganho de desempenho do navegador em x86-32 com /arch:SSE2 é de até 18%.

No Linux a situação está indefinida. As distribuições possuem política que define globalmente o conjunto de instruções requerido por todos os pacotes do repositório. Será improvável aceitarem o Firefox x86-32 requerendo SSE2, a menos que uma cirurgia downstream para isso seja complexa e torne a manutenção do pacote um inferno, como aconteceu com o Chromium no Debian.

6 comentários:

  1. Fala, Marcos! Beleza?

    Poxa, logo um browser que vai cortar a compatibilidade com o Duron? Lembro dos tempos que usei o Duron Morgan, com seus ínfimos 64 kB de L2, aparentemente um retrocesso para uma época em que os caches L2 estavam nos 512 kB. Mas até que o bicho não deixou a desejar em se tratando de um processador low-end.

    Por falar em caches achei este link do FGdH: http://www.hardware.com.br/comunidade/cache-l1/1125458/ Nele eu questionava o motivo do cache L2 estar 128 TB (kkk) enquanto o cache L1 não passava de 128 kB. Saudades desses tempos.

    ResponderExcluir
    Respostas
    1. Tudo tranquilo, Valério.

      Também usei valentes Durons. O Spitfire da foto e depois um Applebred 1,4 GHz. Eram processadores razoáveis para a época. E acho que tive um Morgan também.

      Contudo, programas críticos, nos dias de hoje, como navegadores, não podem mais prejudicar a imensa maioria de usuários que possui CPUs com SSE2. O fardo de manter múltiplos caminhos de código não vale a pena considerando a ínfima base de usuários que ainda roda com esses processadores. O pessoal do Google já fez o mesmo no Chrome faz uns dois anos.

      Excluir
  2. E pensar que esses processadores da áurea época dos 462 eram o que tinha de bom e barato para competir com os Intel da época. A AMD não consegue mais destronar a Intel. O P&D da última é de excelência. Se bem que isso pode ser relativo, sei lá.

    Por falar em processador, veja isso:

    http://adrenaline.uol.com.br/2016/07/08/44532/britanico-constroi-megaprocessador-de-500-kg-e-us-50-mil-na-sala-de-casa-que-so-roda-tetris/

    ResponderExcluir
    Respostas
    1. Avançando um pouco para depois dos K7. Enquanto a Intel chafurdava com os NetBurst (Pentium 4 e cia.), os AMD K8 (Athlon 64 e cia.) eram competitivos. Quando a boa tecnologia da Intel voltou na microarquitetura Core (Core 2 Duo e cia.), a AMD ainda conseguiu dar uma sobrevida ao K8 no K10, que, apesar de já não ter mais a dianteira, ainda dava para o gasto (meu Athlon II X2 260 que o diga).

      A casa começou a cair quando a Intel lançou os Nehalem (primeira geração dos i3/i5/i7). A AMD não tinha mais como competir. Ficou completo o desastre quando por volta de 2011 a microarquitetura Bulldozer (FX, A4/A6/A8/A10) substituiu a K10. Ali a empresa começou a afundar. A divisão de microprocessadores da AMD tem sido salva pelas suas microarquiteturas de baixo consumo (Bobcat, Jaguar, Puma), base do SoC do Playstation 4 e Xbox One.

      Para voltar a ter chance no mercado de desktops, notebooks e servidores, todas as apostas estão na nova microarquitetura Zen, que está prestes a ser lançada.

      Excluir
    2. Mas tipo... o que a Intel insere nas suas CPUs que faz com que a AMD tenha dificuldades de superar? É o HT e a litografia que estão fazendo a diferença? Como um i7 quadcore pode bater um FX octa? E esses testes e comparativos são confiáveis?

      Excluir
    3. Tecnologia, vinda de engenheiros talentosos. A melhor técnica de fabricação ajuda, porém a diferença fundamental é que os núcleos da Intel fazem bem mais por ciclo de clock (e com menor consumo) do que os núcleos da AMD, que são terrivelmente ineficientes. Não por outra razão, nos anúncios preliminares da AMD sobre a microarquitetura Zen, um dos destaques é o aumento do IPC (instruções processadas por ciclo) em 40% frente aos Bulldozer. Pelo que leio, os Zen não darão à AMD a dianteira, mas ao menos diminuirão a enorme distância tecnológica hoje existente entre as duas empresas. Dependendo das faixas de preço em que os novos processadores sejam posicionados, isso já pode ser o suficiente para dar competitividade à AMD novamente.

      A droga é que sem concorrência a Intel faz o que quer. Torçamos que para os Zen deem certo.

      Excluir