Como é que a Apple M1 vai afectar a aprendizagem mecânica? (Parte 1)

A Apple apresentou o primeiro processador de silicone para desktop/laptop da Apple baseado nos processadores Apple série A da linha iPad e iPhone. Eles apresentaram este novo processador juntamente com três novos Macs, incluindo o novo M1 MacBook Air, M1 MacBook Pro, e M1 Mac mini.

Estes novos M1 Macs estão anunciando especificações incríveis usando o novo processador M1, CPU acelera até 3,5x mais rápido. A GPU acelera até 5x mais rápido, e usando o novo Motor Neural, até 9x mais rápido na aprendizagem da máquina. Quanto à duração da bateria, o MacBook Air está anunciando 15 horas de navegação na web sem fio e 18 horas de reprodução de filmes (uma pequena advertência que eles têm é a reprodução de filmes usando o aplicativo Apple TV). Não sei se isso faz diferença, mas só o tempo dirá quando alguém no Youtube o testar. Quanto ao MacBook Pro, sua duração da bateria chega a 17 horas de navegação na web sem fio e 20 horas de reprodução de filmes do aplicativo Apple TV. Eu não sei quanto a você, mas 20 horas é incrível. Atualmente estou rodando o MacBook Pro 16″ i9, e achei notável a duração de 11 horas da bateria desse MacBook.

M1 Architecture

A nova arquitetura M1 é feita usando a mais recente tecnologia de 5nm. Tem 1 CPU, 1 GPU, 1 Motor Neural, e unidades DRAM incorporadas no processador. Como a RAM está embutida no processador, todos os componentes acessam a mesma memória. O que isso significa? Bem, significa que não há mais perda de performance devido ao movimento e remodelação da memória de um componente para o próximo componente. Chega de tentar descobrir se o seu modelo pode caber nas especificações da memória da GPU.

CPU

A CPU é uma CPU de 8 núcleos com 4 núcleos de alta performance para processamento de dados e tarefas que precisam de alta performance e 4 núcleos denominados “e-cores” ou núcleos de alta eficiência, proporcionando processamento com mais eficiência e menor consumo de energia.

>

>

>

>

No site, a Apple não reivindica nenhuma velocidade de CPU; no entanto, uma listagem do Geekbench publicada em gadgets.ndtv.com está postando uma frequência base de 3.2GHz que é maior que a frequência base do processador Intel Core i9-9880H encontrado no Macbook Pro.

Vamos comparar algumas pontuações do Geekbench no novo processador M1.

>

>

>

>>

>

>

>

>

>

Comparando os resultados de 4 CPUs muito populares, o Apple M1 supera todos eles, mesmo o processador i9 no Macbook Pro de 16″ confortavelmente na pontuação de um só núcleo. Só quando você chega ao multi-core onde começa a ver outros, especialmente os processadores AMD, compete com o M1.

O que tudo isso significa para o Machine Learning?

Primeiro lugar, a RAM sendo compartilhada entre a CPU e a GPU deve aumentar a performance devido à falta de latência na transferência de dados da RAM da CPU para a RAM da GPU.

Como a pontuação de um núcleo versus a pontuação de múltiplos núcleos, a maioria das bibliotecas de pré-processamento de dados não tira vantagem dos múltiplos núcleos do processador; portanto, a pontuação de múltiplos núcleos faz muito pouco para o pré-processamento de dados. Ter uma pontuação melhor de um núcleo fará melhor no pré-processamento de dados.

GPU

A GPU integrada é uma GPU de 8 núcleos, que pode executar 25.000 threads ao mesmo tempo. A Apple afirma que esta é a “gráfica integrada mais rápida do mundo em um computador pessoal” na taxa de transferência 2,6 TFLOPS (FP32). Com certeza isso é impressionante para uma GPU integrada, mas nós como cientistas de dados estamos interessados na performance geral.

Vejamos alguns outros para comparações.

>

>>

Vejam estes valores, provavelmente funcionaria bem para processamento de vídeo, processamento de imagem, Apple Arcade ou jogos. A GPU não funcionará bem para a aprendizagem da máquina. Poderia, mas não a performance que eu e você provavelmente estamos procurando. Algo como o Razer Blade Pro 17 com o RTX 2080 Super faria melhor em 11.2 TFLOPS. Você estaria certo com esse pensamento. Entretanto, a Apple também adicionou no M1 um Motor Neural integrado ao processador especificamente para a eficiência da aprendizagem da máquina.

Motor Neural

O processador M1 também traz o Motor Neural da Apple, líder da indústria, especificamente projetado para processos de aprendizagem da máquina. O motor neural foi anteriormente adicionado ao processador da série A no iPad e iPhone, mas ainda não está no Mac até agora.

>

A Apple está reivindicando 11 TOPS (Trillion Operations Per Second) em seu novo motor neural de 16 núcleos.

>

>

>>

>

>

>

>

