Sistemas de recomendação usados ​​ativamente por redes sociais, plataformas de anúncios, etc. têm recursos específicos. Eles devem ter alta capacidade de resposta, mas ao mesmo tempo seus modelos de IA são bastante volumosos, na ordem de 100 GB ou mais. E para seu trabalho eficiente, você também precisa de um cache bastante grande. Para inferência, a CPU (muita memória, mas velocidade relativamente baixa) ou GPU (alta velocidade, mas pouca memória) é usada com mais frequência, mas não são muito eficientes para essa tarefa.

Ao mesmo tempo, também há limitações físicas por parte dos hiperscaladores: não há muitos slots PCIe completos e espaço livre no servidor + há restrições estritas no consumo de energia e resfriamento (na maioria das vezes ar). Tudo isso foi levado em consideração pelo Esperanto, cuja especialidade é o desenvolvimento de chips baseados na arquitetura RISC-V. No outro dia, ela recebeu as primeiras amostras do acelerador de IA ET-SoC-1, que ela mesma chama de Supercomputador em Chip.

A novidade se destina à inferência de sistemas de recomendação, inclusive na periferia, onde a eficiência ganha destaque. A empresa se propôs uma tarefa difícil – toda a gama de aceleradores com memória e tubulação de serviço não deve consumir mais do que 120 watts. Para resolver este problema, muitos truques tiveram que ser aplicados. A primeira e mais óbvia é a criação de um chip relativamente pequeno, mas universal, que poderia ser combinado com outros chips semelhantes com crescimento de desempenho linear.

Para atingir um alto grau de paralelismo, esse chip deve ser baseado em núcleos pequenos, mas com eficiência energética. É por isso que a escolha recaiu sobre os núcleos RISC-V de 64 bits, já que eles são “simples” não apenas do ponto de vista do ISA, mas também em termos de orçamento para transistores. O chip ET-SoC-1 combina dois tipos de núcleos RISC-V: núcleos “grandes” clássicos (ET-Maxion) com execução fora de ordem, tem apenas 4, mas núcleos “pequenos” (ET-Minion) com suporte para cálculos de tensores e vetores – até 1088.

Tarefas de uso geral são atribuídas aos núcleos ET-Maxion e não participa diretamente da computação de IA, mas permite que o ET-SoC-1 seja completamente autônomo, já que você pode executar o Linux diretamente neles. Outro processador RISC-V para periféricos o ajuda nisso. Mas os kernels ET-Minion são bastante simples: eles não têm execução fora de ordem de instruções, mas têm suporte para SMT2 e todo um conjunto de novas instruções para operações INT e FP com vetores e tensores.

Para cada ciclo de clock, o núcleo ET-Minion é capaz de realizar 128 operações INT8 enquanto armazena o resultado INT32, 16 operações FP32 ou 32 – FP16. Operações de tensor “longas” podem ser executadas continuamente por 512 ciclos (até 64 mil operações), enquanto blocos inteiros são desligados durante esse tempo para economizar energia. O sistema de cache é organizado de uma maneira um tanto incomum. Existem 4 bancos de memória por núcleo, que podem ser usados ​​como um cache L1 para dados e como uma memória universal rápida (scratchpad).

Oito núcleos ET-Minion formam um “quarto” em torno de seu cache de instrução comum, uma vez que tais tarefas provavelmente terão as mesmas instruções para todos os núcleos. Além disso, é mais eficiente em termos de energia do que oito caches individuais e permite enviar e receber dados em grandes blocos, reduzindo a carga no cache L2. Oito “blocos” formam uma “vizinhança” com um switch e quatro bancos SRAM de 1 MB que podem ser usados ​​como um cache L2 privado, como parte de um cache L3 compartilhado ou como um bloco de notas.

Por meio da rede em malha, os microdistritos se comunicam entre si e com outras unidades: ET-Maxion, oito controladores de memória de canal duplo, dois complexos de raiz PCIe 4.0 x8, RoT de hardware. No total, o chip é responsável por cerca de 160 MB de SRAM. Os controladores de RAM suportam módulos LPDDR4x-4267 ECC (256 bits, até 137 GB / s). A velocidade do clock do ET-Minion varia de 500 MHz a 1,5 GHz, enquanto o ET-Maxion varia de 500 MHz a 2 GHz.

Como parte do bloco Glacier Point V2 OCP, a empresa combinou seis ET-SoC-1s (6558 núcleos RISC-V no total) em uma placa, fornecendo 192 GB de memória (822 GB / s) – isso é mais do que o NVIDIA A100 (80 GB). Esse pacote desenvolve mais de 800 no máximo, exigindo apenas 120 watts. Em média, é 100 – 200 Tops por chip com um consumo de menos de 20 watts. Isso permite que você crie um módulo M.2 compacto ou, ao contrário, dimensione o sistema ainda mais. O chassi Yosemite v2 pode acomodar 64 chips, e o rack já tem 384 chips.

No teste MLPerf para sistemas de recomendação, o desempenho do pacote de seis chips por watt mencionado acima foi 123 vezes maior do que o do Intel Xeon Platinum 8380H (250 W), e duas a três vezes maior do que o de a NVIDIA A10 (150 W) e T4 (70W). No teste ResNet-50 “inconveniente” para o chip, a diferença com o CPU e o acelerador Habana Goya não é tão grande, mas com as soluções NVIDIA, ao contrário, é mais perceptível.

Ao mesmo tempo, os desenvolvedores também pensaram no suporte de software: os chips Esperanto podem trabalhar com os frameworks PyTorch, TensorFlow, MXNet e Caffe2, bem como aceitar modelos ONNX prontos. Também existe um SDK para C ++, bem como drivers para hosts x86.

Os protótipos são fabricados na TSMC usando uma tecnologia de processo de 7 nm. O cristal com uma área de 570 mm2 contém 24 bilhões de transistores. O chip possui um encapsulamento BGA2494 com dimensões de 45 × 45 mm2. O consumo de energia (e com ele o desempenho) é ajustável na faixa de 10 a 60+ watts. Os chips de teste estarão disponíveis para clientes em potencial até o final do ano. A empresa também está pronta para adaptar o ET-SoC-1 para outros fluxos de trabalho e fábricas, mas a demonstração baseada na plataforma OCP e a comparação com Cooper Lake são uma dica inequívoca para o Facebook de que o Esperanto ficará feliz em vê-lo entre os primeiros clientes .

Deixe um comentário

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