O M1 da Apple é uma CPU rápida – mas os M1 Macs parecem mais rápidos devido à qualidade do serviço

Várias imagens promocionais da Apple empilhadas umas sobre as outras.
Mais Zoom / O Apple M1 é um processador de classe mundial – mas é Sentir Ainda mais rápido do que as impressionantes especificações já sugerem. Howard Oakley conduziu uma investigação profunda para descobrir o porquê.

O processador M1 da Apple é um processador de desktop e laptop de classe mundial – mas quando se trata de sistemas de usuário final de uso geral, há algo melhor do que velocidade. Estamos nos referindo, é claro, a Sentimento Rápido – tem a ver com um sistema que atende de forma mais previsível e confiável às expectativas do usuário do que velocidade bruta.

Howard Oakley – Autor de muitos Mac Aborígines Serviços Como Cormorant, Spundle e Stibium – eles fizeram algumas pesquisas para descobrir Por que Seu M1 Mac parecia mais rápido do que Intel Macs e concluiu que a resposta era QoS. Se você não está familiarizado com o termo, é um acrônimo para qualidade de serviço – e tem tudo a ver com agendamento de tarefas.

Mais produtividade nem sempre significa usuários mais felizes

Há uma tendência muito comum de equiparar ‘desempenho’ com produtividade – aproximadamente, as tarefas concluídas por unidade de tempo. Embora a produtividade seja geralmente a medida mais fácil de medir, ela não se alinha bem com a cognição humana. O que os humanos geralmente notam não é a produtividade, mas a latência – não o número de vezes que uma tarefa pode ser realizada, mas o tempo que leva para completar uma tarefa individual.

Aqui no Ars, o nosso Teste de Wi-Fi As métricas seguem este conceito – medimos a quantidade de tempo que leva para carregar uma página da web simulada em condições de rede razoavelmente normais, em vez de medir quantas vezes uma página da web (ou qualquer outra coisa) pode carregar por segundo enquanto está em execução constante.

Também podemos ver um exemplo negativo – um exemplo em que a taxa de transferência mais rápida corresponde a usuários claramente insatisfeitos – por volta de 2006 Introdução Da fila completamente justa (cfqAgendador de E / S no kernel do Linux. cfq Ele pode ser amplamente ajustado, mas em sua configuração pronta para uso, maximiza a produtividade reorganizando as operações de leitura e gravação de disco para reduzir a pesquisa e, em seguida, oferecendo o serviço round robin para todos os processos ativos.

Infelizmente, enquanto cfq Na verdade, ele melhorou significativamente a produtividade máxima, com latência de tarefa aumentada – o que significa que um sistema moderadamente carregado parecia lento e sem resposta para seus usuários, o que levou a um grande aumento nas reclamações.

Apesar cfq Ele pode ser configurado para menos latência, então a maioria dos usuários insatisfeitos o substituiu completamente por um cronograma concorrente, como noop ou deadline Em vez disso – e apesar do limite de produtividade mais baixo, a latência única reduzida deixou os usuários de desktop / interativos mais felizes com a rapidez com que seus dispositivos são transmitidos.

Depois de descobrir como maximizar a produtividade abaixo do ideal em detrimento da latência, a maioria das distribuições Linux deixaram de cfq Assim como muitos usuários já tiveram. Red Hat abandonou cfq para deadline Em 2013, assim como o RHEL 7 – e o Ubuntu fez o mesmo logo depois disso, em 2014 Trusty Tahr (14.04) edição. A partir de 2019, o Ubuntu possui Negligenciando cfq Completamente.

Qualidade de serviço com Big Sur e Apple M1

Quando Oakley observou o número de vezes que usuários de Mac elogiaram M1 Macs por serem incrivelmente rápidos – apesar das métricas de desempenho que nem sempre suportam esses sentimentos – ele deu uma olhada de perto no agendador de tarefas original do macOS.

O MacOS oferece quatro níveis definidos diretamente de priorização de tarefas – de baixo a alto, eles são backgroundE a utilityE a userInitiated, E as userInteractive. Há também um quinto nível (o padrão, quando o QoS não é definido manualmente) que permite ao macOS decidir por si mesmo a importância de uma tarefa.

Esses cinco níveis de QoS são iguais, quer seu Mac seja equipado com Intel ou Apple Silicon – mas a forma como o QoS o impõe muda. Em uma CPU octa-core Intel Xeon W, se o sistema estiver ocioso, o macOS agendará qualquer tarefa em todos os 8 núcleos, independentemente das configurações de QoS. Mas no M1, mesmo se o sistema estiver completamente ocioso, background As Missões prioritárias executam exclusivamente os quatro motores / eficiência de baixa energia do M1 Icestorm Cores, deixando os quatro de melhor desempenho Firestorm Núcleos ociosos.

Embora isso tornasse as tarefas de baixa prioridade, a Oakley testou o sistema compactando um arquivo de teste de 10 GB – mais lento em um Mac M1 do que em um Mac Intel, as operações foram mais consistentes em todo o espectro de “sistema ocioso” a “um sistema extremamente ocupado”.

Operações com Principal O desempenho das configurações de QoS no M1 também foi mais consistente do que no Intel Mac – o macOS queria despejar tarefas de baixa prioridade em Icestorm Cores deixaram apenas alto desempenho Firestorm Os núcleos estão vazios e prontos para responder de forma rápida e constante quando userInitiated E a userInteractive Tarefas que precisam ser realizadas.

Conclusões

A estratégia de QoS da Apple para o M1 Mac é um excelente exemplo de engenharia para um verdadeiro ponto problemático na carga de trabalho, em vez de perseguir métricas arbitrárias. Deixe o alto desempenho Firestorm Os núcleos ficam ociosos durante a execução background Tarefas significam que eles podem dedicar todo o seu desempenho a userInitiated E a userInteractive Tarefas à medida que vão surgindo, e evita a percepção de que o sistema não está respondendo ou mesmo “ignorando” o usuário.

É importante notar que Big Sur definitivamente Ele pode Use a mesma estratégia com o processador Intel Octa Core. Embora não haja nenhuma divisão grande / pequena semelhante no desempenho básico no x86, nada impede o sistema operacional de declarar arbitrariamente um certo número de núcleos background Somente. O que faz o Apple M1 parecer tão rápido não é o fato de que seus quatro núcleos são mais lentos que os outros – é a disposição do sistema operacional de sacrificar a produtividade máxima em favor da redução da latência da tarefa.

Também vale a pena notar que as melhorias interativas que os usuários do M1 Mac veem dependem muito das tarefas sendo devidamente agendadas em primeiro lugar – se os desenvolvedores não estiverem dispostos a usar a baixa prioridade. background Coloque na fila quando for conveniente, porque eles não querem que seu aplicativo pareça lento e todos perdem. O conjunto de software invulgarmente vertical da Apple provavelmente ajudará tremendamente aqui, já que os desenvolvedores da Apple provavelmente priorizarão a resposta geral do sistema, mesmo que seja provável que seu código “pareça ruim” se inspecionado de perto.

Se você estiver interessado em detalhes mais sutis de como o QoS se aplica a M1 e Macs Intel – e o impacto que eles têm – recomendamos que você analise o trabalho original da Oakley Aqui E a Aqui, Completo com capturas de tela do histórico da CPU na tela de atividades do macOS enquanto o Oakley gerencia tarefas com prioridades diferentes em duas arquiteturas diferentes.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *