Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Usar vários chips de inferência exige um planejamento cuidadoso


Os últimos dois anos foram extremamente ocupados no negócio de chips de inferência. Por um tempo, parecia que a cada duas semanas outra empresa apresentava uma solução nova e melhor. Embora toda essa inovação fosse ótima, o problema era que a maioria das empresas não sabia o que fazer com as várias soluções, porque não sabiam qual delas tinha melhor desempenho do que a outra. Sem um conjunto de benchmarks estabelecidos neste novo mercado, eles tiveram que se familiarizar muito rapidamente com chips de inferência ou acreditar nos números de desempenho fornecidos pelos vários fornecedores.

A maioria dos fornecedores forneceu algum tipo de figura de desempenho e geralmente era qualquer referência que os fizesse parecer bons. Alguns fornecedores falaram sobre TOPS e TOPS / Watt sem especificar modelos, tamanhos de lote ou condições de processo / tensão / temperatura. Outros usaram o benchmark ResNet-50, que é um modelo muito mais simples do que a maioria das pessoas precisa, portanto, seu valor na avaliação das opções de inferência é questionável.

Percorremos um longo caminho desde aqueles primeiros dias. As empresas lentamente descobriram que o que realmente importa ao medir o desempenho dos chips de inferência é 1) alta utilização do MAC, 2) baixo consumo de energia e 3) você precisa manter tudo pequeno.

Nós sabemos como medir - o que vem a seguir?

Agora que temos uma boa ideia de como medir o desempenho de um chip de inferência em relação a outro, as empresas estão se perguntando quais são as vantagens (ou desvantagens) de usar vários chips de inferência juntos no mesmo projeto. A resposta simples é que o uso de vários chips de inferência, quando o chip de inferência é projetado da maneira certa, pode fornecer aumentos lineares no desempenho. A analogia de uma rodovia não está muito distante quando olhamos para o uso de vários chips de inferência. A empresa deseja o desempenho de uma rodovia de uma faixa ou de uma rodovia de quatro faixas?

Claramente, toda empresa deseja uma rodovia de quatro vias, então a questão agora é "como entregar esta rodovia de quatro pistas sem criar tráfego e gargalos?" A resposta depende da escolha do chip de inferência correto. Para explicar, vamos dar uma olhada em um modelo de rede neural.

As redes neurais são divididas em camadas. Camadas como ResNet-50 têm 50 camadas, YOLOv3 tem mais de 100 e cada camada recebe uma ativação da camada anterior. Assim, na camada N, a saída dela é uma ativação que vai para a camada N + 1. Ele espera que essa camada entre, um cálculo é feito e a saída são as ativações que vão para a camada n + 2. Isso continua pelo comprimento das camadas até que você finalmente obtenha um resultado. Lembre-se de que a entrada inicial deste exemplo é uma imagem ou qualquer conjunto de dados que está sendo processado pelo modelo.

Quando vários chips fazem a diferença

A realidade é que se você tem um chip com certo nível de desempenho, sempre haverá um cliente que deseja o dobro ou quatro vezes mais desempenho. Se você analisar o modelo da rede neural, é possível conseguir isso em alguns casos. Você só precisa ver como divide o modelo entre dois ou quatro chips.

Isso tem sido um problema com o processamento paralelo ao longo dos anos porque é difícil descobrir como particionar qualquer processamento que você está fazendo e ter certeza de que está tudo somado, em vez de ser subtraído quando se trata de desempenho.

Ao contrário do processamento paralelo e da computação de uso geral, o bom dos chips de inferência é que os clientes normalmente sabem com antecedência se desejam usar dois chips, para que o compilador não tenha que descobrir na hora - é feito no momento da compilação. Com modelos de rede neural, tudo é totalmente previsível para que possamos analisar e descobrir exatamente como dividir o modelo e se ele funcionará bem em dois chips.

Para ter certeza de que o modelo pode ser executado em dois ou mais chips, é importante observar o tamanho da ativação e o número de MACs camada por camada. O que normalmente acontece é que as maiores ativações estão nas camadas iniciais. Isso significa que os tamanhos de ativação diminuem lentamente conforme o número de camadas aumenta.

