Ciência e Dados
Menu
  • Home
  • Sobre
  • Contato
Menu
GPU e o Processamento Paralelo para Big Data

GPU e Deep Learning

Posted on 5 de setembro de 201627 de dezembro de 2017 by David Matos

Com todos os holofotes em frameworks gratuitos para processamento de Big Data, como Hadoop e Spark, a maioria dos profissionais não está familiarizada com o conceito de utilização das GPU’s (Graphical Processing Units ou Unidades de Processamento Gráfico) para processar soluções analíticas de Big Data. Ao falarmos de GPU’s, a grande maioria das pessoas que trabalham com tecnologia associam o termo ao contexto de games ou supercomputadores. Muitos acreditam que seja muito exótico a escolha de GPU’s como opção de hardware para processar aplicações de Analytics. Mas embora existam desafios, o fato é que cada vez mais as GPU’s tem sido usadas para análises avançadas utilizando algoritmos de Machine Learning, especialmente Deep Learning. Vamos começar compreendendo a diferença entre CPU e GPU.

GPU x CPU

Ao longo dos últimos anos tem havido uma revolução na computação, trazida pela empresa que tem se tornado ícone na produção de hardware para a indústria de games, a NVIDIA. A NVIDIA percebeu que as GPU’s, tipicamente utilizadas para renderização de imagens e vídeos, poderiam ser usadas para ajudar a resolver problemas matemáticos que requerem computação intensiva. Dessa forma, a NVIDIA desenvolveu as GPU’s para uso geral e a linguagem de programação CUDA (Compute Unified Device Architecture), permitindo que os poderosos processadores gráficos sejam usados para processar dados. Desde sistemas embarcados até utilização por usuários domésticos ou mesmo supercomputadores, podemos presenciar esta revolução acontecendo neste momento. Podemos agora escrever código que interage diretamente com a GPU.

As CPU’s (Central Processing Units ou Unidades de Processamento Central) são consideradas o cérebro dos computadores. Porém o cérebro tem recebido cada vez mais ajuda no trabalho de processamento. E essa ajuda tem vindo exatamente das GPU’s, ou como alguns tem chamado, a alma do computador.

Todos os computadores possuem chips que renderizam as imagens para os monitores. Mas nem todos os chips são criados da mesma forma. Chips integrados da Intel por exemplo, fornecem gráficos básicos que conseguem realizar a renderização de vídeos de baixa resolução, games básicos e aplicações usadas para tarefas mais simples, como o Microsoft Power Point por exemplo.

As GPU’s por outro lado, são uma outra classe de chips que fornecem funções muito além de gráficos básicos. As GPU’s possuem características avançadas como renderização de games 3D. As GPU’s são otimizadas para processar aplicações e realizar a mesma operação várias vezes, de forma bastante rápida, ideal para processamento iterativo, a base de algoritmos de Machine Learning.

As GPU’s foram originalmente criadas para renderizar gráficos. Mas devido sua alta performance e baixo custo, elas têm se tornado o novo padrão para o processamento de imagens. Suas aplicações incluem: restauração de imagens, segmentação, filtragem, interpolação e reconstrução. GPU’s são chips de computador que realizam cálculos matemáticos de forma veloz e paralelizada.

Para compreender a diferença entre CPU e GPU, veja a imagem abaixo. A CPU consiste em poucos “cores” otimizados para processamento serial sequencial, enquanto a GPU possui uma arquitetura paralelizada consistindo de milhares de “cores” menores e mais eficientes para tratar múltiplas tarefas simultaneamente.

CPU x GPU

 

A arquitetura das CPU’s é composta de poucos “cores” com memória de cache que podem tratar threads uma por vez, embora façam isso de forma bem rápida. Em contraste, as GPU’s possuem uma arquitetura composta de milhares de “cores” que conseguem tratar milhares de threads simultaneamente. Um mesmo software pode ser muito mais veloz sendo processado em uma GPU que em uma CPU e tudo isso com custo e utilização de energia menores.

E como funciona a computação acelerada via GPU?

Como Funciona Processamento por GPU

A computação acelerada via GPU é o uso de unidades de processamento gráfico (GPU’s) em conjunto com as CPU’s, a fim de acelerar análise científica, analytics, engenharia, e aplicações. Basicamente o que faz a GPU, é receber da aplicação o processamento que requer maior uso intensivo de computação. A GPU recebe uma parte da aplicação, enquanto a CPU recebe o restante. Paralelizando a execução, as aplicações ficam mais velozes. E com a adoção do processamento em GPU feita pela Apple (com o OpenCL) e pela Microsoft (com DirectCompute), é uma questão de tempo para o processamento em GPU se tornar padrão no mercado.

