A forma de acesso à memória do chip M1 da Apple
(lemire.me)"O single-core do M1 processa memória em paralelo em mais de 28 estágios"
-
O acesso à memória é mais custoso do que operações de cálculo
-
Em teoria, um modelo ingênuo em que, ao acessar
x, valores próximos comox+1também podem ser lidos praticamente de graça pode até parecer razoável, mas ele não permite prever o desempenho -
Em que situações essa previsão de desempenho falha? Os núcleos de CPU tentam acessar vários lugares da memória ao mesmo tempo
-
Se houver 7 acessos à memória simultâneos, será mais lento do que acessar apenas 1, mas será 7 vezes mais lento?
-
Por meio de um programa de benchmark, foi testado quantos acessos simultâneos (
lane, rotinas independentes de rastreamento de ponteiros) são possíveis
→ A partir do ponto em que o desempenho do acesso simultâneo começa a cair, faz-se uma estimativa de quantos lanes existem
- Como o desempenho de um único núcleo do Apple M1 começa a cair quando passa de 28
lanes, foi levantada a hipótese de que esse número seja 28
→ Portanto, por causa desse alto nível de paralelismo, a previsão de custo daquele modelo ingênuo falha
5 comentários
Toda vez que surge uma conversa sobre CPU
https://ridibooks.com/books/443000037
este livro tem ajudado bastante. Para quem quiser acompanhar desde o começo, acho que, se lerem este livro antes, vai ficar um pouco mais fácil de entender.
Para evitar que isso pareça publicidade da Ridibooks (...), o nome do livro é: A história dos CPUs multicore que os programadores não conheciam. E por que justamente a Ridibooks? Porque o livro físico está esgotado, e no caso do e-book a Ridibooks era a única loja restante, então acabei postando por lá mesmo.
Então o Kim Min-jang também escreveu um livro desses... já faz 10 anos, como o tempo passa ^^;
Essa é realmente uma parte difícil. É complicado generalizar. Mas, na situação atual, em que as arquiteturas de CPU e o processamento paralelo se tornaram mais comuns, parece que isso pode ser bastante eficaz. Dá para ver que também estão sendo feitos muitos experimentos para melhorar a estrutura de hardware.
Como foi escrito por um professor de ciência da computação, parece que ele registrou apenas os fatos que ele próprio identificou com precisão..
Juntando os comentários desse texto com os comentários no HN, https://news.ycombinator.com/item?id=25659615
basicamente, dá para entender que o M1 mostra um desempenho excelente mesmo ao fazer acesso aleatório a vários lugares, graças a mais de 28 vias de paralelismo e ao tamanho do cache L1, entre outros fatores.