Урок 1 із 7
Що насправді робить GPU
7 хв читання
Головний чип твого ноутбука — геній. То чому ж для запуску моделі потрібен геть інакший чип, зібраний із тисяч крихітних, майже примітивних ядер?
Один швидкий працівник проти величезної бригади
CPU — це кілька дуже швидких, дуже кмітливих ядер, які блискуче роблять одну складну річ за іншою. GPU — навпаки: тисячі простих ядер, що виконують легку математику одночасно. Головна операція моделі — саме така легка математика, перемножування довгих списків чисел, тільки її неймовірно багато. Віддай це CPU — і він продирається крізь чергу; віддай GPU — і бригада ділить роботу між собою й фінішує разом.
GPU — це не швидший CPU, а інакша форма: багато маленьких ядер виконують ту саму просту математику паралельно. А робота моделі має рівно таку саму форму.
Чому модель любить паралельність
Запуск моделі — це множення входу на мільйони ваг, знову і знову. Жодне з цих множень не залежить від іншого, тож усі можуть відбутися воднораз. Це і є визначення паралельного навантаження; саме тому на тій самій задачі GPU буває в десятки разів швидшим за CPU, дарма що кожне його ядро окремо повільніше.
Робота настільки паралельна, що аж дивно: мільйони незалежних множень. А GPU для того й існує, щоб виконувати незалежну роботу одночасно. Майже ідеальний збіг.
Власне, саме тому GPU незамінні й у графіці: намалювати екран — це зафарбувати мільйони пікселів незалежно один від одного, тобто та сама «купа легкої математики за раз», що й усередині моделі.
Суть коротко
- —У CPU кілька кмітливих ядер; у GPU — тисячі простих.
- —Математика моделі — мільйони незалежних множень, ідеальних для одночасного виконання.
- —Тому інференс іде на GPU: робота паралельна, а GPU збудований під паралельність.
Чому для запуску моделі GPU підходить краще за швидкий CPU?
Продовжити в застосунку
Пройди весь курс «Інференс і залізо» — з відстеженням
Отримай персональний план, прогрес і стріки в застосунку — цей урок і кожен наступний, по порядку.