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 CCO 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 CCNo 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 :