A IA está a “engolir” o hardware

TomMorisse

Artigo de Tom Morisse, research manager na FABERNOVEL INNOVATE Paris

O destaque dado, atualmente, à inteligência artificial tem sido alimentado por avanços no hardware computacional, graças ao aparecimento de UPGs (Unidades de Processamento  Gráfico) e de infraestruturas de cloud computing. Mas, mais interessante é o facto de o frenesim em torno da IA ser, agora, tão forte que a relação com o hardware começou a inverter-se: os requisitos específicos da IA estão a influenciar fortemente o desenvolvimento de novas plataformas, desde os chips aos cálculos de programação.

Chips, o tema em cima da mesa

Os principais chips que alimentam os servidores serão os primeiros a moldar o cenário, em transformação, do hardware. Até agora, a UCP (Unidade Central de Processamento) tem sido o chip mais importante utilizado tanto pelo consumidor – nos microprocessadores “Intel inside”, por exemplo –, como em dispositivos nas empresas. Esta unidade é, normalmente, descrita como o “cérebro” de um computador, pois garante que as instruções são bem executadas e coordena a atividade dos outros componentes.

O mercado de servidores é também a garantia dos UCPs da Intel. Dizer que esta é a líder de mercado seria um eufemismo: tinha uma quota de mercado de 99% em 2015.

Com a ascensão do machine learning, especificamente do deep learning, os modelos utilizados têm necessidades diferentes das dos programas convencionais. Para serem treinados de forma mais eficiente, exigem que os computadores façam muitos cálculos simultaneamente (particularmente no que se refere às redes neuronais, uma vez que o cálculo das condições de vários neurónios é, naturalmente, uma tarefa paralela); enquanto, por outro lado, um UCP é um processador com um propósito geral perito em cálculos sequenciais.

3 tipos de chips executam modelos de machine learning muito mais rápido do que UCPs:

UPGs: O Poder do Paralelismo

As UPGs (Unidades de Processamento Gráfico) são, atualmente, o grande destaque nos cálculos de machine learning. Como o nome indica, as UPGs foram criadas no final dos anos 90 para acelerar o processamento de vídeo e, consequentemente, a sua capacidade para fazer cálculos em simultâneo, uma vez que têm de processar os inúmeros pixéis que compõem cada frame de um vídeo.

A NVIDIA é o principal fabricante de UPGs e, como tal, é uma empresa valorizada pelos gamers, mas agora passou também a sê-lo pelos investigadores e empresas na área da IA. Hoje, a empresa adapta UPGs para casos de utilização de deep learning, oferecendo  também estruturas de programação, isto porque UCPs e UGPs não são intersubstituíveis e é necessário adaptar programas para que funcionem com UGPs.

CIAE: O Poder da Customização

Circuito Integrado de Aplicação Específica (CIAE) é um nome generalizado dado a uma classe de chips que são feitos à medida para uma finalidade específica. Alguns CIAEs são chips otimizados, por exemplo, com o propósito exclusivo de adicionar um histórico de transações feitos com a moeda virtual Bitcoin.

Nos últimos anos, várias startups começaram a trabalhar na criação de chips dedicados à IA. A Nervana Systems, adquirida pela Intel em Agosto de 2016 por 350 milhões de dólares, está atualmente a desenvolver um CIAE que promete “aumentar 10x a velocidade de treino” (a ser lançado este ano), e a Graphcore prepara-se para introduzir a sua Unidade de Processamento Inteligente este ano, assegurando uma melhoria da velocidade de 10x para 100x.

Mais interessante do que isso é o facto de a Google ter revelado, em Maio de 2016, que executou, durante um ano nos seus data centers, um CIAE específico para o machine learning – apelidado de Unidade de Processamento Tensor.

MPCP: O Poder da Flexibilidade

As matrizes de portas de campo programáveis (MPCP) são um tipo de circuito integrado que pode ser reconfigurado depois da produção. Estas matrizes já existem há algumas décadas, sendo utilizadas para prototipar outros processadores, mas também têm grandes vantagens para investigadores de IA. Primeiro, porque podem ser personalizadas para se adaptar a um modelo de IA; depois porque têm maior eficiência energética do que as UPGs.

Os dois líderes de mercado das MPCP são a Xilinx e a Altera. A última foi adquirida pela Intel em 2015 por 17 mil milhões de dólares. Como vai agora perceber, a Intel está  claramente a restringir as suas apostas.

Com isto, não queremos dizer que as UCPs vão desaparecer: todos os chips mencionados acima são compatíveis com UCPs. E a Intel também está a melhorar os seus servidores UPCs topo de gama, para servir melhor o mercado de IA. Mas a importância das UCPs vai, sem dúvida alguma, diminuir num futuro próximo.

Porque é que deve prestar atenção aos chips

1) A configuração do servidor vai mudar…

Os chips não são, obviamente, um fim por si próprios. O servidor é que é a ferramenta principal, uma vez que se acopla a outros componentes, numa gama diversa de arquiteturas possíveis. Pelo que a indústria dos servidores, dominada pela Dell e da HPE (e fornecedores de cloud, como a Amazon Web Services e a Google, que construíram as suas próprias estruturas), pode vir a ser abalada.

A este respeito, há que destacar a ascensão da NVIDIA, uma vez que está a crescer, gradualmente, na cadeia de valor com o seu supercomputador DGX-1 (129 mil dólares) e chegou, até, a criar o seu próprio supercomputador de forma integral baseado neste elemento:

DGX-SATURNV

Criado e utilizado internamente pela NVIDIA, o DGX SATURNV inclui 124 sistemas DGX-1  é o supercomputador com maior eficiência energética no mundo.

2) …o que terá impacto no ranking de liderança na cloud  

Grandes empresas e startups podem comprar diretamente hardware, mas uma percentagem crescente da sua utilização de TI é feita através de fornecedores de cloud, que são os players que, realmente, escrutinam o desenvolvimento de novos chips.

Esta corrida tem como objetivo oferecer a melhor infraestrutura de cloud para servir as necessidades da IA, e várias abordagens estão em competição. A Microsoft começou a implementar uma nova arquitetura para data centers, que inclui matrizes de portas de campo programáveis da Intel Altera; a Amazon Web Service começou a oferecer acesso a matrizes de portas de campo programáveis, da Xilinx, e a Google tem uma abordagem de propriedade, uma vez que desenvolve in-house circuitos de Unidade de Processamento Tensor.

AWS-F1

A disponibilidade de matrizes de portas de campo programáveis na Amazon Web Services foi uma das grandes novidades da sua última conferência de programadores. 

3) Linguagens standard e estruturas vão emergir

O hardware, qualquer que seja a forma como é acedido, é inútil sem as linguagens e  as estruturas que facilitam a programação. E é por isso que a definição de standards também faz parte da “batalha” hardware/cloud, que é a mais difícil de compreender, uma vez que existem vários níveis de abstração. Tais como: linguagens de programação de alto nível, estruturas de deep-learning para iniciar redes neuronais, APIs de nível baixo que têm acesso direto aos chips…

Existe uma competição, por exemplo, entre o standard open-source OpenCL, que ajuda a programar uma ampla gama de chips de computação paralela (tais como as UPGs e  as MPCPs) e a CUDA, uma plataforma da NVIDIA, cujo objetivo é, naturalmente, vender os seus próprios UPGs … mas este último também suporta o OpenCL.

Conclusões

Se a inteligência artificial se tornar crucial nos processos de trabalho dos negócios, será essencial escolher a arquitetura de hardware certa (nas instalações ou na cloud) para acelerar a transformação.

No entanto, ainda estamos numa fase inicial do hardware de IA e ainda nenhuma solução tecnológica tomou a liderança. Pelo que, independentemente da dimensão da sua empresa, uma grande empresa ou uma startup, aqui ficam 3 recomendações para tirar o máximo partido dos recursos atuais:

  1. Não apostar tudo numa única tecnologia! Compreender em linhas gerais esta área e experimentar diversas opções é a melhor forma de tirar proveito das oportunidades futuras. Em resumo: por agora, abrangência >> profundidade.
  2. Mais do que o domínio de tecnologias específicas, a chave será a capacidade de assegurar uma ligação eficaz entre as mesmas. Conseguiria, por exemplo, com facilidade aplicar um algoritmo de machine learning de uma plataforma atual de hardware para uma nova?
  3. Se precisar de usar uma tecnologia específica para um caso particular de utilização, os fornecedores de cloud são a melhor plataforma de teste. Desta forma, é possível descobrir o ROI do caso de utilização, antes de investir na sua própria infraestrutura, se isso fizer sentido (financeiramente), ou optar por outra tecnologia, se necessário.