Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

GPU (Graphics Processing Unit)

Uma GPU é um processador com milhares de núcleos desenvolvido para cálculos paralelos, o que a torna o principal hardware para treinar e executar modelos de deep learning.

Uma unidade de processamento gráfico (GPU) é um processador com milhares de núcleos simples que executam a mesma operação em muitos dados ao mesmo tempo. As GPUs foram criadas para renderizar gráficos 3D, o que envolve calcular milhões de pixels e vértices em paralelo, e se tornaram o principal hardware de aprendizado profundo porque o treino e a inferência de redes neurais são dominados por multiplicações de matrizes que se paralelizam da mesma maneira. A plataforma CUDA da NVIDIA, lançada em 2007, tornou suas GPUs programáveis para computação de uso geral; em 2012, a rede AlexNet, treinada durante cinco a seis dias em duas GPUs NVIDIA GTX 580, venceu o desafio ImageNet com um erro top-5 de 15.3%, contra 26.2% do segundo colocado. Hoje, PyTorch, TensorFlow e JAX são executados em GPUs NVIDIA por meio de CUDA, em GPUs AMD por meio do ROCm e no Apple Silicon por meio do Metal; clusters com milhares de GPUs treinam os maiores modelos de base.

Como as GPUs aceleram o aprendizado profundo#

Uma CPU dedica a maior parte da área do chip a caches e lógica de controle para que alguns núcleos executem código com desvios rapidamente. Uma GPU usa essa área para operações aritméticas: uma GPU NVIDIA é dividida em multiprocessadores de streaming, cada um executando grupos de 32 threads, chamados warps, que executam a mesma instrução em dados diferentes. Enquanto alguns warps aguardam a memória, outros calculam, mantendo o chip ocupado desde que haja trabalho paralelo suficiente. Desde a geração Volta, em 2017, as GPUs NVIDIA também incluem Tensor Cores, unidades que multiplicam pequenas matrizes em uma única etapa com precisão reduzida, incluindo agora FP8 e, desde Blackwell, FP4. Uma NVIDIA A100 atinge um pico de 19.5 TFLOPS em operações padrão FP32 e 312 TFLOPS em BF16 nos Tensor Cores, por isso a maioria dos treinos em GPU usa precisão mista. Este código mede o tempo da mesma multiplicação de matrizes na CPU e na GPU:

import time

import torch

gpu = torch.accelerator.current_accelerator()  # cuda, mps, or xpu device on this machine
a = torch.randn(4096, 4096)
b = torch.randn(4096, 4096)

for device in (torch.device("cpu"), gpu):
    x, y = a.to(device), b.to(device)
    x @ y  # warm-up run
    torch.accelerator.synchronize()
    start = time.perf_counter()
    for _ in range(10):
        x @ y
    torch.accelerator.synchronize()  # GPU calls return immediately, so wait for them to finish
    seconds = (time.perf_counter() - start) / 10
    print(f"{device.type}: {seconds * 1000:.1f} ms per multiply, {2 * 4096**3 / seconds / 1e12:.1f} TFLOPS")

Em um laptop com Apple M5 Pro, o código exibe cpu: 80.0 ms per multiply, 1.7 TFLOPS e mps: 18.3 ms per multiply, 7.5 TFLOPS, então a GPU integrada do laptop é cerca de 4.4 vezes mais rápida em FP32. As GPUs de centros de dados ampliam ainda mais a diferença, tanto pelo maior número de núcleos quanto pela memória de alta largura de banda (HBM), que oferece vários terabytes por segundo — o suficiente para fornecer pesos e ativações aos núcleos. A memória da GPU, frequentemente chamada VRAM, também determina o tamanho do modelo e o tamanho do lote que cabem em um dispositivo; técnicas como checkpointing de gradientes e treino distribuído ajudam a contornar esse limite.

Treinar e implantar modelos em GPUs#

Um trabalho de treino só mantém a GPU ocupada se o restante do pipeline acompanhar o ritmo: os processos da CPU precisam decodificar e aumentar as imagens com rapidez suficiente, os lotes precisam ser grandes o bastante para ocupar os núcleos e as operações devem usar precisão reduzida nos Tensor Cores. Uma baixa utilização da GPU geralmente aponta para uma destas etapas:

O Ultralytics YOLO treina na primeira GPU CUDA por padrão quando uma está disponível, aceita device=[0, 1] para treinamento com várias GPUs e, com batch=-1, executa o AutoBatch, que mede a memória livre da GPU e escolhe um tamanho de lote que usa cerca de 60% dela. As equipes sem hardware local podem escolher uma GPU na nuvem na Ultralytics Platform para cada execução de treinamento. Para inferência, um modelo YOLO26n exportado para TensorRT processa uma imagem de 640 pixels em 1,7 ms em uma GPU NVIDIA T4, em comparação com 38,9 ms usando ONNX em uma CPU. Este código treina YOLO26 na primeira GPU com o AutoBatch:

from ultralytics import YOLO

# Carrega o menor modelo de deteção YOLO26
model = YOLO("yolo26n.pt")

# Treina na GPU 0 e deixa o AutoBatch ajustar o tamanho do lote à memória da GPU
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, device=0, batch=-1)

GPU versus CPU, TPU e NPU#

  • CPU: Alguns núcleos potentes para código de uso geral com desvios. As CPUs executam o carregamento e o pré-processamento de dados na maioria dos pipelines de treino e processam inferências quando não há acelerador disponível.
  • GPU: Milhares de núcleos programáveis e Tensor Cores. As GPUs executam quase qualquer modelo e framework, são produzidas por vários fabricantes e estão disponíveis em todas as principais nuvens.
  • TPU: Chip do Google específico para aplicações, baseado em grandes unidades de multiplicação de matrizes. As TPUs trocam a flexibilidade de uma GPU por eficiência em cargas de trabalho densas de matrizes de grande porte e estão disponíveis no Google Cloud.
  • NPU: Acelerador de redes neurais de baixo consumo em celulares, laptops e dispositivos de borda, usado para inferência em vez de treino.

Aplicações no mundo real#

  • Treino de modelos grandes: Modelos de linguagem e visão com bilhões de parâmetros são treinados em clusters de milhares de GPUs de centros de dados conectadas por links de alta velocidade, como NVLink e InfiniBand.
  • Análise de vídeo em tempo real: Uma única GPU pode executar deteção e rastreamento de objetos em vários fluxos de câmeras ao mesmo tempo para monitoramento de tráfego, análise de varejo ou inspeção fabril.
  • Robótica e veículos autônomos: Módulos de GPU integrados, como o NVIDIA Jetson, executam modelos de percepção a bordo, onde enviar os dados das câmeras a um servidor causaria atraso excessivo.
  • Imagens médicas: As GPUs processam grandes volumes 3D de TC e RM para segmentar órgãos e tumores em segundos, em vez de minutos.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina