Como funciona o ASIC para a aceleração da IA?

9

Podemos ler na página da Wikipedia que o Google construiu um chip ASIC personalizado para aprendizado de máquina e personalizado para o TensorFlow, que ajuda a acelerar a IA.

Como os chips ASIC são especialmente personalizados para um uso específico, sem a capacidade de alterar seu circuito, deve haver algum algoritmo fixo que é invocado.

Então, como exatamente a aceleração da IA ​​usando chips ASIC funciona se seu algoritmo não pode ser alterado? Qual parte está exatamente acelerando?

kenorb
fonte
11
No tradicional técnica de IA que eu estou ciente de requer a modificação do algoritmo , embora a maioria são dependentes da capacidade de modificar dados (forças de conexão, os membros da população) etc.
NietzscheanAI
Portanto, a única parte dinâmica como o estado da rede é mantida em alguma memória flash ou unidade?
Kenorb 17/08
De acordo com en.wikipedia.org/wiki/Application-specific_integrated_circuit , ASICs modernos podem ter RAM ...
NietzscheanAI

Respostas:

4

Operações tensoriais

O principal trabalho na maioria das aplicações de ML é simplesmente um conjunto de operações de tensores (muito grandes), por exemplo, multiplicação de matrizes. Você pode fazer isso facilmente em um ASIC, e todos os outros algoritmos podem ser executados em cima disso.

Peter é
fonte
11
Um ponto importante é que o TPU usa multiplicação de 8 bits, que pode ser implementada com muito mais eficiência do que a multiplicação mais ampla oferecida pela CPU. Uma precisão tão baixa é suficiente e permite embalar muitos milhares desses multiplicadores em um único chip.
Maaartinus 27/0318
3

Eu acho que o algoritmo mudou minimamente, mas o hardware necessário foi cortado até os ossos.

O número de transições de porta é reduzido (talvez operações flutuantes e precisão também), assim como o número de operações de movimentação de dados, economizando energia e tempo de execução. O Google sugere que o TPU alcança uma economia de 10 vezes os custos para realizar o mesmo trabalho.

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html

Randy
fonte
1

ASIC - significa IC específico da aplicação. Basicamente, você escreve programas para projetar um chip em HDL . Analisarei como os computadores modernos funcionam para explicar meu argumento:

  • CPU's - CPU's são basicamente um microprocessador com muitos ICs auxiliares executando tarefas específicas. Em um microprocessador, existe apenas uma única unidade de Processamento Aritmético (termo composto) chamada Acumulador, na qual um valor deve ser armazenado, pois os cálculos são realizados apenas e apenas os valores armazenados no acumulador. Assim, todas as instruções, todas as operações, todas as operações de R / W devem ser realizadas através do acumulador (é por isso que os computadores mais antigos costumavam congelar quando você escrevia de um arquivo para algum dispositivo, embora hoje em dia o processo tenha sido refinado e talvez não exija acumulador para entrar especificamente DMA) Agora, nos algoritmos de ML, você precisa realizar multiplicações de matrizes que podem ser facilmente paralelizadas, mas nós temos em nossa unidade apenas uma única unidade de processamento e as GPUs vieram assim.
  • GPUs - As GPUs possuem centenas de unidades de processamento, mas elas não possuem os recursos polivalentes de uma CPU. Portanto, eles são bons para cálculos paralelizáveis. Como não há sobreposição de memória (a mesma parte da memória sendo manipulada por 2 processos) na multiplicação de matrizes, as GPUs funcionarão muito bem. Embora a GPU não seja multifuncional, ela funcionará apenas tão rápido quanto uma CPU alimenta dados em sua memória.
  • ASIC - ASIC pode ser qualquer GPU, CPU ou processador do seu design, com qualquer quantidade de memória que você desejar. Digamos que você queira projetar seu próprio processador ML especializado, projetar um processador no ASIC. Você quer um número FP de 256 bits? Crie um processador de 256 bits. Você quer que sua soma seja rápida? Implementar somador paralelo até um número maior de bits que os processadores convencionais? Você quernNúmero de núcleos? Sem problemas. Deseja definir o fluxo de dados de diferentes unidades de processamento para diferentes locais? Você consegue. Além disso, com um planejamento cuidadoso, você pode obter uma troca entre a área ASIC x potência x velocidade. O único problema é que, para tudo isso, você precisa criar seus próprios padrões. Geralmente, alguns padrões bem definidos são seguidos no design de processadores, como número de pinos e sua funcionalidade, padrão IEEE 754 para representação de ponto flutuante, etc., que surgiram após várias tentativas e erros. Portanto, se você conseguir superar tudo isso, poderá criar facilmente seu próprio ASIC.

Eu não sei o que o Google está fazendo com seus TPU's, mas aparentemente eles criaram algum tipo de padrão Integer e FP para seus núcleos de 8 bits, dependendo dos requisitos em questão. Eles provavelmente estão implementando o ASIC por questões de potência, área e velocidade.

DuttaA
fonte
0

A baixa precisão permite o cálculo de alto paralelismo nas camadas Convo e FC. Arquitetura fixa de CPU e GPU, mas o ASIC / FPGA pode ser projetado com base na arquitetura de rede neural

Mahi
fonte