Deep Learning – Uma abordagem em Hardware
Deep Learning é a nomenclatura dada ao conjunto mais recente de técnicas de inteligência artificial e aprendizado de máquina. Contudo, esse tipo de técnica envolve múltiplas operações matemáticas, especialmente matriciais. Assim, muitas vezes o hardware utilizado se torna um gargalo no treinamento e desenvolvimento de sistemas que utilizam essa técnica. Portanto, nesse texto discutimos os principais requisitos e modelos de hardware aplicados ao treinamento e deploy de algoritmos de Deep Learning.
Redes Neurais Convolucionais – Estado da Arte em Deep Learning
Anteriormente, já discutimos os conceitos de Inteligência Artificial, Deep Learning e Redes Neurais Artificiais. Sendo assim, discutiremos agora o que se considera como parte do estado da arte na área: Redes Convolucionais. Esse tipo de rede é especialmente aplicado a problemas de visão computacional, pois tem grande poder de extração de informações e reconhecimento de padrões.

Fonte: https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-deep-learning-99760835f148
Conforme a ilustração sugere, uma Rede Neural Convolucional tem duas etapas: Extração de informações e Classificação. Cada execução de um algoritmo como esse envolve múltiplas operações matriciais, que são comumente caras do ponto de vista computacional. Além disso, o processo de treinamento de uma rede como essa requer milhares de execuções para o ajuste de cada um dos milhares ou milhões de pesos envolvidos no processo. O vídeo abaixo, por exemplo, mostra uma rede neural com essa característica que possui cerca de 500 000 neurônios. Dessa forma, os processos envolvidos no desenvolvimento desse tipo de algoritmo envolvem a exploração dos limites do poder computacional atual.
Problemas de Hardware para Deep Learning
Conforme mencionado, a capacidade computacional desses algoritmos depende da realização de operações matemáticas como equações algébricas e matriciais. Embora tenhamos presenciado um aumento da capacidade dos processadores, o avanço na velocidade de execução de algoritmos não tem acompanhado essa evolução. Da mesma forma, uma análise mostrada por Karl Rupp aborda exatamente esse problema. Segundo esses dados, o aumento do número de transistores em processadores tem causado um aumento de performance cada vez menor.

(Fonte: https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/)
Ao mesmo tempo que os problemas citados limitam a evolução dos algoritmos, eles também abrem uma “corrida do ouro” para produzir soluções de suporte a nível de Hardware. Dessa maneira, empresas como Microsoft, Google, NVIDIA e Apple buscam soluções de apoio a inteligência artificial moderna.
GPUs, TPUs e Aceleradores de Hardware
A empresa Microsoft apresentou o Projeto Brainwave como proposta de hardware aplicada para resolver esse problema. Primordialmente, essa solução utiliza aceleração de Hardware com tecnologia de FPGA. Além disso, a empresa aposta em uma arquitetura de alta performance, somada a elementos de software otimizados para compilação e runtime.

(Fonte: https://www.microsoft.com/en-us/research/blog/microsoft-unveils-project-brainwave/)
Da mesma forma, a empresa Google oferece uma solução de hardware especializada, chamada Tensor Processing Unit. Essa ferramenta de hardware otimiza o uso da plataforma TensorFlow, a mais popular e mais utilizada para implementação de algoritmos de Deep Learning. Esse produto já está disponível assinando serviços de Cloud da Google. Ainda mais, qualquer um pode fazer uso de unidades TPU em Cloud por um tempo utilizando a plataforma Google Colaboratory.

(Fonte: https://cloud.google.com/tpu/)
Assim como a Google, outra empresa que apresenta soluções de Hardware otimizada para TensorFlow é a NVIDIA. Primeiramente, a plataforma TensorFlow é oficialmente otimizada para implementações utilizando CUDA, a linguagem das GPUs NVIDIA. GPUs são otimizadas para realizar operações matriciais rapidamente, o que é favorável ao propósito de treinamento e deploy de modelos.

(Fonte: https://medium.com/brasil-ai/instalando-tensorflow-1-6-0-gpu-cuda-9-1-cudnn-7-1-3-no-arch-linux-manjaro-e068b3a8025f)
Ao mesmo tempo, a NVIDIA está investindo no desenvolvimento de Hardware especializado para implementações de Redes Neurais de Deep Learning. Ela apresentou novas arquiteturas de GPU com a finalidade de dar suporte a algoritmos de IA, como a NVIDIA Volta.

(Fonte: https://www.leak.pt/nvidia-novas-placas-graficas-volta/)
Finalmente, a empresa Apple apresentou recentemente uma unidade de suporte a redes neurais na arquitetura de hardware do novo iPhone X. O Apple Neural Engine é uma solução de suporte a redes neurais a nível de Hardware para dispositivos móveis da empresa.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/9236273/Screen_Shot_2017_09_13_at_10.03.57_AM.png)
(Fonte: https://www.theverge.com/2017/9/13/16300464/apple-iphone-x-ai-neural-engine)