GPUs na solução de problemas modernos de TI



As unidades de processamento gráfico (GPUs) são um excelente exemplo de como a tecnologia projetada para tarefas de processamento gráfico se espalhou para uma área não conectada da computação de alto desempenho. As GPUs modernas estão no centro de muitos projetos complexos no campo de aprendizado de máquina e análise de dados. Em nosso artigo de revisão, descreveremos como os clientes da Selectel usam equipamentos com uma GPU e pensam no futuro da ciência de dados e dispositivos de computação junto com os professores da Yandex Data Analysis School.

As GPUs mudaram muito nos últimos dez anos. Além de um tremendo aumento de produtividade, houve uma separação de dispositivos por tipo de uso. Portanto, as placas de vídeo para sistemas de jogos domésticos e instalações de realidade virtual se destacam em uma direção separada. Aparecem poderosos dispositivos altamente especializados: para sistemas de servidor, um dos principais aceleradores é o NVIDIA Tesla P100 , projetado especificamente para uso industrial em data centers. Além da GPU, estão em andamento pesquisas no campo da criação de um novo tipo de processador que imita o cérebro. Um exemplo é a plataforma de chip único Kirin 970 com seu próprio processador neuromórfico para tarefas relacionadas a redes neurais e reconhecimento de padrões.

Essa situação faz você pensar nos seguintes problemas:

  • Por que o campo de análise de dados e aprendizado de máquina se tornou tão popular?
  • Como as GPUs dominaram o mercado de equipamentos com uso intensivo de dados?
  • Que pesquisa no campo da análise de dados será mais promissora no futuro próximo?

Vamos tentar lidar com esses problemas em ordem, começando com os primeiros processadores de vídeo simples e terminando com os modernos dispositivos de alto desempenho.

Idade da GPU


Primeiro, vamos lembrar o que é uma GPU. A Unidade de processamento gráfico é um processador gráfico amplamente usado em sistemas de desktop e servidor. Uma característica distintiva deste dispositivo é o foco na computação paralela em massa. Ao contrário das GPUs, a arquitetura de outra CPU (Unidade Central do Processador) foi projetada para processamento de dados seqüencial. Se o número de núcleos em uma CPU comum é medido em dezenas, na GPU eles são contados em milhares, o que impõe restrições aos tipos de comandos executados, mas fornece alto desempenho computacional em tarefas que envolvem paralelismo.

Primeiros passos


O desenvolvimento de processadores de vídeo nos estágios iniciais estava intimamente ligado à crescente necessidade de um dispositivo de computação separado para o processamento de gráficos bidimensionais e tridimensionais. Antes do surgimento de circuitos de controladores de vídeo individuais nos anos 70, a saída da imagem era realizada através do uso de lógica discreta, que afetava o aumento do consumo de energia e o grande tamanho das placas de circuito impresso. Microcircuitos especializados permitiram destacar o desenvolvimento de dispositivos projetados para trabalhar com gráficos em uma direção separada.

O próximo evento revolucionário foi o surgimento de uma nova classe de dispositivos mais complexos e multifuncionais - processadores de vídeo. Em 1996, a 3dfx Interactive lançou o chipset Voodoo Graphics, que rapidamente ocupou 85% do mercado de dispositivos de vídeo especializados e tornou-se líder no campo de gráficos 3D da época. Após uma série de decisões mal sucedidas da administração da empresa, entre as quais a compra do fabricante da placa de vídeo STB, a 3dfx perdeu o campeonato para a NVIDIA e a ATI (mais tarde AMD), e em 2002 declarou falência.

Computação geral da GPU


Em 2006, a NVIDIA anunciou o lançamento da linha de produtos da série GeForce 8, que marcou o início de uma nova classe de dispositivos projetados para computação geral em GPUs (GPGPU). Durante o desenvolvimento, a NVIDIA chegou à conclusão de que um número maior de núcleos operando em uma frequência mais baixa é mais eficaz para cargas paralelas do que um pequeno número de núcleos mais produtivos. A nova geração de processadores de vídeo forneceu suporte para computação paralela não apenas para o processamento de fluxos de vídeo, mas também para problemas relacionados ao aprendizado de máquina, álgebra linear, estatística e outras tarefas científicas ou comerciais.



Líder reconhecido


As diferenças na configuração inicial de tarefas para CPU e GPU levaram a diferenças significativas na arquitetura dos dispositivos - alta frequência versus multi-core. Para as GPUs, isso criou o potencial de computação, que está sendo totalmente realizado no momento. Os processadores de vídeo com um número impressionante de núcleos de computação mais fracos fazem um excelente trabalho de computação paralela. O processador central, historicamente projetado para trabalhar com tarefas seqüenciais, continua sendo o melhor em seu campo.

Por exemplo, comparamos os valores no desempenho dos processadores central e gráfico que executam uma tarefa comum em redes neurais - multiplicação de matrizes de alta ordem. Selecionamos os seguintes dispositivos para teste:

  • CPU Intel Xeon E5-2680 v4 - 28 threads com HyperThreading, 2,4 GHZ;
  • GPU NVIDIA GTX 1080 - 2560 núcleos CUDA, 1607 Mhz, 8 GB GDDR5X.

Usamos um exemplo de cálculo da multiplicação de matrizes por CPU e GPU em um notebook Jupyter:



No código acima, medimos o tempo necessário para calcular matrizes da mesma ordem em uma central ou GPU ("Runtime"). Os dados podem ser representados na forma de um gráfico no qual o eixo horizontal exibe a ordem das matrizes que estão sendo multiplicadas e o eixo vertical mostra o tempo de execução em segundos:



A linha do gráfico, destacada em laranja, mostra o tempo necessário para criar dados na RAM convencional, transferi-los para a memória da GPU e os cálculos subsequentes. A linha verde mostra o tempo necessário para calcular os dados que já foram gerados na memória da placa de vídeo (sem transferi-los da RAM). Azul exibe o tempo de contagem no processador central. Matrizes da ordem de menos de 1000 elementos são multiplicadas pela GPU e CPU quase ao mesmo tempo. A diferença no desempenho é bem manifestada com matrizes maiores que 2000 em 2000, quando o tempo de computação na CPU salta para 1 segundo e a GPU permanece próxima de zero.

Tarefas mais complexas e práticas são resolvidas com mais eficiência em um dispositivo com processadores gráficos do que sem eles. Como os problemas que nossos clientes resolvem em equipamentos de GPU são muito diversos, decidimos descobrir quais são os casos de uso mais populares.

Quem em Selectel vive bem com a GPU?


A primeira opção que vem à mente imediatamente e acaba sendo o palpite certo é a mineração, mas é curioso notar que alguns a utilizam como uma maneira auxiliar de carregar o equipamento ao "máximo". No caso de alugar um servidor dedicado com placas de vídeo, o tempo livre de cargas de trabalho é usado para minerar criptomoedas que não exigem instalações especializadas (farms) para recebimento.

Tendo já se tornado um pouco clássicas, as tarefas relacionadas ao processamento e renderização gráfica invariavelmente encontram seu lugar nos servidores Selectel com aceleradores gráficos. O uso de equipamentos de alto desempenho para essas tarefas permite obter uma solução mais eficaz do que organizar estações de trabalho dedicadas com placas de vídeo.

Durante uma conversa com nossos clientes, também nos reunimos com representantes da Escola de Análise de Dados Yandex, que usa as instalações da Selectel para organizar ambientes educacionais de teste. Decidimos aprender mais sobre o que estudantes e professores estão fazendo, quais áreas de aprendizado de máquina são agora populares e o que o futuro reserva para o setor depois que jovens especialistas se juntam às fileiras das principais organizações ou lançam suas próprias startups.

Ciência de dados


Talvez, entre nossos leitores, não haja quem não ouça a frase "redes neurais" ou "aprendizado de máquina". Tendo descartado variações de marketing sobre o assunto dessas palavras, um resíduo seco é obtido na forma de uma ciência de dados emergente e promissora.

A abordagem moderna para trabalhar com dados inclui várias áreas principais:

  • Big data O principal problema nessa área é a quantidade colossal de informações que não podem ser processadas em um único servidor. Do ponto de vista do suporte à infraestrutura, é necessário resolver os problemas de criação de sistemas de cluster, escalabilidade, tolerância a falhas e armazenamento de dados distribuídos;
  • Tarefas com muitos recursos (aprendizado de máquina, aprendizado profundo e outros). Nesse caso, surge a questão do uso da computação de alto desempenho, exigindo uma grande quantidade de RAM e recursos do processador. Nessas tarefas, sistemas com aceleradores gráficos são usados ​​ativamente.


A fronteira entre os dados de direção está gradualmente apagando: as principais ferramentas para trabalhar com big data (Hadoop, Spark) implementam suporte à computação de GPU, e as tarefas de aprendizado de máquina cobrem novas áreas e exigem mais dados. Professores e alunos da Escola de Análise de Dados nos ajudarão a entender com mais detalhes.



É difícil superestimar a importância do trabalho competente com os dados e a implementação apropriada de ferramentas analíticas avançadas. Não se trata nem de big data, de seus "lagos" ou "rios", mas de interação intelectual com informações. O que está acontecendo agora é uma situação única: podemos coletar uma grande variedade de informações e usar ferramentas e serviços avançados para análises aprofundadas. Os negócios introduzem essas tecnologias não apenas para obter análises avançadas, mas também para criar um produto exclusivo em qualquer setor. É o último ponto que molda e estimula amplamente o crescimento do setor de análise de dados.

Nova direção


Em toda parte, estamos cercados de informações: dos registros das empresas de Internet e das operações bancárias ao testemunho de experimentos no Large Hadron Collider. A capacidade de trabalhar com esses dados pode gerar milhões de lucros e dar respostas a perguntas fundamentais sobre a estrutura do Universo. Portanto, a análise de dados se tornou uma área separada de pesquisa entre a comunidade comercial e científica.

A escola de análise de dados prepara os melhores especialistas e cientistas especializados que no futuro se tornarão a principal fonte de desenvolvimentos científicos e industriais nesse campo. O desenvolvimento do setor também nos afeta como fornecedor de infraestrutura - mais e mais clientes estão solicitando configurações de servidor para tarefas de análise de dados.

As especificidades das tarefas que nossos clientes enfrentam dependem de quais equipamentos devemos oferecer a eles e em que direção nossa linha de produtos deve ser desenvolvida. Juntamente com Stanislav Fedotov e Oleg Ivchenko, entrevistamos alunos e professores da Escola de Análise de Dados e descobrimos quais tecnologias eles usam para resolver problemas práticos.



Tecnologias de Análise de Dados


Durante o treinamento, os alunos do básico (matemática básica avançada, algoritmos e programação) alcançam as áreas mais avançadas do aprendizado de máquina. Coletamos informações sobre aqueles que usam servidores com GPUs:

  • Aprendizagem profunda;
  • Treinamento de reforço;
  • Visão computacional;
  • Processamento automático de texto.

Os alunos usam ferramentas especializadas em seus trabalhos e estudos. Algumas bibliotecas são projetadas para trazer dados para o formulário necessário, enquanto outras são projetadas para trabalhar com um tipo específico de informação, por exemplo, texto ou imagens. O aprendizado profundo é uma das áreas mais desafiadoras na análise de dados que faz uso extensivo de redes neurais. Decidimos descobrir quais professores e alunos usam as estruturas para trabalhar com redes neurais.



As ferramentas apresentadas têm um suporte diferente dos criadores, mas, no entanto, continuam sendo ativamente usadas para fins de treinamento e trabalho. Muitos deles exigem equipamentos produtivos para lidar com tarefas em um prazo adequado.

Desenvolvimento e projetos adicionais


Como qualquer ciência, a direção da análise de dados mudará. A experiência que os alunos obtêm hoje, sem dúvida, formará a base de desenvolvimentos futuros. Portanto, é importante destacar separadamente a alta orientação prática do programa - alguns estudantes, enquanto estudam ou depois, começam a se formar no Yandex e aplicam seus conhecimentos já em serviços e serviços reais (pesquisa, visão computacional, reconhecimento de fala e outros).