E as Aplicações Analíticas?

A comunidade de desenvolvimento em Machine Learning tem começado a adotar sistemas baseados em GPU’s para algumas das atividades mais desafiadoras, principalmente para treinamento em Deep Learning. Treinar um algoritmo de Deep Learning utilizando CPU (Central Processing Unit) pode levar dias. Com o processamento feito em sistemas baseados em GPU’s, a mesma tarefa pode levar horas. Empresas como Google, Yahoo, Baidu, Microsoft e Facebook tem conseguido ótimo resultados no campo de computer vision e reconhecimento de voz, utilizando Deep Learning e GPU’s.

A GPU pode processar dados muitas vezes mais rápido que uma CPU. Mas claro, existem limitações. Processamento serial é menos efetivo em GPU que em CPU. Além disso, desenvolver algoritmos para GPU é bem mais complexo e requer um nível bem mais alto de sofisticação em programação. Alguns algoritmos simplesmente não podem ser paralelizados. Alguns sistemas mais novos permitem a utilização do melhor dos dois mundos: processamento serial sequencial com CPU’s e processamento altamente paralelizado com GPU’s. O gráfico abaixo mostra a comparação de algoritmos de Machine Learning sendo processados em CPU e GPU. A diferença no tempo de execução é significativa.

CPU x GPU

 

Deep Learning

O aprendizado profundo (Deep Learning) é a área de mais rápido crescimento em inteligência artificial, ajudando os computadores a compreender dados, como imagens, som e texto. Usando vários níveis de redes neurais, os computadores agora têm a capacidade de ver, aprender e reagir a situações complexas tão bem quanto ou melhor que os humanos. Isso está levando a uma forma totalmente diferente de pensar sobre seus dados, sua tecnologia, e os produtos e serviços que você oferece.

As soluções atuais de aprendizado profundo contam quase exclusivamente com a computação acelerada pelas placas de vídeo NVIDIA (GPU’s) para treinar e acelerar aplicações desafiadoras, como identificação de imagens, caligrafia e vozes. As GPU’s se destacam em cargas de trabalho paralelas e aceleram as redes neurais em até 10 a 20 vezes, reduzindo cada uma das muitas iterações de treinamento de dados de semanas para dias. De fato, as placas de vídeo têm acelerado o treinamento de redes neurais profundas em 50 vezes em apenas três anos — um ritmo muito mais rápido do que a lei de Moore — com outras 10 vezes previstas para os próximos anos. A inovação em Inteligência Artificial está acontecendo em ritmo acelerado. Atualmente, os computadores não estão só aprendendo, estão pensando por si mesmos. Isso está abrindo oportunidades fantásticas em aplicações como robôs, medicina e carros com direção automática. É possível projetar e implementar rapidamente aplicações de aprendizado profundo para aproveitar esses avanços incríveis.

As empresas atentas ao futuro que se aproxima rapidamente e que estão atentas às transformações, estão adotando o aprendizado profundo para lidar com volumes de dados que crescem exponencialmente, melhorias nos algoritmos de aprendizagem automática e avanços em hardware de computação . Isso as ajuda a encontrar novas formas de explorar a riqueza dos dados a seu alcance para desenvolver novos produtos, serviços e processos — e a criar uma vantagem competitiva inovadora.

Neste link você encontra diversos exemplos de como as GPU’s estão sendo usadas para Deep Learning em reconhecimento de imagens:

https://news.developer.nvidia.com/tag/image-recognition/

Frameworks para GPU

Existem 2 frameworks principais para programação em GPU: OpenCL (solução open-source para programação paralela em diferentes dispositivos incluindo GPU, CPU e FPGA’s) e CUDA da NVIDIA, que só pode ser usado em soluções da NVIDIA. Existe ainda o DirectCompute da Microsoft.

GPU e Linguagem R e Python

Existem alguns pacotes em linguagem R que permitem processar operações na GPU. Os pacotes gputools e gmatrixand estão disponíveis no CRAN, enquanto o pacote Rth pode ser instalado a partir do seu repositório no Github (link abaixo na seção de referências). Para a linguagem Python existe o PyCuda, que permite interação com o CUDA para a criação de aplicações analíticas que sejam processadas em GPU’s.

As GPU’s estão disponíveis em desktops, notebooks, servidores e supercomputadores pelo mundo, bem como em serviços em nuvem da Amazon, IBM e Microsoft. Você pode criar suas próprias soluções ou “conectar” uma solução de aprendizado profundo acelerada pelas GPU’s e pelas tecnologias de software de apoio. Como Cientista de Dados, você deve compreender as diferenças entre processamento paralelo, bem como as diferenças entre GPU e CPU, a fim de escolher o que vai oferecer maior performance a sua aplicação.

 

