Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

GPU (Graphics Processing Unit)

GPU 是一种拥有数千个核心、专为并行计算打造的处理器,因此它是训练和运行深度学习模型的主要硬件。

图形处理器(GPU)是一种拥有数千个简单核心的处理器,可同时对大量数据执行相同操作。GPU 最初是为渲染 3D 图形而设计的,这意味着要并行计算数百万个像素和顶点;后来它成为深度学习的主要硬件,因为神经网络训练和推理主要依赖矩阵乘法,而矩阵乘法可以通过同样的方式并行化。NVIDIA 于 2007 年推出的 CUDA平台让其 GPU 能够用于通用计算;2012 年,AlexNet网络使用两块 NVIDIA GTX 580 GPU 训练了五到六天,并以 15.3% 的 top-5 错误率赢得 ImageNet挑战赛,远低于亚军的 26.2%。如今,PyTorch、TensorFlow和 JAX 可通过 CUDA 在 NVIDIA GPU 上运行,通过 ROCm 在 AMD GPU上运行,也可通过 Metal在 Apple 芯片上运行;数千块 GPU 组成的集群则用于训练规模最大的基础模型。

GPU 如何加速深度学习#

CPU将芯片的大部分面积用于缓存和控制逻辑,让少数核心能快速运行带分支的代码。GPU 则将这部分面积用于运算:NVIDIA GPU 被划分为多个流式多处理器,每个处理器运行由 32 个线程组成的线程组,称为 warp;这些线程会对不同数据执行同一条指令。当一些 warp 等待内存时,另一些 warp 会继续计算,因此只要有足够多的并行工作,芯片就能保持繁忙。自 2017 年 Volta 架构以来,NVIDIA GPU 还配备了 Tensor Core;这种单元可用较低精度一步完成小型矩阵乘法,现在支持 FP8,自 Blackwell 起还支持 FP4。NVIDIA A100 使用 Tensor Core 时,标准 FP32 运算的峰值性能为 19.5 TFLOPS,使用 BF16时为 312 TFLOPS,这就是大多数 GPU 训练采用混合精度的原因。下面的代码会计时同一矩阵乘法在 CPU 和 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")

在 Apple M5 Pro 笔记本电脑上,它会输出 cpu: 80.0 ms per multiply, 1.7 TFLOPS 和 mps: 18.3 ms per multiply, 7.5 TFLOPS,因此这台笔记本的集成 GPU 在 FP32 下速度约快 4.4 倍。数据中心 GPU 凭借更多核心和高带宽存储器(HBM)进一步拉大差距;HBM 每秒可传输数 TB 数据,足以持续为核心提供权重和激活值。GPU 内存通常称为显存(VRAM),它也决定了单台设备能容纳多大的模型和批次大小;梯度检查点和分布式训练等技术则可用于绕过这一限制。

在 GPU 上训练和部署模型#

只有当流水线的其他部分跟得上时,训练任务才能让 GPU 保持繁忙:CPU 工作线程必须以足够快的速度解码和增强图像,批次必须足够大以充分利用各个核心,计算也应在 Tensor Core 上以较低精度运行。GPU 利用率低通常说明以下某个步骤存在问题:

如果有可用的 CUDA GPU,Ultralytics YOLO 默认会使用第一块 GPU 进行训练,可通过 device=[0, 1] 进行多 GPU 训练;使用 batch=-1 时会运行 AutoBatch,测量 GPU 的可用显存并选择约占显存 60% 的批次大小。没有本地硬件的团队可以为每次训练在 Ultralytics Platform 上选择云 GPU。推理时,导出为 TensorRT的 YOLO26n模型在 NVIDIA T4 GPU 上处理一张 640 像素图像只需 1.7 毫秒,而使用 ONNX 在 CPU 上需要 38.9 毫秒。以下代码使用第一块 GPU 和 AutoBatch 训练 YOLO26:

from ultralytics import YOLO

# 加载最小的 YOLO26 检测模型
model = YOLO("yolo26n.pt")

# 在 GPU 0 上训练,并让 AutoBatch 根据 GPU 内存确定批次大小
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, device=0, batch=-1)

GPU 与 CPU、TPU 和 NPU 的比较#

  • CPU:少量高性能核心,适用于通用的带分支代码。大多数训练流水线会用 CPU 执行数据加载和预处理;在没有加速器时,CPU 也负责推理。
  • GPU:数千个可编程核心加上 Tensor Core。GPU 可以运行几乎任何模型和框架,来自多个厂商,并且可在所有主要云平台中使用。
  • TPU:Google 的专用芯片,以大型矩阵乘法单元为核心设计。TPU 牺牲了 GPU 的灵活性,以提高大型稠密矩阵工作负载的效率,可通过 Google Cloud 使用。
  • NPU:手机、笔记本电脑和边缘设备中的低功耗神经网络加速器,用于推理而非训练。

实际应用#

  • 训练大型模型:拥有数十亿参数的语言和视觉模型会在数千块数据中心 GPU 组成的集群上训练,这些 GPU 通过 NVLink 和 InfiniBand 等高速链路连接。
  • 实时视频分析:一块 GPU 可同时对多个摄像头视频流执行目标检测和跟踪,用于交通监控、零售分析或工厂巡检。
  • 机器人与自动驾驶车辆:NVIDIA Jetson 等嵌入式 GPU 模块会在设备本地运行感知模型,因为将摄像头数据发送到服务器会造成过多延迟。
  • 医学影像:GPU 可在几秒而非几分钟内处理大型 3D CT 和 MRI 影像,以分割器官和肿瘤。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来