Conversamos sobre o futuro da análise de dados com os professores da Escola de Análise de Dados, que compartilharam conosco sua visão do desenvolvimento da ciência de dados.

De acordo com Vlad Shahuro , professor do curso “Análise de imagem e vídeo”, as tarefas mais interessantes em visão computacional são garantir a segurança em locais lotados, dirigir um veículo não tripulado e criar um aplicativo usando realidade aumentada. Para resolver esses problemas, é necessário ser capaz de analisar qualitativamente os dados de vídeo e desenvolver principalmente algoritmos para detectar e rastrear objetos, reconhecendo uma pessoa pela face e reconstrução tridimensional da cena observada. O professor Victor Lempitsky , um dos principais cursos aprofundados, destaca os auto-codificadores, bem como as redes generativas e competitivas, em sua direção.

Um dos mentores da Escola de Análise de Dados compartilha sua opinião sobre a disseminação e o início do uso em massa do aprendizado de máquina:

“O aprendizado de máquina, dentre os poucos pesquisadores obcecados, está se transformando em mais uma ferramenta para o desenvolvedor médio. Anteriormente (por exemplo, em 2012), as pessoas escreviam códigos de baixo nível para treinar redes convolucionais em um par de placas de vídeo. Agora, qualquer um pode em questão de horas:

  • faça o download dos pesos de uma rede neural já treinada (por exemplo, em keras);
  • faça com que seja uma solução para sua tarefa ( ajuste fino, aprendizado a zero );
  • incorpore-o ao seu site ou aplicativo móvel (tensorflow / caffe 2).

Muitas grandes empresas e startups já venceram essa estratégia (por exemplo, Prisma), mas ainda há mais problemas a serem descobertos e resolvidos. E talvez toda a história da máquina / aprendizado profundo se torne um dia tão comum quanto o python ou o excel agora. ”

De acordo com Oleg Ivchenko , administrador da infraestrutura do servidor ShAD, os recursos padrão para aprendizado profundo em conjuntos de dados padrão (por exemplo, CIFAR, MNIST) requerem os seguintes recursos:

  • 6 núcleos de CPU;
  • RAM de 16 Gb;
  • 1 placa GPU com 6-8 Gb de memória de vídeo. Isso corresponde a placas gráficas como a PNY NVIDIA GeForce GTX 1060 ou MSI GeForce GTX 1070.

Ninguém pode prever com precisão a tecnologia do futuro hoje, mas quando há um certo vetor de movimento, você pode entender o que deve ser estudado agora. E há muitas oportunidades para isso no mundo moderno.

Oportunidades para iniciantes


O estudo da análise de dados é limitado por altos requisitos para os alunos: amplo conhecimento no campo da matemática e algoritmos, capacidade de programar. Tarefas de aprendizado de máquina verdadeiramente sérias requerem equipamento especializado. E para aqueles que querem aprender mais sobre o componente teórico da ciência de dados, a Escola de Análise de Dados, juntamente com a Escola Superior de Economia , lançou um curso on-line " Introdução ao aprendizado de máquina ".

Em vez de uma conclusão


O crescimento do mercado de GPU é proporcionado pelo crescente interesse nos recursos de tais dispositivos. A GPU é usada em sistemas de jogos domésticos, tarefas de processamento de vídeo e renderização, bem como onde é necessária computação geral de alto desempenho. A aplicação prática de tarefas de mineração de dados penetrará mais profundamente em nossas vidas diárias. E a execução de tais programas é realizada de maneira mais eficaz com precisão usando a GPU.

Agradecemos aos nossos clientes, bem como aos professores e alunos da Escola de Análise de Dados, pela preparação conjunta do material, e convidamos nossos leitores a conhecê-los melhor .

E experiente e sofisticado no campo de aprendizado de máquina, análise de dados e não apenas oferecemos as ofertas da Selectel para alugar equipamentos de servidor com aceleradores gráficos: do simples GTX 1080 ao Tesla P100 e K80 para as tarefas mais exigentes.

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


All Articles