Зміст
Чому нейромережу не можна навчати на звичайному CPU так само ефективно, як «звичайну» програму? Бо мережа — це море однотипних матричних операцій, які добре паралелізуються. Звичайний код частіше живе послідовною логікою; залізо для ШІ заточене під масовий паралелізм, пам’ять під тензори й швидкий обмін даними. Нижче — повний розбір: CPU і GPU, CUDA і Tensor Cores, VRAM і пропускна здатність, TPU/NPU, Apple Silicon, multi-GPU, квантування, класи машин і карта вибору під OCR, YOLO і LLM. Зв’язка з софтом: PyTorch vs TensorFlow та огляд ML-фреймворків.
Ключові висновки
Нейромережа = масовий паралелізм. Матриці й згортки люблять тисячі простих ядер сильніше, ніж кілька «розумних» ядер CPU.
GPU без CPU марний. Процесор готує дані, оркеструє цикл і постобробку; GPU рахує тензори.
VRAM часто важливіший за «терафлопси». Ваги, активації, градієнти й стани оптимізатора мають поміщатися в пам’ять прискорювача — особливо під час навчання.
Навчання ≠ вивід. Навчання «їсть» пам’ять і часто multi-GPU; вивід можна стиснути квантуванням, NPU, CPU або браузерним WebGPU.
Екосистема ПЗ вирішує не менше за чіп. CUDA навколо NVIDIA — величезний практичний плюс; альтернативи (ROCm, Metal, TPU) живі, але дивіться стек фреймворка.
Що рахує нейромережа
Типовий шар:
Y = XW + b
Всередині — множення матриць, додавання, активації, згортки, attention, нормалізація. Усе це живе в тензорах — багатовимірних масивах чисел:
Tensor → операції → величезний потік чисел → обчислювальне залізо
Звичайна програма: мало складних послідовних кроків. Мережа: мільярди однотипних операцій, які можна роздати тисячам обчислювальних блоків.
CPU vs GPU: різна архітектура
CPU — кілька потужних ядер, складна логіка, відмінна універсальність і послідовні задачі.
GPU — величезна кількість простіших блоків, масовий паралелізм, сильний у матрицях і тензорах.
CPU: [Core] [Core] [Core] [Core]
GPU: [ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
Міф «для нейромереж потрібен лише GPU» ламається об реальність:
CPU → завантаження даних, попередня обробка, оркестрація, керування
↓
GPU → тензорні операції, matmul, шари, навчання / важкий вивід
Без швидкої підготовки батчів навіть топовий прискорювач простоює.
GPU зсередини, CUDA і Tensor Cores
Сучасна ШІ-відеокарта — не «іграшка з підсвіткою», а обчислювальний вузол: виконавчі блоки, прискорення матриць, VRAM, контролер пам’яті, кеш, interconnect (зв’язок між чипами).
Програмний міст (типовий шлях):
PyTorch / TensorFlow → CUDA → NVIDIA GPU
Навколо NVIDIA виросли ядра CUDA, бібліотеки, cuDNN, TensorRT, NCCL. Перевага — не лише кремній, а й зріла екосистема ПЗ.
Tensor Cores (і подібні matrix units) заточені під змішану точність: FP32, FP16, BF16, TF32, INT8 тощо. Велика мережа → матриці → спецблоки → швидші обчислення за акуратного вибору формату чисел.
VRAM, пропускна здатність і шлях даних
Під час навчання в пам’яті живуть не лише ваги:
VRAM → weights · activations · gradients · optimizer states · buffers
Тому модель, яка виводиться на 8 ГБ, може не навчатися на тій самій карті: градієнти й Adam «роздувають» бюджет.
Груба оцінка:
Memory ≈ weights + gradients + activations + optimizer + overhead
Формат чисел (FP32 / FP16 / BF16 / INT8) і прийоми на кшталт LoRA/QLoRA сильно змінюють цифру.
Об’єм VRAM ≠ уся історія. Дивіться ще:
FLOPS vs Memory Bandwidth vs VRAM Capacity
Задача може бути обмежена обчисленнями (упирається в рахунок) або обмежена пам’яттю (упирається в швидкість підкачки тензорів).
Шлях даних:
Storage (SSD) → RAM → CPU → PCIe → GPU VRAM
Повільний диск, вузький PCIe або «голодний» DataLoader залишають GPU чекати. Для кількох GPU важливі швидкий interconnect (NVLink і аналоги), NCCL і колективні операції — інакше розподілене навчання упирається в обмін, а не в терафлопси.
Multi-GPU, TPU, NPU, Apple та інші
Коли однієї карти мало:
- паралелізм за даними — різні батчі на копіях моделі;
- паралелізм моделі / тензорів / конвеєра — частини моделі на різних GPU.
Більше GPU ≠ лінійне прискорення: зростає ціна синхронізації.
TPU — спеціалізоване залізо Google під тензори (часто TensorFlow/JAX). Не «ще один GPU», а інша точка в спектрі: CPU універсальний, GPU — масовий паралелізм, TPU — вузько заточений тензорний рахунок.
NPU — ШІ-прискорювач у ноутбуках і телефонах, частіше під вивід: мова, камера, розмиття тла, локальні ембеддинги, легкі LLM. Енергоефективність важливіша за пікові FLOPS.
Apple Silicon об’єднує CPU, GPU і Neural Engine через unified memory — немає класичного «окремого острова VRAM». Зручно для локального ШІ; стек — Metal/MPS, MLX і споріднені інструменти.
Поруч: AMD (compute + ROCm), Intel (CPU/GPU/NPU), Google (TPU). Ринок ширший за NVIDIA, але практичний вибір часто диктує підтримка фреймворка.
Сховище, класи машин і енергія
Повний контур навчання:
Dataset → SSD → RAM → CPU preprocess → PCIe → GPU VRAM
→ forward → loss → backprop → optimizer → new weights → repeat
Карта пріоритетів:
Велика модель / навчання? → VRAM / GPU
GPU простоює? → конвеєр даних / CPU / SSD / RAM
Мала локальна модель? → CPU / NPU / unified memory
Величезний датасет? → SSD + RAM + prefetch
| Задача | На що дивитися |
|---|---|
| Простий класифікатор | CPU або скромний GPU |
| OCR / CRNN | GPU прискорює навчання; вивід часто на CPU (CRNN) |
| YOLO / детекція | GPU, VRAM, пропускна здатність (YOLO) |
| Вивід LLM | пам’ять + пропускна здатність; квантування |
| Навчання LLM | багато VRAM, multi-GPU, швидкий interconnect |
| Смартфон | NPU, енергія, затримка |
| Браузер | WebGPU + компактні ваги (WebGPU) |
Класи конфігурацій (без прив’язки до конкретних артикулів):
- Навчання / старт: CPU, 16–32 ГБ RAM, помірний GPU, SSD.
- Комп’ютерний зір: сильніший GPU і VRAM, швидкий SSD, достатній CPU.
- Локальна LLM: головне — доступна пам’ять (VRAM / unified); квантування.
- Серйозне навчання:
multi-GPU, швидкий interconnect, великий RAM, живлення й охолодження.
Як знайти вузьке місце:
GPU ~100%? → compute-bound
GPU ~20%? → конвеєр даних / CPU / I/O
VRAM 100%? → batch / модель / precision
Диск busy? → storage
Дивіться utilization GPU/CPU, VRAM/RAM, throughput диска й PCIe, зразків/сек.
Типові помилки вибору: дивитися лише на FLOPS; ігнорувати VRAM і bandwidth; слабкий CPU при сильній GPU; недооцінити БЖ і охолодження; чекати лінійного прискорення від N карт; плутати залізо навчання й виводу; вважати NPU заміною датацентрової GPU.
Алгоритм вибору: модель → training чи inference → пам’ять → throughput → precision → framework → підтримувані бекенди → бюджет / живлення / охолодження.
Класи володіння (без прайсу — ціни пливуть):
Ноутбук → робоча станція → 1 потужна GPU → `multi-GPU` → ШІ-сервер → кластер
Зростають задачі, пам’ять, енергоспоживання й вартість володіння. GPU треба живити й охолоджувати: TDP, БЖ, потік повітря, шум. Дата-центр — це вже стійки, мережа, живлення й охолодження в масштабі, а не «ігровий ПК з RGB».
Навчання vs вивід, квантування і чому «не влізе»
| Навчання | Вивід | |
|---|---|---|
| GPU | Часто критичний | Залежить від моделі |
| VRAM | Висока | Нижча |
| Градієнти / optimizer | Потрібні | Ні |
| Затримка | Менш критична | Часто критична |
| Енергія | Важлива | Часто дуже важлива |
| NPU | Рідше | Особливо цікавий |
Типові причини «потужний ПК не тягне»: мало VRAM/RAM, занадто велика модель або контекст, важкі активації, великий batch, фрагментація. Ліки: квантування, менша модель, LoRA, шардинг, вивантаження в пам’ять, менший batch, оптимізація виводу (ONNX).
Квантування:
FP32 → FP16/BF16 → INT8 → INT4
Менший розмір і слід у пам’яті, іноді швидше — ціною ризику для якості. Для локальних LLM це часто єдиний спосіб умістити модель.
Стек: від застосунку до чіпа
Application
↓
PyTorch / TensorFlow / JAX
↓
ML libraries
↓
CUDA / ROCm / Metal / TPU runtime
↓
GPU / TPU / NPU / CPU
↓
Memory · PCIe / fabric · Storage / Network
Фреймворк не живе у вакуумі: його можливості упираються в апаратний стек. YOLO, CRNN і Transformers — різні навантаження поверх одного принципу «тензори → прискорювач».
Часті запитання
З чого зібрати станцію під OCR і YOLO?
SSD + достатня RAM + NVIDIA GPU із запасом VRAM під навчання. Вивід компактних OCR-моделей часто лишається на CPU.
Чи вистачить Mac з unified memory?
Для локального виводу й експериментів — часто так. Для важкого навчання в екосистемі CUDA орієнтир усе ще NVIDIA + драйвери.
Чому GPU завантажений на 30%?
Частіше голодує за даними: диск, DataLoader, попередня обробка на CPU, вузький PCIe. Дивіться конвеєр, а не лише модель.
Чи потрібен TPU?
Якщо ви вже в Google Cloud / стеку JAX/TF і задача лягає на TPU — так. Інакше це не «обов’язкове оновлення» поверх CUDA-станції.
Далі по темі
Висновок
Залізо для ШІ — це система: CPU готує й оркеструє, GPU/TPU/NPU рахують тензори, пам’ять і пропускна здатність вирішують, «чи влізе», сховище годує конвеєр, а живлення з охолодженням дозволяють машині працювати годинами. Навчання й вивід потребують різних бюджетів; квантування й експорт знімають частину обмежень. Обирайте зв’язку «задача → фреймворк → runtime → прискорювач», а не окрему «найпотужнішу карту».
Математика мережі → Framework → Runtime (CUDA/…) → Accelerator → Memory/IO



Коментарі