CPU
CPU — универсальный процессор компьютера. В ИИ он загружает и подготавливает данные, координирует ускорители и выполняет инференс, когда GPU недоступен.
Центральный процессор (CPU) — это процессор общего назначения, который запускает операционную систему и программы компьютера. Он выполняет инструкции на небольшом количестве мощных ядер, каждое из которых рассчитано на быстрое выполнение одного потока инструкций; большие кэши, предсказание переходов и внеочередное выполнение ускоряют работу со сложным кодом с ветвлениями. В системах искусственного интеллекта (AI) CPU загружает и декодирует данные, применяет аугментацию данных, передает данные на GPU и другие ускорители, а также выполняет сопутствующие модели операции, например изменение размера изображений перед инференсом и подавление немаксимумов после обнаружения объектов. CPU также выполняет модель самостоятельно, если ускорителя нет или его использование не оправдано, — на ноутбуках, в облачных функциях и на Raspberry Pi. Поэтому задержка инференса на CPU — важная цель проектирования моделей для периферийного ИИ.
Как CPU выполняет нейронные сети#
Большую часть времени нейронная сеть тратит на умножение матриц, и CPU ускоряет эту работу тремя способами. Несколько ядер — от 4 в небольшой плате до более чем 100 в серверном процессоре — параллельно обрабатывают разные части пакета или слоя. Внутри каждого ядра блоки SIMD (одна инструкция — множество данных) применяют одну инструкцию одновременно к множеству чисел: AVX2 и AVX-512 в x86-процессорах Intel и AMD, а также NEON в Arm-процессорах, например в телефонах, компьютерах Mac с Apple silicon и платах Raspberry Pi; в более новых серверных процессорах Arm используется расширение SVE с более широкими векторами. В современных процессорах появились матричные блоки, такие как Advanced Matrix Extensions (AMX) от Intel в серверных Xeon начиная с 2023 года и Scalable Matrix Extension (SME) от Arm. Они умножают небольшие блоки значений BF16 или INT8 за одну инструкцию.
Пропускная способность CPU все еще намного ниже, чем у GPU: CPU расходует площадь кристалла на кэши и логику управления, обеспечивающие высокую производительность одного потока, а не на тысячи арифметических блоков, и считывает веса из обычной оперативной памяти с гораздо меньшей пропускной способностью, чем память GPU. Часть разрыва сокращают движки инференса: ONNX Runtime, OpenVINO от Intel и NCNN от Tencent объединяют слои, выбирают самые быстрые ядра для обнаруженного набора инструкций и выполняют модели с квантованием INT8, которым требуется вчетверо меньше данных, чем для весов FP32. Выбор движка и точности для развертывания на CPU обычно зависит от оборудования:
Ultralytics разработала YOLO26 для такого оборудования: YOLO26n работает до 43% быстрее YOLO11n при инференсе ONNX на CPU с процессором Intel Xeon, а экспорт в OpenVINO ускоряет инференс на CPU до 3 раз. Этот код запускает YOLO26 на CPU, затем экспортирует модель в OpenVINO и запускает экспортированную модель:
from ultralytics import YOLO
# Запусти на CPU самую компактную модель обнаружения YOLO26, даже если установлен GPU
model = YOLO("yolo26n.pt")
results = model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed) # миллисекунды на предобработку, инференс и постобработку
# Экспортируй модель в формат OpenVINO и запусти ее на том же CPU
path = model.export(format="openvino")
ov_model = YOLO(path)
results = ov_model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed)Каждый словарь speed разбивает время обработки одного изображения на предобработку, инференс и постобработку. Поэтому два вывода позволяют сравнить время инференса PyTorch и OpenVINO на компьютере, где выполняется код.
CPU, GPU, TPU и NPU#
- CPU: Несколько мощных ядер для кода общего назначения с ветвлениями. CPU есть в каждом компьютере; он запускает любую модель без дополнительного оборудования, но обеспечивает меньшую пропускную способность, чем перечисленные ниже ускорители.
- GPU: Тысячи более простых ядер, Tensor Cores для матричных вычислений и память с высокой пропускной способностью. GPU — стандартное оборудование для обучения и инференса с высокой пропускной способностью.
- TPU: Специализированный процессор Google, построенный на основе мощных блоков умножения матриц. Он доступен в Google Cloud, а в виде Edge TPU — в компактных модулях для инференса.
- NPU: Энергоэффективный ускоритель нейронных сетей, встроенный в процессоры телефонов, ноутбуков и встраиваемых устройств. В процессорах Intel Core Ultra, AMD Ryzen AI, Qualcomm Snapdragon и Apple M-series объединены ядра CPU, GPU и NPU.
Примеры применения в реальных условиях#
- Конвейеры данных для обучения: Пока GPU обучает модель, рабочие процессы CPU считывают изображения с диска, декодируют их, изменяют размер, применяют аугментации и формируют пакеты. Если ядер CPU слишком мало, дорогостоящий GPU простаивает в ожидании данных.
- Умные камеры и периферийные устройства: Видеодомофоны, датчики в магазинах и промышленные камеры запускают небольшие модели обнаружения на собственных процессорах. Видео остается на устройстве, а за его пределы передаются только оповещения.
- Бессерверный инференс и облачные вычисления: Облачные функции и конечные точки с небольшой нагрузкой часто работают на экземплярах только с CPU: они быстро запускаются и обходятся дешевле, чем постоянно зарезервированный GPU.
- Большие языковые модели на локальном устройстве: Такие проекты, как llama.cpp, запускают квантованные модели GGUF на CPU ноутбука. Скорость генерации в основном ограничена тем, насколько быстро память может передавать веса для каждого токена.










