Como acelerar o aprendizado de máquina GPU - nova plataforma de código aberto introduzida

A Nvidia apresentou a plataforma de código aberto Rapids, cuja missão é acelerar os algoritmos de aprendizado de máquina da GPU. Falamos sobre os recursos da ferramenta e seus análogos.


/ foto Martin Brigden CC

O problema do treinamento de redes neurais


A lista de tecnologias da Nvidia inclui arquitetura de computação paralela CUDA. Seu objetivo é acelerar a computação transferindo parte das tarefas da GPU em vez da CPU. Em alguns casos, isso permite acelerar o trabalho de aplicativos e algoritmos em 18 vezes.

Por esse motivo, encontrou ampla aplicação no campo de aprendizado de máquina. Por exemplo, pesquisadores das universidades da Flórida e Carolina do Norte estão desenvolvendo com sua ajuda um mecanismo de rede neural para simulações quânticas.

Um grande número de bibliotecas diferentes é usado para desenvolver algoritmos MO. Muitos deles são escritos em Python . Mas nem todos eles suportam o trabalho com a CUDA. Ferramentas Python para aprendizado de máquina scikit-learn e pandas são exemplos dessas ferramentas. Para executar o código Python na arquitetura CUDA, os pesquisadores usam bibliotecas Numba ou PyCUDA separadas. Ao mesmo tempo, o código de alguns componentes deve ser reescrito manualmente, o que é difícil, pois você precisa conhecer os recursos de programação da GPU.

Solução Nvidia


Em um esforço para automatizar a portabilidade de código, a Nvidia apresentou a nova plataforma Rapids aberta. Os desenvolvedores não precisam recorrer a bibliotecas diferentes: eles apenas escrevem código em Python, e o Rapids o otimiza automaticamente para executar na GPU.

Para mapear processos, o Rapids usa um banco de dados comum, que fica na memória da GPU. Os dados são armazenados no formato Apache Arrow, que é comum a todas as ferramentas da plataforma. Essa solução ajuda a acelerar o processo de aprendizado de máquina em 50 vezes em comparação com os sistemas que usam processadores gráficos e centrais.

Ao mesmo tempo, as ferramentas estão disponíveis na plataforma Rapids, com a ajuda de que todo o processo de trabalho com redes neurais pode ser realizado em um chip gráfico: da preparação dos dados à saída do resultado.

O número de soluções no repositório do GitHub Rapids é ativamente reabastecido. Por exemplo, existe uma biblioteca cuDF para preparar dados e treinar uma rede neural, e a biblioteca cuML permite desenvolver algoritmos de aprendizado de máquina sem entrar nos detalhes da programação do CUDA.

A Nvidia continuará a desenvolver a plataforma. Os criadores do projeto planejam adicionar ferramentas para visualização de dados, análise de gráficos e aprendizado profundo ao Rapids. O programa também integra a estrutura do Apache Spark.

O que eles acham da plataforma


A comunidade de tecnologia apoiou o lançamento do Rapids, mas seu desenvolvimento levantou várias questões de especialistas e usuários.

Por exemplo, gerentes da Cisco, Dell, NetApp, Lenovo e outras empresas falaram em apoio à nova solução. O CEO da Anaconda, Scott Collison, disse que o Rapids simplificará a coleta e a preparação de dados para o treinamento de sistemas complexos de IA. O criador de Apache Arrow e pandas, Wes McKinney, concorda com ele. Segundo ele, o Rapids levará ao aumento da produtividade em tarefas relacionadas à criação de recursos ( engenharia de recursos ).


/ foto Máquina de lixar CC

No entanto, a comunidade também acredita que o Rapids não pode ser considerado um projeto verdadeiramente de código aberto. O sistema funciona apenas com cartões Nvidia, e o lançamento da plataforma pode ser uma jogada de marketing para atrair novos clientes. A empresa ainda não especificou se a plataforma funcionará com dispositivos de outros fabricantes.

Quem já está usando o Rapids


A IBM planeja implementar a plataforma em serviços para trabalhar com sistemas de inteligência artificial: PowerAI, Watson e IBM Cloud. A Oracle também anunciou o suporte para o Rapids - uma plataforma disponível na infraestrutura do Oracle Cloud.

O novo produto da Nvidia também foi testado pelo Walmart e Uber. Os primeiros Rapids ajudaram a melhorar os algoritmos do sistema responsável pelo gerenciamento de inventário. Segundo representantes do varejista, o Rapids acelerou a implantação de algoritmos de aprendizado de máquina. Quanto ao Uber, a empresa usa o Rapids no desenvolvimento de sistemas de veículos não tripulados.

Solução alternativa


A Nvidia não está apenas desenvolvendo uma plataforma para acelerar o MO. Por exemplo, a AMD está envolvida no projeto ROCm (Radeon Open Compute). É uma plataforma aberta para computação de alto desempenho na GPU.

Uma característica do ROCm é que ele não depende da linguagem de programação e é capaz de funcionar com praticamente qualquer placa de vídeo. Incluindo com cartões Nvidia. Para isso , é usado um dialeto C ++ especial chamado HIP. Simplifica a conversão de aplicativos CUDA em código C ++ portátil. O código é convertido automaticamente por um sistema Hipify especial.

Ao mesmo tempo, o ROCm suporta um grande número de bibliotecas de aceleração matemática. Entre eles, BLAS, FFT e convolução tensorial podem ser distinguidos.

Os especialistas do setor de TI apontam que as soluções de código aberto para acelerar a computação heterogênea e de GPU, como ROCm e Rapids, oferecem aos desenvolvedores a oportunidade de usar os recursos de computação com mais eficiência e obter mais desempenho do hardware disponível.



PS Alguns materiais do primeiro blog corporativo de IaaS:




PPS Brevemente sobre as tecnologias IaaS - em nosso canal Telegram :



Source: https://habr.com/ru/post/pt429286/


All Articles