System Design Space
Граф знанийНастройки

Обновлено: 16 апреля 2026 г. в 22:20

CPU и GPU: обзор и различия

средний

Как выбирать между CPU и GPU по форме нагрузки: задержка против пропускной способности, совместная работа двух контуров и цена инфраструктуры.

Глава про CPU и GPU полезна не сравнением маркетинговых цифр, а объяснением самой природы вычислений: где важна быстрая реакция на один запрос, а где выигрывает массовый параллелизм.

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

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

Практическая польза главы

Профиль нагрузки

Помогает выбирать между CPU и GPU по чувствительности к задержке, размеру пакета и степени параллелизма.

Экономика ресурса

Учит смотреть не только на скорость вычислений, но и на цену ускорителей, передачу данных и резервные режимы.

Планирование ёмкости

Даёт практический способ считать ресурсы для вывода модели, аналитики и смешанных конвейеров.

Формулировка на интервью

Помогает объяснять выбор вычислительного контура через измеримые критерии, а не через тренды.

Источник

Central processing unit

Общее устройство CPU и роль в вычислениях.

Перейти на сайт

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

В реальных системах это почти всегда гибридная история: CPU держит , продуктовую логику и , а GPU ускоряет этапы . Архитектурный выбор упирается ещё и в , , требования к и цену передачи данных между контурами.

Поэтому здесь важны не только железки, но и измерения: на CPU, быстрые межсоединения вроде , а также инструменты наблюдения вроде и .

Как устроен CPU

  • Ядра выполняют инструкции и координируют работу потоков.
  • ALU выполняет арифметические и логические операции.
  • Блок управления определяет порядок исполнения инструкций.
  • Регистры — самая быстрая память рядом с ядром.
  • Кэш L1/L2/L3 сокращает время доступа к данным.
  • Контроллер памяти и шины связывают процессор с RAM и устройствами.

Источник

Graphics processing unit

Архитектура GPU и особенности параллельных вычислений.

Перейти на сайт

Как устроен GPU

  • SM/CU — блоки, в которых параллельно исполняются большие группы потоков.
  • Пулы потоков позволяют запускать тысячи лёгких задач одновременно.
  • Планировщик распределяет warps и wavefronts по вычислительным блокам.
  • Видеопамять (VRAM) хранит данные рядом с вычислениями.
  • Кэш и контроллеры памяти ускоряют доступ к данным.
  • Командный процессор принимает задачи от CPU и ставит их в очередь.

Сравнение CPU и GPU

CPU

  • Небольшое число сложных ядер с высокой производительностью на поток
  • Хорошо справляется с ветвлениями и непредсказуемой логикой
  • Лучше подходит для путей, где критична низкая задержка

Несколько мощных ядер выполняют разные задачи.

GPU

  • Очень много более простых вычислительных блоков
  • Высокая производительность на однотипных операциях
  • Лучше раскрывается на массово-параллельных задачах

Много простых ядер выполняют одну задачу параллельно.

Динамическая визуализация: симулятор нагрузки

Выберите профиль нагрузки и размер батча. Ниже — упрощённая модель, которая показывает, когда выигрывает CPU, а когда — GPU.

Размер батча: 32

Диапазон: 8 - 256

CPU

Подходит для этого профиля: 88%

Время обработки пакета: 7 мс

Оценка производительности: 4571 ед./с

GPU

Подходит для этого профиля: 35%

Время обработки пакета: 8 мс

Оценка производительности: 4000 ед./с

Результат симуляции

Отношение времени CPU к GPU на один пакет: 0.88x (в этом сценарии быстрее CPU).

Узкое место: ветвления, блокировки и хвостовая задержка. Рекомендация: CPU использовать как основной вычислительный контур, а GPU подключать только для изолированных тяжёлых вычислений.

Динамическая визуализация: гибридный конвейер CPU + GPU

В реальной системе CPU и GPU почти всегда работают как один конвейер. Переключайте этапы, чтобы увидеть, где растёт нагрузка.

Особенно важен этап передачи: даже не отменяет цену копирования данных и подготовки запуска вычислительного ядра.

Проверка входа, извлечение признаков, сериализация и сборка пакета.

Загрузка CPU82%
Загрузка GPU12%

Ключевая метрика

Время подготовки пакета

Фокус оптимизации

векторизация, меньше копирований и меньше лишних выделений памяти

Где лучше подходит CPU, а где GPU

CPU

  • API и сервисные запросы со сложной бизнес-логикой
  • Транзакционные сценарии, координация сервисов и системные задачи
  • Нагрузки с непредсказуемыми ветвлениями и жёсткими требованиями по задержке

GPU

  • Графика и рендеринг
  • Вывод и обучение моделей на однотипных тензорных операциях
  • Массовые численные расчёты и симуляции

Частые ошибки при выборе CPU/GPU

GPU ради самого факта наличия ускорителя

Перенос тяжёлой логики с ветвлениями на GPU без оценки цены запуска ядра часто только ухудшает задержку.

Игнорирование цены передачи данных

При небольших пакетах время перемещения данных между CPU и GPU может съесть весь ожидаемый выигрыш.

Метрики только на уровне сервера

Недостаточно смотреть только на CPU и RAM: нужны ещё загрузка GPU, пропускная способность памяти и глубина очередей.

Нет резервного пути без GPU

Если нет резервного сценария на CPU, система теряет устойчивость при дефиците GPU-ресурсов или проблемах с планированием.

Профилирование должно показывать, где именно теряется время: на CPU полезны и , а на GPU — трассы запуска ядер и телеметрия очередей.

Практические рекомендации

Гибридный конвейер

Оставляйте управление потоком, продуктовую логику и резервные ветки на CPU, а GPU загружайте массивной математикой.

Размер пакета под целевой уровень сервиса

Подбирайте размер пакета под целевой уровень сервиса: слишком маленький недоиспользует GPU, слишком большой увеличивает хвостовую задержку.

Профилирование до и после

Снимайте профили CPU и GPU до и после оптимизаций, чтобы решения опирались на измерения, а не на гипотезы.

Планирование ёмкости по двум контурам

Считайте CPU- и GPU-ограниченные этапы отдельно, чтобы точнее планировать стоимость и масштабирование.

Практический вывод

В рабочих системах CPU и GPU почти всегда работают в паре: CPU управляет логикой, маршрутизацией и резервными ветками, а GPU берёт на себя массивные однотипные вычисления. Выбор между ними зависит прежде всего от формы нагрузки: задержка и ветвления тянут решение в сторону CPU, а однородный параллелизм — в сторону GPU.

Почему это важно при проектировании приложений

  • Помогает выбрать основной вычислительный контур под тип нагрузки и правильно спроектировать конвейер обработки.
  • Влияет на стоимость инфраструктуры: CPU- и GPU-доменные сервисы масштабируются по-разному.
  • Показывает требования к памяти и сети: для GPU-контуров особенно важны пропускная способность памяти, путь передачи и размер пакета.
  • Снижает архитектурные риски: резервный путь на CPU и явные SLO помогают пережить дефицит GPU-ресурсов.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки