Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

GPU (Graphics Processing Unit)

GPU — это процессор с тысячами ядер, предназначенный для параллельных вычислений, поэтому он стал основным аппаратным средством для обучения и запуска моделей глубокого обучения.

Графический процессор (GPU) — это процессор с тысячами простых ядер, которые одновременно выполняют одну и ту же операцию над множеством элементов данных. GPU создавали для рендеринга трёхмерной графики, то есть параллельных вычислений над миллионами пикселей и вершин. Они стали основным оборудованием для глубокого обучения, поскольку обучение и инференс нейронных сетей в основном сводятся к умножению матриц, которое также можно распараллелить. Платформа CUDA от NVIDIA, выпущенная в 2007 году, позволила программировать GPU для вычислений общего назначения. В 2012 году сеть AlexNet, обучавшаяся пять-шесть дней на двух GPU NVIDIA GTX 580, победила в конкурсе ImageNet с долей ошибок top-5 15.3% против 26.2% у ближайшего конкурента. Сегодня PyTorch, TensorFlow и JAX работают на GPU NVIDIA через CUDA, на GPU AMD через ROCm и на чипах Apple через Metal; кластеры из тысяч GPU обучают крупнейшие фундаментальные модели.

Как GPU ускоряют глубокое обучение#

CPU отводит большую часть площади чипа под кэш и управляющую логику, чтобы несколько ядер могли быстро выполнять код с ветвлениями. GPU использует эту площадь для арифметических вычислений: GPU NVIDIA состоит из потоковых мультипроцессоров, каждый из которых запускает группы из 32 потоков, называемые варпами, выполняющие одну инструкцию над разными данными. Пока одни варпы ждут данные из памяти, другие выполняют вычисления, поэтому чип остаётся загруженным, если параллельной работы достаточно. Начиная с поколения Volta в 2017 году, GPU NVIDIA также оснащаются Tensor Cores — блоками, которые за один шаг перемножают небольшие матрицы с пониженной точностью, включая FP8, а начиная с Blackwell — и FP4. Пиковая производительность NVIDIA A100 составляет 19.5 TFLOPS в стандартных вычислениях FP32 и 312 TFLOPS в BF16 на Tensor Cores. Поэтому при обучении на 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 ноутбука примерно в 4.4 раза быстрее в FP32. В GPU для дата-центров этот разрыв ещё больше благодаря большему числу ядер и памяти с высокой пропускной способностью (HBM), обеспечивающей несколько терабайт в секунду, — этого достаточно, чтобы постоянно загружать ядра весами и активациями. Объём памяти GPU, которую часто называют VRAM, также определяет, какого размера модель и размер пакета помещаются на одном устройстве. Такие методы, как контрольные точки градиентов и распределённое обучение, помогают обойти это ограничение.

Обучение и развёртывание моделей на GPU#

Задача обучения эффективно использует GPU, только если остальные этапы конвейера не отстают: рабочие процессы CPU должны достаточно быстро декодировать и аугментировать изображения, пакеты должны быть достаточно большими, чтобы загружать все ядра, а вычисления должны выполняться с пониженной точностью на Tensor Cores. Низкая загрузка GPU обычно указывает на одну из таких проблем:

Ultralytics YOLO по умолчанию обучается на первом GPU CUDA, если он доступен; для обучения на нескольких GPU можно передать device=[0, 1], а параметр batch=-1 запускает AutoBatch, который измеряет свободную память GPU и выбирает размер пакета примерно на 60% от её объёма. Команды без локального оборудования могут выбрать облачный GPU на Ultralytics Platform для каждого запуска обучения. Для инференса модель YOLO26n, экспортированная в TensorRT, обрабатывает изображение размером 640 пикселей за 1,7 мс на GPU NVIDIA T4, тогда как с ONNX на CPU это занимает 38,9 мс. Этот код обучает YOLO26 на первом GPU с AutoBatch:

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 выполняет загрузку и предварительную обработку данных, а также инференс, когда ускоритель недоступен.
  • GPU: Тысячи программируемых ядер и Tensor Cores. GPU работают почти с любыми моделями и фреймворками, выпускаются несколькими производителями и доступны во всех крупных облачных сервисах.
  • TPU: Специализированный чип Google с крупными блоками умножения матриц. TPU уступают GPU в гибкости, но эффективны для больших плотных матричных вычислений и доступны через Google Cloud.
  • NPU: Энергоэффективный ускоритель нейронных сетей в телефонах, ноутбуках и периферийных устройствах, который используют для инференса, а не обучения.

Примеры применения в реальных условиях#

  • Обучение крупных моделей: Языковые модели и модели компьютерного зрения с миллиардами параметров обучаются на кластерах из тысяч GPU для дата-центров, соединённых высокоскоростными каналами, например NVLink и InfiniBand.
  • Аналитика видео в реальном времени: Один GPU может одновременно выполнять обнаружение и отслеживание объектов во множестве видеопотоков с камер для мониторинга дорожного движения, аналитики в розничной торговле или инспекции на заводе.
  • Робототехника и автономный транспорт: Встроенные модули GPU, например NVIDIA Jetson, запускают модели восприятия непосредственно на устройстве, где передача данных с камер на сервер добавила бы слишком большую задержку.
  • Медицинская визуализация: GPU обрабатывают большие трёхмерные объёмы данных КТ и МРТ и за секунды, а не минуты, сегментируют органы и опухоли.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения