CPU, GPU и TPU: почему GPU так важна для искусственного интеллекта
Введение
Если ты занимаешься искусственным интеллектом, постоянно слышишь о GPU, CPU и иногда TPU. Но в чём между ними разница? Почему ChatGPT требует тысячи GPU от NVIDIA, а не просто быстрые CPU?
Ответ кроется в том, как работают эти процессоры. CPU похожа на смышлёного универсала, решающего сложные задачи одну за другой. GPU работает как армия простых рабочих, выполняющих одновременно миллионы элементарных операций. TPU — это узкий специалист, делающий ровно одно, но с неимоверной скоростью.
В этой статье разберёмся, как работают CPU, GPU и TPU, почему GPU критична для КИ и когда какое оборудование выбирать.
CPU: универсальный процессор
Суть
CPU (Central Processing Unit) — это мозг твоего компьютера. Она может делать всё, но не всё одновременно. CPU имеет несколько, но очень быстрых ядер (обычно от 4 до 16). Каждое ядро выполняет сложные задачи последовательно: запрашивает данные из базы, управляет операционной системой, контролирует пользовательский интерфейс.
Представь, что у тебя в кухне работают 4 очень умных повара. Каждый может приготовить сложное блюдо с нуля до финального оформления. Но одновременно эти 4 повара могут готовить только 4 блюда.
Основные компоненты CPU
- ALU (Arithmetic Logic Unit): выполняет базовые арифметические операции — сложение, вычитание, логические сравнения.
- Control Unit: координирует выполнение инструкций, загружает данные из кеша, управляет потоком данных.
- Register: супербыстрая, но крошечная память прямо в процессоре. Хранит текущие значения, с которыми CPU работает в данный момент.
- Cache (L1, L2, L3): многоуровневый буфер, хранящий часто используемые данные, чтобы избежать медленного доступа в оперативную память.
Практическое применение
Как разработчик приложений, ты пишешь код, который работает на CPU. Операционная система, браузер, IDE, локальный dev-сервер — всё выполняется на CPU. Когда строишь веб-приложение, CPU обрабатывает HTTP-запросы, исполняет бизнес-логику, управляет доступом к базе данных.
CPU остаётся сердцем любого компьютера. Для искусственного интеллекта она не оптимальна просто потому, что КИ состоит в основном из огромного количества простых математических операций.
GPU: процессор параллельных вычислений
Суть
GPU (Graphics Processing Unit) изначально разработана для отрисовки трёхмерной графики. Чтобы вычислить изображение с миллионами пикселей, нужно одновременно выполнить множество простых математических операций. Именно в этом GPU невероятно хороша.
GPU содержит не 4 или 16 ядер, а тысячи. NVIDIA H100, например, имеет 16.896 ядер. Каждое ядро проще и медленнее, чем ядро CPU, но вместе они неопоримы в задачах, поддающихся параллелизации.
Представь 16.896 помощников в огромной кухне. Каждый умеет делать только одно — например, чистить лук. Но все одновременно. Если нужно почистить 16.896 луковиц, эти помощники работают в разы быстрее, чем 4 умных повара.
Основные компоненты GPU
- CUDA Cores / Stream Processors: собственно вычислительные блоки. Тысячи простых ядер, работающих параллельно.
- VRAM (Video RAM): собственная память на GPU, очень быстрая с высокой пропускной способностью. NVIDIA H100 оснащена 80 ГБ памяти HBM3.
- Tensor Cores: специализированные блоки в современных GPU NVIDIA, оптимизированные именно для КИ-вычислений (матричное умножение).
- SM (Streaming Multiprocessors): группы ядер, совместно использующих память и вычислительные ресурсы.
Почему GPU критична для искусственного интеллекта
Модели КИ, особенно нейросети, состоят из огромного числа матричных умножений. Матричное умножение — это просто множество элементарных умножений и сложений, которые можно выполнить одновременно.
Простой пример: изображение 224x224 пикселя содержит 50.176 пикселей. Каждый пиксель имеет 3 значения цвета (красный, зелёный, синий) — итого 150.528 чисел. В нейросети каждое значение умножается на вес и суммируется. Это сотни тысяч простых операций, выполнимых одновременно.
# CPU: вычисляет матричное умножение последовательно
import numpy as np
a = np.random.rand(1000, 1000)
b = np.random.rand(1000, 1000)
# На CPU это занимает несколько секунд
result = np.dot(a, b) # каждая ячейка вычисляется по очереди
# GPU: вычисляет то же матричное умножение параллельно
import cupy as cp # библиотека GPU NVIDIA
a_gpu = cp.random.rand(1000, 1000)
b_gpu = cp.random.rand(1000, 1000)
# На GPU это занимает миллисекунды, потому что тысячи ядер считают параллельно
result_gpu = cp.dot(a_gpu, b_gpu)
Разница в скорости огромна. NVIDIA H100 GPU выполняет матричные умножения примерно в 10-50 раз быстрее, чем мощная CPU, а на больших моделях КИ — даже в 100 раз быстрее.
Практическое применение
Как разработчик, работающий с КИ, не обойтись без GPU. Запускаешь ли локальную LLM на Ollama, тренируешь модель в PyTorch или генерируешь изображения в Stable Diffusion — везде нужна GPU.
Даже используя облачные КИ-сервисы, в фоне работает GPU. OpenAI использует тысячи GPU NVIDIA для ChatGPT. Google использует TPU для Gemini. Без такого оборудования современный искусственный интеллект был бы невозможен.
TPU: узкий специалист
Суть
TPU (Tensor Processing Unit) — процессор, разработанный Google специально для КИ. Если GPU — универсал в параллельных вычислениях, то TPU — чистый специалист по тензорным операциям, то есть по матричным умножениям, встречающимся в нейросетях.
Представь автомат на кухне, который умеет только одно — чистить лук. Но чистит 100.000 луковиц в секунду. Ничего больше он не делает, зато в этом непревзойдён.
Основные компоненты TPU
- MXU (Matrix Multiply Unit): сердце TPU. Специализированный аппаратный модуль, выполняющий исключительно матричные умножения с экстремально высокой скоростью.
- Unified Buffer: большой локальный буфер, хранящий промежуточные результаты матричных вычислений.
- Activation Pipeline: выполняет функции активации (ReLU, Sigmoid и прочие) прямо в аппаратуре, без обращения в основную память.
GPU против TPU: что выбрать
| Критерий | GPU | TPU |
|---|---|---|
| Производитель | NVIDIA, AMD | |
| Доступность | Свободно в продаже | Только Google Cloud |
| Гибкость | Высокая, для множества задач | Низкая, только КИ-нагрузки |
| Скорость на КИ | Очень высокая | Экстремально высокая |
| Цена | Дорого (H100 около 30.000 евро) | Облачная аренда, не продаётся |
| Поддержка фреймворков | PyTorch, TensorFlow, JAX | TensorFlow, JAX |
| Сообщество | Огромное | Небольшое, Google-ориентированное |
Для большинства разработчиков GPU — лучший выбор. TPU интересны, если тренируешь крупные модели в Google Cloud и нужна максимальная производительность.
NPU: специалист по искусственному интеллекту в повседневной жизни
Суть
NPU (Neural Processing Unit) — это ускоритель искусственного интеллекта, встроенный прямо в потребительское железо: ноутбуки, смартфоны и планшеты. Она слабее GPU, но потребляет очень мало энергии и заточена под простые задачи ИИ: распознавание речи, распознавание изображений и небольшие нейросетевые модели.
Представь себе кухонный робот, который умеет только нарезать салат. Он не так быстр, как 16.896 помощников GPU, но почти не потребляет электричество, занимает мало места и всегда под рукой, когда он нужен.
Ключевые компоненты NPU
- Systolic Arrays: Специализированные матричные вычислительные блоки, оптимизированные для инференции ИИ.
- Low Power Design: Разработана с расчетом на минимальное энергопотребление — критично для мобильных устройств.
- On-Chip Memory: Компактная, но быстрая локальная память, снижает объем передачи данных.
- Поддержка INT8: Фокус на 8-битных целых числах вместо 32-битных чисел с плавающей точкой, что снижает вычислительную нагрузку и энергопотребление.
NPU vs GPU: что лучше?
| Критерий | NPU | GPU |
|---|---|---|
| Где используется | Ноутбуки, смартфоны, планшеты | Десктопы, серверы |
| Энергопотребление | Очень низкое (несколько ватт) | Высокое (до 700 ватт) |
| Производительность | До 50 TOPS | До 2000 TFLOPS |
| Гибкость | Низкая, только инференция ИИ | Высокая, обучение и инференция |
| Цена | Встроена в устройство | Дополнительное оборудование |
| Типичные задачи | Распознавание речи, распознавание изображений | Обучение ИИ, LLM, рендеринг |
Насколько это важно на практике
Как разработчик приложений ты будешь видеть NPU всё чаще. Intel, AMD и Apple встраивают NPU в свои процессоры. Microsoft Windows 11 предоставляет специальные API для NPU. Для простых задач ИИ вроде локального распознавания речи или классификации изображений NPU идеально подходит: работает экономично и разгружает CPU.
Для сложного обучения ИИ или больших LLM NPU недостаточно. Здесь по-прежнему нужна GPU.
TOPS и FLOPS: как измеряют производительность ИИ
Суть
TOPS (Tera Operations Per Second) и FLOPS (Floating Point Operations Per Second) — это единицы измерения вычислительной мощности процессоров. FLOPS — стандарт для общей вычислительной производительности, TOPS специализируется на ИИ и измеряет целочисленные операции (INT8), которые часто используются в нейросетевых моделях.
Что такое FLOPS?
FLOPS — это Floating Point Operations Per Second. Одна FLOP — это операция с плавающей точкой: сложение или умножение. NVIDIA H100 достигает до 4.000 TFLOPS (Tera FLOPS) при работе с 16-битными числами. Это означает 4 квадриллиона операций в секунду.
# Пример FLOPS: матричное умножение с числами с плавающей точкой
import numpy as np
# Умножение матриц 1000x1000 требует примерно 2.000.000.000 FLOPS
a = np.random.rand(1000, 1000).astype(np.float32)
b = np.random.rand(1000, 1000).astype(np.float32)
result = np.dot(a, b) # 2 TFLOPS для 1000x1000
Что такое TOPS?
TOPS — это Tera Operations Per Second, но специально для целочисленных операций (INT8). Нейросетевые модели часто используют 8-битные целые числа вместо 32-битных чисел с плавающей точкой, потому что это быстрее и экономнее по энергии. NPU с 50 TOPS может выполнять 50 миллиардов целочисленных операций в секунду.
# Пример TOPS: матричное умножение с целыми числами
import numpy as np
# Умножение матриц 1000x1000 с INT8 требует примерно 2.000.000.000 TOPS
a = np.random.randint(0, 255, (1000, 1000)).astype(np.int8)
b = np.random.randint(0, 255, (1000, 1000)).astype(np.int8)
result = np.dot(a, b) # 2 TOPS для 1000x1000
Почему TOPS вместо FLOPS для ИИ?
Нейросетевые модели при инференции всё чаще используют квантизацию — снижение точности с 32 бит до 8 бит. Это быстрее, экономнее по энергии и достаточно точно для большинства приложений. Поэтому TOPS — более подходящая мера для оборудования инференции ИИ, тогда как FLOPS остаётся важным для обучения и общей вычислительной мощности.
Сравнение: CPU, GPU, TPU и NPU по TOPS/FLOPS
| Процессор | FLOPS (FP16) | TOPS (INT8) | Типичное использование |
|---|---|---|---|
| Intel Core i9-14900K | 1.500 TFLOPS | 50 TOPS | Десктоп, игры |
| NVIDIA RTX 4090 | 2.000 TFLOPS | 330 TOPS | Игры, инференция ИИ |
| NVIDIA H100 | 4.000 TFLOPS | 2.000 TOPS | Обучение ИИ, LLM |
| Apple M3 NPU | 0 TFLOPS | 18 TOPS | MacBook, инференция ИИ |
| Intel Core Ultra NPU | 0 TFLOPS | 10 TOPS | Ноутбук, инференция ИИ |
| Google TPU v5p | 0 TFLOPS | 4.700 TOPS | Обучение ИИ в Google |
Насколько это важно на практике
Как разработчик ты должен понимать TOPS и FLOPS для выбора оборудования под проекты с ИИ. Для локальной инференции ИИ на ноутбуке достаточно NPU с 10 до 50 TOPS. Для обучения ИИ нужна GPU со сотнями или тысячами TOPS.
При покупке оборудования обращай внимание на указание TOPS, если планируешь инференцию ИИ на мобильных устройствах. Для десктопных задач с ИИ более важна характеристика FLOPS GPU.
Сравнение: CPU, GPU, TPU и NPU
| Характеристика | CPU | GPU | TPU | NPU |
|---|---|---|---|---|
| Количество ядер | 4 до 16 | Тысячи (до 16.896) | Специализированные матричные блоки | Systolic Arrays (до 50 TOPS) |
| Тип задач | Сложные, последовательные | Простые, параллельные | Только тензорные операции | Инференция ИИ (INT8) |
| Сильные стороны | Логика, управление, ввод/вывод | Параллельные вычисления | Математика, специфичная для ИИ | Энергоэффективная инференция ИИ |
| Память | 32 до 128 ГБ ОЗУ | 8 до 80 ГБ VRAM | 16 до 128 ГБ HBM | On-Chip Memory |
| Пригодность для ИИ | Низкая, слишком медленно | Очень высокая | Экстремально высокая | Средняя, для инференции |
| Цена | 200 до 5.000 евро | 500 до 30.000 евро | Облачная аренда | Встроена в устройство |
| Типичное применение | Операционная система, приложения | Обучение ИИ, графика | Обучение ИИ в Google | Распознавание речи, распознавание изображений |
Какой процессор для какой задачи?
- CPU: Для всего, что не ИИ. Операционная система, веб-серверы, базы данных, обычные приложения.
- GPU: Для обучения и инференции ИИ, когда нужна гибкость. Стандартный выбор для большинства разработчиков ИИ.
- TPU: Для крупномасштабного обучения ИИ в Google Cloud, когда нужна максимальная производительность для моделей TensorFlow или JAX.
- NPU: Для локальной инференции ИИ на ноутбуках и смартфонах. Распознавание речи, распознавание изображений, небольшие нейросетевые модели с минимальным энергопотреблением.
Рекомендуемые книги по теме
Keine Bücher für Kategorie "kuenstliche-intelligenz" gefunden.
Резюме
- CPU — универсальный процессор: несколько, но мощных ядер. Идеален для сложных последовательных задач вроде операционной системы и логики приложений.
- GPU — массовый процессор: тысячи простых ядер, работающих параллельно. Идеален для ИИ, потому что нейросети состоят из миллионов простых математических операций.
- TPU — специалист: создан Google, только для тензорных операций ИИ. Экстремально быстр, но негибкий и доступен только в Google Cloud.
- NPU — ускоритель ИИ в повседневной жизни: встроен в ноутбуки и смартфоны, экстремально экономен при простых задачах ИИ вроде распознавания речи.
- Почему GPU для ИИ: Нейросетевые модели состоят из огромного количества матричных умножений. GPU может выполнять их параллельно и на 10–100 раз быстрее CPU.
- TOPS vs FLOPS: FLOPS измеряет операции с плавающей точкой (обучение), TOPS измеряет целочисленные операции (инференция). Для инференции ИИ TOPS — релевантная мера.
- На практике: Как разработчик ИИ ты используешь GPU для обучения и инференции. NPU для локального ИИ на мобильных устройствах. TPU только в Google Cloud.
Связанные статьи:
- Основы архитектуры компьютера: CPU, шина, память, адресация
- Строение CPU: Fetch, Decode, Execute, регистры, кэш
- Архитектура компьютера: фон Нейман, CPU, иерархия памяти, DMA
- Лучшая операционная система для твоих ИИ агентов
- Лучший ПК для ИИ: Ryzen AI Max+ 395 vs NVIDIA DGX Spark
FAQ CPU, GPU и TPU, типичные экзаменационные вопросы
1. В чём главное отличие между CPU и GPU?
2. Почему GPU лучше подходит для ИИ, чем CPU?
3. Что такое TPU и кто её разработал?
4. Сколько ядер в типичной GPU?
5. Что такое Tensor Cores в GPU?
6. Можно ли купить TPU?
7. Что такое VRAM и почему это важно для ИИ?
8. Что означает параллельная обработка данных?
9. Может ли ИИ работать на CPU?
10. Какая разница между CUDA Cores и Stream Processors?
11. Почему OpenAI потребовались тысячи GPU для ChatGPT?
12. Что такое матричное умножение и почему оно важно для ИИ?
13. Что такое HBM память и почему её используют в GPU и TPU?
14. Какое различие между обучением и инференцией ИИ с точки зрения аппаратного обеспечения?
15. Что такое CUDA и почему это важно?
16. Что такое NPU и для чего она нужна?
17. Какая разница между NPU и GPU?
18. Что такое TOPS и чем они отличаются от FLOPS?
19. Почему модели ИИ используют INT8 вместо FP32?
20. Что такое Systolic Array в NPU?
21. Сколько TOPS нужно для ИИ инференции?
22. Что такое квантизация в моделях ИИ?
23. Какие устройства имеют NPU?
24. Можно ли использовать NPU для обучения ИИ?
25. Какое преимущество NPU для разработчиков приложений?
Источники
- NVIDIA CUDA Dokumentation
- Google Cloud TPU Dokumentation
- NVIDIA H100 Spezifikationen
- Astro Dokumentation


