Além da Lei de Moore

Os rumores da morte da lei de Moore foram até onde me lembro. Discutimos que estamos nos aproximando do tamanho de um átomo e que em breve toda a idéia se tornará inútil, ouvi 30, 20 e 10 anos atrás. Aqui estão apenas os engenheiros repetidamente refutando-os. Foi o gênio da engenharia que fez da lei de Moore uma das "profecias auto-realizáveis".

Não vou falar se a tecnologia atingiu seu limite ou não. Apesar da educação radiofísica, eu a entendo muito condicionalmente. Aqueles que desejam se aprofundar podem aconselhá-lo a consultar uma revisão recente . Vou assinar o ponto de vista de outro pensador muito respeitado, Bob Colwell .

imagem

Enquanto isso, os fabricantes de chips continuam a construir (ou pelo menos anunciar) novas fábricas trabalhando em novas tecnologias. Portanto, isso ainda é benéfico. Para mim, "é mais provável que o paciente esteja vivo do que morto". A expansão Murovskaya será interrompida quando um servidor com dois processadores fabricados usando a nova tecnologia se tornar mais caro do que um servidor com 4 fabricados usando a antiga. E isso está longe de ser o caso. Eu trabalhei com 4 cabeças e até 8 cabeças. Mas eles são montados por ordem e permanecem como um pequeno avião.

Hoje, minha tarefa é falar sobre como a tecnologia afeta a arquitetura e a programação. Sobre o que nos espera "do outro lado da lei de Moore". Pois muitas tendências são óbvias agora. Assim.

A área (volume) do cristal vale seu peso em ouro. Os transistores param de "encolher" e o tamanho do chip é limitado . Assim, o número de elementos tem um limite. Novas fantasias estão ficando mais difíceis de enfiar em um cristal. Pelo contrário, o preço da compactação aumenta. Designers estão muito mais preocupados com otimização do que com inovação. Assim, veremos cada vez menos inovação no chip da CPU ou GPGPU. Talvez até o software precise ser reescrito menos, embora eu não acredite nisso.

Discreteness. Como o tamanho, a funcionalidade e o consumo de energia do chip são limitados, vamos colar o maior número possível de chips. Bom e diferente (crescimento explosivo de aceleradores previsto por Colwell). Ou o mesmo (multiprocessamento simétrico). Ou geralmente com lógica reprogramável (FPGA). Cada um desses cenários tem seus próprios méritos. O primeiro fornece desempenho máximo por watt para uma tarefa específica. O segundo é a facilidade de programação. O terceiro é a flexibilidade. Qual cenário está sendo implementado - o tempo decidirá. Como gosto de dizer, a vida mostrará tudo e julgará a todos. E não demora muito para esperar.

Complicação de NUMA: cristais únicos morrem, dando lugar a chiplets. Assim, os fabricantes aumentam o rendimento do produto. A propósito, yalda (rendimento) é a porcentagem de chips adequados, este é o pior segredo de qualquer fabricante de chips. Especialmente nas fases iniciais do processo. Mas essa "colagem" de um chip de peças traz dificuldades adicionais para os programadores. O tempo de comunicação entre os núcleos dentro e fora do chiplet é diferente. E este é apenas um exemplo de uma estrutura NUMA (acesso não uniforme à memória), cada vez mais complexa. A outra é a topologia das conexões dentro do chip (mais memória de alta largura de banda. Mais discrição. Mais - ...) E tudo isso precisará ser levado em consideração.

O crescente papel do uncore:Como estamos falando de comunicações intraprocessadores, mencionarei outra tendência interessante. Se você observar atentamente a atividade de M&A dos líderes de mercado, é fácil entender que todos os gigantes estão fazendo a mesma coisa. A Intel investe na tecnologia Silicon Photonics e compra a Barefoot Networks . A NVidia é responsável pela compra da Mellanox . E não Infinibanda por uma causa. Todo mundo entende que o campo da batalha futura são as conexões intra e interprocessador. E quem se tornará o "rei da colina" não será determinado por conjuntos de instruções ou algum tipo de lógica complexa, mas por ônibus e interruptores.

"Originalidade" (mais precisamente, não repetibilidade):Às vezes tenho que trabalhar com grandes conjuntos de chips. Isso acontece quando um novo cluster para computação de alto desempenho é criado e lançado. E, recentemente, notei uma coisa interessante. Se chips anteriores com a mesma rotulagem eram quase indistinguíveis, agora cada um deles tem seu próprio “caráter” e “humor”. O processador possui um mecanismo de gerenciamento de energia embutido. Depende de quantos núcleos estão em execução no momento, quais blocos estão envolvidos, da temperatura etc., etc. E parece que o modo como o processador consome e dissipa energia depende das condições de produção de um lote específico, de sua posição no rack e da massa de outros fatores não controlados. Como resultado, observei um desvio de frequência (e desempenho) de ~ 15%. Obviamente, isso leva a todos os tipos de desequilíbrios (MPI, OpenMP).E como lidar com eles ainda não está muito claro. A menos que, para fazer a distribuição do trabalho dinâmico.

E a última é a frequência: definitivamente não haverá crescimento. Por muitas razões, incluindo consumo de energia, tamanho, etc. Atrevo-me a sugerir que a frequência em geral deve ser reduzida. Da maneira mais simples para o desempenho de thread único (ou seja, aprimorando a arquitetura). Aqui, é claro, o Linpack, amado por todos os profissionais de marketing, sofrerá. Mas o sistema ficará mais equilibrado e o trabalho dos desenvolvedores de ferro será facilitado. Bem, em aplicativos reais, quanto menos ciclos o processador executar, aguardando dados de dispositivos lentos (memória, grade, disco) - melhor.

É assim que o mundo dos computadores me parece na era pós-amarração.
Como você o vê?

All Articles