Referências:

NVIDIA Brasil

Data Science Analytics

GPU Accelerated Computing

Mythbusters Demo GPU versus CPU

GPU Technology Conference 2015 Leaps in Visual Computing

CUDA – GPU’s Suportadas

General Purpose Computing

Pacote Rth

Programação Paralela com GPU e R

PyCuda

 

David Matos

Relacionado

2 thoughts on “GPU e Deep Learning”

  1. jonatan disse:
    21 de janeiro de 2023 às 2:39 PM

    excelente artigo!!!

    Responder
  2. Vinicius disse:
    11 de fevereiro de 2023 às 1:34 AM

    Com hype da IA, acabei vindo parar aqui na minha pesquisa sobre uso da GPUs nos modelos de linguagem profunda. Consegui sanar minhas dúvidas. Parabéns pelo artigo!

    Responder

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Buscar

Tags Mais Comuns nos Posts

Agentes de IA Analytics Análise de Negócios Apache Spark AWS Big Data Blockchain Business Intelligence ChatGPT Cientista de Dados Cientistas de Dados Ciência de Dados Cloud Computing Data Lake Data Mesh Data Science Data Scientist Data Warehouse Deep Learning Deploy Engenharia de Dados Estatística GPU GraphRAG Hadoop IA Generativa Inteligência Artificial Internet of Things Linguagem Python Linguagem R LLM LLMs Machine Learning MCP (Model Context Protocol) Metadados Normalização NVIDIA Oracle Pipeline de Dados Predictive Analytics Probabilidade PySpark Python RAG Storytelling

Histórico de Posts

  • maio 2025 (6)
  • abril 2025 (2)
  • março 2025 (4)
  • fevereiro 2025 (8)
  • janeiro 2025 (5)
  • dezembro 2024 (4)
  • novembro 2024 (1)
  • outubro 2024 (1)
  • setembro 2024 (1)
  • agosto 2024 (1)
  • julho 2024 (3)
  • junho 2024 (1)
  • maio 2024 (1)
  • abril 2024 (2)
  • março 2024 (1)
  • fevereiro 2024 (1)
  • janeiro 2024 (1)
  • dezembro 2023 (1)
  • outubro 2023 (2)
  • setembro 2023 (1)
  • agosto 2023 (4)
  • julho 2023 (2)
  • junho 2023 (4)
  • maio 2023 (2)
  • abril 2023 (2)
  • março 2023 (3)
  • fevereiro 2023 (3)
  • janeiro 2023 (3)
  • dezembro 2022 (7)
  • novembro 2022 (6)
  • outubro 2022 (2)
  • setembro 2022 (3)
  • agosto 2022 (2)
  • julho 2022 (2)
  • junho 2022 (3)
  • maio 2022 (1)
  • abril 2022 (3)
  • março 2022 (1)
  • fevereiro 2022 (3)
  • janeiro 2022 (2)
  • dezembro 2021 (1)
  • novembro 2021 (5)
  • outubro 2021 (2)
  • setembro 2021 (3)
  • agosto 2021 (1)
  • junho 2021 (1)
  • fevereiro 2021 (2)
  • janeiro 2021 (1)
  • dezembro 2020 (1)
  • novembro 2020 (1)
  • outubro 2020 (2)
  • agosto 2020 (1)
  • abril 2020 (1)
  • março 2020 (1)
  • fevereiro 2020 (2)
  • agosto 2019 (1)
  • abril 2019 (1)
  • setembro 2018 (2)
  • julho 2018 (1)
  • junho 2018 (3)
  • abril 2018 (1)
  • março 2018 (1)
  • fevereiro 2018 (2)
  • janeiro 2018 (1)
  • dezembro 2017 (1)
  • novembro 2017 (1)
  • outubro 2017 (1)
  • setembro 2017 (1)
  • julho 2017 (1)
  • junho 2017 (1)
  • maio 2017 (2)
  • abril 2017 (1)
  • janeiro 2017 (1)
  • novembro 2016 (1)
  • outubro 2016 (1)
  • setembro 2016 (1)
  • julho 2016 (1)
  • junho 2016 (1)
  • maio 2016 (1)
  • abril 2016 (1)
  • fevereiro 2016 (1)
  • janeiro 2016 (3)
  • dezembro 2015 (4)
  • novembro 2015 (6)
  • outubro 2015 (9)
  • setembro 2015 (9)
  • agosto 2015 (9)
©2025 Ciência e Dados
 

Carregando comentários...