Постачальники хмарних GPU з NVLink або InfiniBand
Високошвидкісні інтерконекти GPU, такі як NVLink (до 900 ГБ/с) та InfiniBand (до 400 Гб/с), є необхідними для ефективного навчання з використанням кількох GPU та кількох вузлів. Без швидкого інтерконекту синхронізація градієнтів стає вузьким місцем у розподіленому навчанні, суттєво знижуючи ефективність масштабування. Цей посібник містить перелік постачальників, які пропонують підключення NVLink або InfiniBand для своїх GPU-інстансів.
United States Що насправді роблять NVLink та InfiniBand при оренді обчислень з кількома GPU
NVLink та InfiniBand вирішують одну й ту саму фундаментальну проблему з двох різних боків машини: швидко передавати дані між GPU, щоб прискорювачі проводили час за обчисленнями, а не очікуванням. Фільтр вище звужує список до хмарних інстансів, які підтримують один або обидва ці інтерконекти. Вони не є взаємозамінними — один є вузловою мережею, що з’єднує GPU всередині одного сервера, а інший — міжвузловою мережею, що з’єднує сервери в кластер. Для будь-якого навантаження, яке охоплює більше одного GPU, інтерконект часто є різницею між майже лінійним масштабуванням і конфігурацією, де додавання GPU майже не допомагає.
NVLink: швидка магістраль між GPU всередині одного корпусу
NVLink — це пряме з’єднання GPU від NVIDIA. Замість маршрутизації трафіку через шину PCIe хоста та CPU, NVLink з’єднує GPU між собою (а на деяких платформах через NVSwitch кросбар), щоб кожен GPU у вузлі міг спілкуватися з кожним іншим GPU з високою пропускною здатністю та низькою затримкою. Практичний результат при оренді інстансу з NVLink:
- Набагато вища пропускна здатність між GPU порівняно з вузлами лише на PCIe, що важливо, коли на кожному кроці потрібно обмінюватися градієнтами, активаціями або частинами моделі.
- Об’єднана пам’ять між GPU на практиці — модель, що занадто велика для VRAM одного GPU, може бути розподілена по домену NVLink, при цьому трафік між GPU проходить по швидкій мережі, а не повільно через PCIe.
- Менші накладні витрати на синхронізацію для колективних операцій, таких як all-reduce, які домінують у паралельному навчанні даних.
NVLink працює всередині одного вузла, тому його охоплення зазвичай становить 2, 4 або 8 GPU залежно від конструкції сервера. Якщо постачальник у наведеному вище списку рекламує 8-GPU вузол “з NVLink”, це означає, що ці вісім карт тісно пов’язані. Це саме по собі не говорить про те, як цей вузол з’єднується з іншими вузлами.
InfiniBand: мережа, що перетворює багато серверів на один кластер
InfiniBand — це мережна технологія, що використовується для з’єднання окремих серверів з GPU. Коли навчальні завдання виходять за межі одного вузла, вузьке місце переміщується зсередини корпусу на міжкорпусний простір, і звичайна Ethernet-мережа може блокувати GPU. InfiniBand вирішує це завдяки дуже високій пропускній здатності на лінію, низькій та передбачуваній затримці, а також RDMA (віддалений прямий доступ до пам’яті), що дозволяє одному серверу читати або записувати пам’ять іншого сервера без участі CPU з обох сторін. У поєднанні з GPUDirect RDMA дані можуть переміщатися від GPU до GPU між вузлами, майже уникаючи копіювання в пам’яті хоста.
Для навчання на кількох вузлах це те, що забезпечує ефективне масштабування. Причина, чому кластер із, наприклад, десятків або сотень GPU може навчати велику модель за розумний час, полягає в тому, що міжвузлова мережа встигає за колективною комунікацією, яку вимагає алгоритм. Якщо перейти на звичайну мережу, те саме завдання може витрачати велику частину часу на очікування в мережі.
Які навантаження справді потребують цього
Фільтрувати за NVLink або InfiniBand має сенс, коли комунікація, а не лише обчислення, є критичною:
- Навчання та донавчання великих моделей, які розподіляють параметри, стан оптимізатора або шари між GPU (тензорне, конвеєрне або повністю розподілене паралельне навчання) — ці схеми генерують постійний трафік між GPU і найбільше виграють від NVLink у межах вузла та InfiniBand між вузлами.
- Розподілене навчання на кількох вузлах, коли завдання просто не поміщається в один сервер — тут InfiniBand є вирішальним фактором для ефективності масштабування.
- Високопродуктивні обчислення та наукове моделювання, що потребують тісної міжпроцесної комунікації, які роками покладаються на InfiniBand та RDMA.
- Виведення з великим контекстом або великими моделями, що розподіляють одну модель на кілька GPU, де NVLink зменшує затримку при доступі до уваги та ваг між GPU.
Для роботи на одному GPU це справді надмірно. Донавчання невеликої моделі, запуск пакетного виведення, що поміщається на одну карту, більшість завдань рендерингу та експерименти добре працюють на окремому GPU. Платити премію за тісно пов’язаний вузол або кластер з InfiniBand немає сенсу, якщо ваше завдання ніколи не виходить за межі одного GPU.
Що перевірити перед орендою
Ці два інтерконекти часто плутають у маркетингових матеріалах, тому перевірте деталі за наведеним вище порівнянням:
- Охоплення — підтвердіть, чи означає оголошення NVLink (зв’язок GPU всередині вузла) чи InfiniBand (мережа між вузлами). Окремий інстанс може мати NVLink і зовсім не мати InfiniBand.
- Топологія та ширина — скільки GPU поділяють домен NVLink (повний NVSwitch all-to-all проти часткових мостів), а також швидкість лінку InfiniBand і чи увімкнено RDMA/GPUDirect.
- Покоління — новіші покоління GPU мають NVLink з вищою пропускною здатністю; позначка “NVLink” сама по собі не вказує на швидкість.
- Доступність на кількох вузлах — чи можна фактично зарезервувати кілька взаємопов’язаних вузлів і чи розміщені вони в одній мережі, а не розкидані по датацентру.
- Підтримка програмного забезпечення — щоб NCCL, MPI та ваш фреймворк бачили і використовували мережу; неправильне налаштування непомітно переключає на повільні шляхи.
Щодо вартості та доступності, інстанси з багатими інтерконектами розташовані ближче до верхнього кінця спектра. Вузли з NVLink і кластери з InfiniBand використовують преміальне обладнання і користуються стабільним попитом, тому ємність на вимогу обмежена, а варіанти зі спотовими або переривними інстансами рідші, ніж для окремих звичайних GPU. Особливо виділення InfiniBand на кількох вузлах часто регулюється, резервується або продається великими блоками. Вважайте ціни в таблиці вище як актуальний орієнтир, оскільки тарифи змінюються і відрізняються у різних постачальників.
Поширені запитання
Чи потрібні мені обидва — NVLink і InfiniBand?
Це залежить від масштабу. Завданню з кількома GPU в одному вузлі потрібен лише NVLink. Як тільки ваше навчання охоплює кілька серверів, вам також потрібен InfiniBand для з’єднання цих вузлів — вони працюють на різних рівнях, тому великий кластер зазвичай покладається на NVLink всередині корпусу і InfiniBand між корпусами.
Чи працюватиме моє навантаження на одному GPU швидше на інстансі з NVLink або InfiniBand?
Ні. Обидва інтерконекти мають значення лише тоді, коли дані переміщуються між GPU або між вузлами. Навантаження, яке поміщається на один GPU, ніколи не торкається цих мереж, тому ви платитимете премію за потужність, якою не користуєтеся. Фільтруйте за цими параметрами лише тоді, коли масштабуєтеся понад один GPU.
Чому інтерконект важливіший за характеристики окремого GPU для великих навчальних завдань?
Розподілене навчання витрачає велику частку кожного кроку на обмін градієнтами та активаціями. Якщо мережа не встигає, GPU простоюють, чекаючи синхронізації, і додавання GPU дає дедалі менший приріст. Швидкий інтерконект зберігає майже лінійне масштабування при додаванні прискорювачів.
Чи доступний NVLink на кожному інстансі з кількома GPU?
Ні. Деякі вузли з кількома GPU з’єднують карти лише через PCIe, що має набагато нижчу пропускну здатність між GPU. Наявність кількох GPU не гарантує NVLink, тому підтверджуйте інтерконект явно у наведеному вище порівнянні, а не припускайте його за кількістю GPU.