← Усі статті

Залізо для ШІ: CPU, GPU, TPU, NPU, VRAM і що потрібно нейромережам

Чому GPU так важливий для нейромереж, чим відрізняються CPU, TPU і NPU, навіщо VRAM і пропускна здатність пам’яті, як влаштовані `multi-GPU`, квантування та стек від PyTorch до заліза.

Залізо для ШІ: CPU, GPU, TPU, NPU, VRAM і що потрібно нейромережам
Зміст

Чому нейромережу не можна навчати на звичайному 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

Коментарі

Завантаження коментарів…