Карти на стіл. Як вибрати правильний AI-прискорювач у хмарі
2024-04-10
Чому не всі сучасні прискорювачі обчислень оптимальні для AI/ML-навантажень і в чому принципові відмінності між GPU та TPU?
Історія ІТ знає кілька періодів великого інтересу, до технологій штучного інтелекту та машинного навчання (AI/ML). Сьогодні ми наближаємося до одного з них, що обумовлено черговим проривом у галузі апаратних систем — нарешті з'явилися достатні обчислювальні потужності, здатні обробляти дійсно великі та складні моделі AI. Прогресу вдалося досягти зокрема завдяки спеціалізованим прискорювачам (акселераторам) обчислень – картам GPU і TPU.
Й хоча такі рішення все ще досить дорогі – вартість потужних моделей сягає десятків тисяч доларів – доступ до них можна отримати з хмари за помірні гроші. Ціна вже не є стримувальним фактором навіть для стартапів у галузі AI/ML, відповідно, перспективні розробки на основі штучного інтелекту з'являтимуться дедалі частіше. Інша річ, що при виборі хмарного сервісу варто звернути увагу на те, що саме пропонує оператор, адже між різними моделями прискорювачів є принципова різниця і вона важлива.
Такі різні ядра
Один із найбільш ефективних методів прискорення обчислень – це паралельна обробка. Велике і складне завдання розподіляється на багато простіших підзадач, кожна з яких, своєю чергою, виконується в окремому обчислювальному вузлі (процесорі/ядрі/потоці). Обробка відбувається паралельно та одночасно. Тривалий час для цього в основному використовувалися універсальні центральні процесори (CPU) у складі кластерів та/або мультипроцесорних серверів.
Проблема в тому, що функціональність CPU часто є надмірною, а продуктивність на певних класах завдань — недостатньою. Якщо задачу можна розпаралелити, то замість одного потужного універсального чіпа, краще мати масу більш простих вузькоспеціалізованих процесорів. Прогрес у цьому питанні намітився на межі 2000-х років, коли компанія NVIDIA показала нову відеокарту GeForce 256, оснащену блоком спеціальних ядер, адаптованих для роботи з графікою (класична сфера паралельної обробки даних). Тоді ж вперше з'явилася абревіатура GPU (graphics processing unit, графічний процесор).
Але справжній прорив стався, коли NVIDIA вирішила не обмежуватися лише графікою і 2007 року вела на ринок графічні карти нового покоління – GPU загального призначення (General-purpose) computing on graphics processing units) та спеціалізовану архітектуру Compute Unified Device Architecture (CUDA), що забезпечила ефективну паралельну обробку даних. Карти GPGPU (для стислості їх також називали і називають GPU) на базі CUDA вже могли виконувати широке коло обчислювальних задач, що виходили далеко за межі роботи з графікою. Ще важливіше те, що на одній відеокарті можна розмістити сотні та тисячі CUDA-ядер.
Користувачі, яким були потрібні величезні обсяги обчислень, ідею оцінили, в результаті, GPU швидко знайшли місце у вирішенні складних наукових, інженерних, логістичних та інших ресурсомістких задач. Виросла не лише обчислювальна потужність, але й енергоефективність — там, де раніше потрібна була величезна машинна зала, повна обладнання, тепер впоралася б одна стійка серверів. З того часу, наприклад, жоден новий суперкомп'ютер не обходився без застосування GPU-прискорювачів.
Звичайно ж і до AI/ML їх теж намагалися пристосувати, але швидко з'ясувалося, що тут потрібно щось більш швидке. Ядра CUDA, це насправді ті ж універсальні процесори, хоча й дещо спрощені. Водночас для обробки AI/ML-моделей більшість обчислювальної потужності, зазвичай, йде на досить прості, однотипні, але дуже численні операції з тензорами (у даному випадку вони зводяться до перемноження матриць). Тому в 2017 році NVIDIA випустила новий тип GPU на базі архітектури Volta, перевагою яких стала наявність ядер нового типу – тензорних (tensor core).
Про особливості тензорних ядер ми розповідали в окремій статті. Тут лише зазначимо, що вони дозволили суттєво збільшити продуктивність GPU на задачах штучного інтелекту та машинного навчання, піднявши ефективність прискорювачів на недосяжну раніше висоту. Розвиваючи успіх, у наступні роки NVIDIA представила ще кілька поколінь архітектур з тензорними ядрами: Turing, Ampere, Ada Lovelace, Hopper і – у березні 2024 року – Blackwell. Зараз провідні хмарні оператори пропонують доступ до прискорювачів на базі архітектур Ampere, Ada Lovelace та Hopper. Turing вже вважається застарілою, а моделі на Blackwell ще не надходили на масовий ринок (вони повинні з'явитися цього року, але невідомо, коли саме і як швидко вони будуть доступні замовникам).
Чому ми весь час говоримо лише про рішення NVIDIA (хоча є й інші виробники GPU з тензорними ярами)? Бо сьогодні переважна більшість дата-центрів та хмарних операторів по всьому світу, включно з De Novo, використовують прискорювачі саме цієї компанії. Інша річ, що карти, доступні в хмарах, можуть суттєво відрізнятися за своїми характеристиками. Давайте подивимось, у чому ж різниця.
TPU ≠ GPU
Почнемо з того, що в продуктовому портфелі NVIDIA є два принципово різних сімейства GPU-прискорювачів з тензорними ядрами — моделі для кінцевих користувачів, т.зв. «ігрові карти» (містять у назві GeForce) і рішення для дата-центрів, у яких перша літера найменування відповідає типу архітектури: «T» – Turing, «A» – Ampere, «L» – Ada Lovelace, «H» – Hopper (наприклад, A40, L40, H100 і т.д.).
Споживчі моделі призначені виключно для персонального використання, в угоді користувача (EULA) NVIDIA прямо вказано, що такі карти не можуть працювати в датацентрах і до них не можна відкривати віддалений доступ. Система активного охолодження не дозволяє встановити їх у промислове серверне обладнання. Не менш важливо й те, що користувацькі карти не підтримують віртуалізацію GPU, не призначені для роботи в режимі 24x7, а їхня питома енергоефективність (продуктивність у розрахунку на ват) приблизно вдвічі нижча, ніж в акселераторів для дата-центрів.
У контексті цієї статті нас більше цікавить друга група прискорювачів — призначена для ЦОД та, відповідно, для хмарних сервісів. Крім підвищеної продуктивності, такі моделі підтримують віртуалізацію, віддалений доступ кількох користувачів одночасно і здатні об'єднуватися в кластери з можливістю майже безмежного масштабування.
У сегменті для дата-центрів NVIDIA пропонує більше десятка різних базових моделей карт, які своєю чергою теж можна розділити на дві групи. Перша поєднує класичні GPU, орієнтовані, в основному, на роботу з графікою та відео. Такі моделі містять збільшену кількість універсальних ядер CUDA (їх може бути понад 10 тис. на одному пристрої), мають «на борту» спеціальні RT-ядра для «рейтрейсингу» (найбільш реалістична технологія емуляції освітлення на 3D-зображеннях), обов'язково містять відео кодери/декодери, а основне призначення тензорних ядер тут — допомога в обробці графіки (технології DLSS, AI denoising та ін.). Найбільш потужними картами цієї групи є моделі А40 та L40, на базі мікроархітектур Ampere та Ada Lovelace відповідно.
Звичайно, такі прискорювачі можна використовувати не тільки для професійної графіки, моделі А40 є хорошим рішенням також для розгортання інфраструктур віртуальних робочих столів (VDI), хмарних відеоігор, аналізу бізнес-даних, помірних НРС-навантажень. Їх також можна застосовувати для навчання моделей штучного інтелекту помірного розміру та складності. Але все ж таки найкраще вони показують себе саме на задачах що, так чи інакше, пов'язані з обробкою зображень, насамперед (наприклад, рендеринг графіки в реальному часі).
Друге сімейство, номінально, також відноситься до GPU, але, орієнтоване воно, головним чином, на вирішення завдань, не пов'язаних з графікою. Йдеться про моделі «сотих» серій, зокрема, A100 та її спадкоємця H100 у яких повністю відсутні відео кодеки, RT-ядра та інші супутні компоненти. Натомість обчислювальні здібності, пов'язані з AI/ML виставлені на максимум. Такі моделі також містять тисячі ядер CUDA (в Н100 їх майже 17 тис.) і водночас мають підвищену кількість тензорних процесорів, які, до того ж більш технологічні та продуктивні.
Ще одна особливість — більший, ніж у будь-яких інших прискорювачів, обсяг та швидкість роботи оперативної пам'яті, а інтерконнект (швидкість обміну даними між картами) завдяки фірмовій технології NVIDIA NVLink сягає неймовірних 900 Гбайт/с в обох напрямках (в сім разів більше, ніж пропускна спроможність шини PCIe Gen5). Є й інші особливості, які суттєво підвищують продуктивність прискорювачів A100 та H100 саме на завданнях AI/ML. Тобто, коректніше було б називати такі пристрої не GPU, бо робота з графікою тут на другому плані – а TPU (Tensor Processing Unit), оскільки саме розвинені технології для тензорних обчислень є їхньою перевагою та ключовою відмінністю.
Такі TPU можуть ефективно працювати з великими моделями штучного інтелекту та машинного навчання, обробляти величезні масиви даних, здійснювати інтенсивні HPC-обчислення, великомасштабні наукові симуляції тощо. Моделювання, прогнозування, аналіз великих даних, найскладніші розрахунки та пошук кращих рішень – ці та багато інших задач сьогодні ефективно вирішують за допомогою TPU.
Проте, якщо вам все ж потрібне універсальне рішення – більш продуктивне на завданнях AI/ML, ніж GPU A40, але водночас з повноцінною підтримкою графічних процесів, на цей випадок в NVIDIA є спеціальна модель L40S. За показниками продуктивності вона не поступається А100, але й коштує не менше.
Що ж обрати?
Побудова власної сучасної ІТ-інфраструктури достатньої продуктивності для AI/ML – складний, тривалий та дорогий процес. Вартість серверів з відповідними прискорювачами та інфраструктурою легко перевалює за $100 тис., а терміни постачання TPU, попит на які сьогодні б'є рекорди, вимірюються місяцями. Окрім того, власна інфраструктура, як правило, досить статична й не достатньо гнучка. Водночас задачі, для вирішення яких вона створювалася, можуть суттєво змінитись протягом буквально кількох кварталів.
Сьогодні, отримати доступ до найсучасніших AI-прискорювачів з тензорними ядрами можна з хмари оператора, не витрачаючи час на очікування та оплачуючи потужності в міру їх використання. До того ж хмари забезпечують більшу гнучкість, що дозволяє користувачеві своєчасно адаптувати свою ІТ-інфраструктуру відповідно до змін.
Але, обираючи хмарну платформу варто звернути увагу на тип прискорювачів, що їх пропонує оператор — якщо ви в основному плануєте працювати з графікою, класичних GPU (наприклад, згадані NVIDIA А40, L40, L4) буде достатньо. Проте якщо ваші задачі більш орієнтовані на штучний інтелект та машинне навчання, наприклад, роботу з великими мовними моделями (LLM), HPC-обчисленнями або іншими складними розрахунками, оптимальним вибором будуть TPU — A100, H100, L40S тощо.
Компанія De Novo пропонує доступ до найпотужніших TPU NVIDIA H100 і L40S безпосередньо з оточення Kubernetes у складі нових хмарних послуг Tensor Cloud (у колективній хмарі) та HTI (сервіс класу GPU Private Cloud), а з PaaS-платформою ML Cloud ви отримуєте ще й готове повноцінне робоче середовище для ML-інженера (класу AWS SageMaker або Google Vertex AI). Якщо хочете дізнатися більше — звертайтеся за детальною консультацією до наших експертів, які не лише нададуть відповідь на ваші запитання, але й допоможуть розгорнути пілотний проєкт або перенести навантаження в хмару De Novo.