*11 TOPS? Eles significam 11 TFLOPS? Se for 11 TFLOPS então pode ser um concorrente no espaço.

Quando você combina essa velocidade com memória integrada (latência reduzida) e 20 horas de duração da bateria, isso pode ser um trocador de jogo para os cientistas de dados em movimento. Você não só obtém uma GPU comparável a um RTX 2080 Super, uma CPU que tem uma das melhores pontuações single-core da indústria, um fator de forma do MacBook Air, mas também 18-20 horas de duração da bateria. Uau!

Outra reflexão sobre isso seria se algumas das estruturas ML pudessem tirar vantagem tanto da GPU quanto do Neural Engine para treinar e realizar inferências.

Apple M1 e Suporte a Software

Agora vamos falar sobre suporte a software. Minhas perguntas aqui são:

Aplicação M1 funciona com alguns dos softwares mais utilizados? (por exemplo, Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Apple Silicon usa uma arquitetura de conjunto de instruções baseada em ARM. Python já roda em muitas outras plataformas, incluindo ARM, MIPS, PowerPC, i386, e x86-64. Não deve haver problemas com Python.

Juypter Notebook

Não está claro agora se os notebooks Juypter funcionam com o processador Apple M1. Eu encontrei um link que está rodando notebooks Juypter em uma arquitetura ARM usando o docker. O tempo o dirá neste link. Talvez o VSCode uma vez pronto para produção tenha uma extensão Juypter que funcione.

VSCode

Microsoft anunciado em 10 de novembro de 2020, no Twitter, eles estão trabalhando em uma construção universal de VSCode para o Apple M1. A partir deste momento, eles têm o ARM experimental construído em seu site localizado aqui.

Microsoft Excel

Microsoft também anunciou em 11 de novembro de 2020, que irá lançar uma nova construção Universal do seu Mac Office 2019 beta que suporta o novo processador Apple M1. De fato, Erik Schwiebert anunciou no Twitter que a Microsoft estava lançando uma versão beta nesse mesmo dia no canal beta. No entanto, eles não anunciaram nenhuma data para o lançamento público.

Does M1 trabalha com frameworks ML (ou seja, Tensorflow, Scikit-Learn, Keras, etc.)?

No evento Apple M1, a Apple mencionou o suporte ao Tensorflow. Eu ainda não encontrei nenhuma informação específica em torno dessa reivindicação. O framework Tensorflow é construído para a arquitetura x86_64 e GPUs Nvidia. Não existem outras construções para a arquitetura ARM ou Apple M1.

Alguns estão alegando que você pode fazer inferências a partir dos modelos Tensorflow tirando vantagem do Apple Converter. Aqui está um link para um artigo que fala sobre a conversão de modelos TF para CoreML. Alguns outros estão pensando que estão se referindo ao Swift para o Tensorflow.

Direito agora é desconhecido, e eu não consigo encontrar nada referindo-o.

Scikit-Learn

Will Scikit-learn trabalhar com o Apple M1? Eu acho que a resposta curta é talvez???? Então, o que sabemos é que o Python vai funcionar para a arquitetura ARM da M1, e Scikit-learn não tira vantagem ou usa o suporte a GPU. Então teoricamente, Scikit-learn deveria funcionar para a Apple M1.

Eu poderia continuar mas nós estaríamos aqui para sempre com todas as bibliotecas usadas no ML (PyTorch, Keras, etc.)

Synopsis

  • Apple M1: 8 core CPU, 8 core GPU, 16 core Neural Engine com memória integrada no chip.
  • >

  • Apple M1 CPU tem uma das mais altas pontuações de um núcleo em 1687; pontuação ok na pontuação de múltiplos núcleos em 7433 em comparação com a Intel i9-9880H (Macbook Pro 16″): 1029 pontuação de um núcleo, 6012 pontuação de múltiplos núcleos.
  • A GPUApple M1 chega a 2,6 TFLOPS em comparação com a Nvidia GeForce RTX 2080 Super (Laptops Razer) a 11,2 TFLOPS.
  • Apple M1 Neural Engine anuncia 11 trilhões de operadores por segundo. A questão aqui é, é que TFLOPS (FP32)? Isso é comparado ao Nvidia GeForce RTX 2080 Super em 11.2.
  • >

  • O Apple M1 tem suporte de software?
  • >

>

>

>

>

>

Disclaimer: Eu ainda não coloquei minhas mãos em um Apple M1. Encomendei-a mas ainda não a recebi. Estou apenas usando pesquisas para fazer minhas reivindicações sobre suporte de software. Não faça compras com base nos meus resultados, por favor faça a sua própria pesquisa antes de fazer uma compra.

Após receber o meu Apple M1 MacBook Pro, vou escrever uma nova história com os meus resultados.

Updated:

Apenas para uma actualização, aqui está a imprensa oficial da Docker no chip M1 e suporte.

Parte 2 deste artigo pode ser encontrada aqui.

Deixe um comentário