Também é importante olhar para o número de MACs e quantos MACs são feitos em cada ciclo. Na maioria dos modelos, o número de MACs realizados em cada ciclo geralmente se correlaciona com os tamanhos de ativação. Isso é importante porque, se você tiver dois chips e quiser operar na frequência máxima, precisará atribuir cargas de trabalho iguais a cada chip. Se um chip está fazendo a maior parte do modelo e o outro chip está fazendo apenas uma pequena parte do modelo, você será limitado pelo rendimento do primeiro chip.

Como você divide o modelo entre os dois chips também é importante. Você precisa olhar para o número de MACs porque isso determina a distribuição da carga de trabalho. Você também deve observar o que se passa entre as fichas. Em algum ponto, você precisa dividir o modelo em um local onde a ativação que você passou seja a menor possível, de forma que a quantidade de largura de banda de comunicação necessária e a latência da transmissão sejam mínimas. Se você fatiar o modelo em um ponto onde a ativação é muito grande, a transmissão da ativação pode se tornar o gargalo que limita o desempenho da solução de dois chips.

O gráfico abaixo mostra para YOLOv3, Winograd, imagens de 2 megapixels, o tamanho da saída de ativação e as operações Mac cumulativas camada por camada (as camadas de convolução são plotadas). Para equilibrar a carga de trabalho entre dois chips, o modelo será reduzido em aproximadamente 50% das operações MAC cumulativas - neste ponto, as ativações para passar de um chip para o outro são de 1 MB ou 2 MB. Para dividir entre 4 cavacos, os cortes são de aproximadamente 25%, 50% e 75%; observe que os tamanhos de ativação são maiores no início, então o ponto de corte de 25% tem 4 ou 8 MB de ativações para passar.



Clique aqui para ampliar a imagem
Tamanho de saída de ativação (barras azuis) e operações MAC cumulativas camada por camada (linha vermelha) para imagens YOLOv3 / Winograd / 2 megapixels , mostrando como a carga de trabalho é dividida entre vários chips (Imagem:Flex Logix)

Ferramentas de desempenho

Felizmente, as ferramentas de desempenho agora estão disponíveis para garantir um alto rendimento. Na verdade, a mesma ferramenta que modela o desempenho de um único chip pode então ser generalizada para modelar o desempenho de dois chips. Embora o desempenho de qualquer camada seja exatamente o mesmo, o problema é como a transmissão de dados afeta o desempenho. A ferramenta de modelagem precisa levar isso em consideração porque, se a largura de banda necessária não for suficiente, essa largura de banda limitará a taxa de transferência.

Se você estiver trabalhando com quatro chips, precisará de largura de banda maior porque as ativações no primeiro trimestre do modelo tendem a ser maiores do que as ativações na parte posterior do modelo. Portanto, a quantidade de recursos de comunicação em que você investe permitirá que você vá para um número maior de chips encadeados juntos, mas isso será um custo indireto que todos os chips terão de arcar, mesmo que sejam chips autônomos.

Conclusão

O uso de vários chips de inferência pode fornecer melhorias significativas no desempenho, mas apenas quando a rede neural é projetada corretamente, conforme descrito acima. Se olharmos para trás para a analogia da rodovia, há muitas oportunidades para permitir o aumento do tráfego usando o chip errado e o modelo de rede neural errado. Se você começar com o chip certo, está no caminho certo. Lembre-se de que a taxa de transferência, não os benchmarks TOPS ou Res-Net50, é o que mais importa. Depois de selecionar o chip de inferência certo, você pode projetar um modelo de rede neural igualmente poderoso que fornece desempenho máximo para as necessidades de sua aplicação.

- Geoff Tate é o CEO da Flex Logix





Integrado

  1. Uso de SaaS e nuvem exige organização cuidadosa de dados
  2. C# usando
  3. RISC-V International e CHIPS Alliance colaboram na OmniXtend
  4. Módulo Tiny integra vários biossensores
  5. Pacote de design PCB leva para a nuvem
  6. Planejamento de movimento em tempo real para carro autônomo em várias situações , sob ambiente urbano simulado
  7. Iniciativas digitais de chão de fábrica se beneficiam de um planejamento cuidadoso
  8. AI prevê a rapidez com que os chips de computador executam o código
  9. Alimente vários dispositivos vestíveis sem fio usando uma única fonte
  10. Como chamar um Bloco Funcional de um Cliente OPC UA usando um Modelo de Informação