Спокуси міжпроцесорних з’єднань GPU

Назви графічних прискорювачів NVIDIA H100 NVL та H200 NVL для задач штучного інтелекту і високопродуктивних обчислень вказують на підтримку NVLink - технології обміну даними між кількома GPU графічними процесорами з набагато більшою швидкістю, ніж по шині PCIe. Мости NVLink застосовуються в багатопроцесорних (multi-GPU) системах, де критично важлива висока загальна продуктивність за інтенсивного внутрішнього обміну даними - у навчанні нейромереж, розпізнаванні зображень, обробці природної мови, науковому моделюванні.
Від SLI до NVLink
Значною частиною еволюції GPU останніх десятиліть став розвиток технологій, що дозволяють кільком графічним процесорам працювати разом. NVIDIA пройшла шлях від SLI – популярної серед геймерів технології - до NVLink для завдань машинного навчання та логічного висновку в реальному часі.
SLI початку 2000-х років була відповіддю NVIDIA на зростання попиту на вищу графічну якість у відеоіграх. Покращення продуктивності забезпечувалось шляхом альтернативного рендерингу з розподілом відтворення кадрів між кількома GPU. Схожим чином працювала і технологія конкурента AMD CrossFire.
У 2010-х з’явились цілі цікавіші за покращення ігрового та споживчого графічного досвіду. Розвиток штучного інтелекту, високопродуктивні обчислення та аналітика великих даних потребували продуктивних багатопроцесорних рішень. У 2017 році разом з архітектурою Volta NVIDIA представила принципово новий підхід до з’єднання графічних процесорів – NVLink. Завдяки сітчастій топології та концепції уніфікованої пам’яті вдалося суттєво підвищити ефективність паралельної обробки великих обсягів даних.
Рушії технології
Архітектура NVLink побудована на високошвидкісних лініях передачі даних, які забезпечують двонаправлену комунікацію. NVLink реалізує з’єднання типу «точка-точка», що суттєво зменшує вузькі місця в обміні даними та підвищує загальну пропускну здатність.
Сітчаста топологія дозволяє створювати більш гнучкі та численні з’єднання між графічними процесорами, на відміну від старіших архітектур на зразок ланцюгових або схем «зірка». Це критично важливо для дата-центрів і високопродуктивних обчислень, де складні маршрути даних є нормою.
Ключовою перевагою є уніфікований доступ до пам’яті, який зменшує потребу в дублюванні даних між GPU. Це значною мірою спрощує роботу з великими наборами даних, особливо у задачах машинного навчання та аналітики великих даних, де об’єм оперативної пам’яті одного графічного процесора часто є недостатнім.
NVLink покращує затримки при передачі даних, що є критичним фактором для ефективної синхронізації між GPU. Цього досягають завдяки підтримці прямого доступу до пам’яті (DMA) — коли один GPU може напряму зчитувати або записувати дані в пам’ять іншого, без участі центрального процесора.
Зі зростанням попиту на обчислення штучного інтелекту, логічного висновку та аналітики в реальному часі, розвиток NVLink продовжуватиме відігравати ключову роль у створенні масштабованих, високопродуктивних систем.
Позиція NVIDIA
Компанія представляє технологію NVLink як преміальну функцію для обраних відеокарт. NVLink має дві ключові переваги: по-перше, пропускна спроможність протоколу значно вища, ніж у PCI, а по-друге, чіпи відеокарт пов'язані безпосередньо в обхід процесора. Теоретично ці особливості повинні забезпечувати більш високу швидкість виконання завдань:
- Оптимізація топології (наприклад, точка-точка, сітчаста, кільцева) на основі вимог до робочого навантаження. Наприклад, моделі навчання ШІ з інтенсивним міжграфічним зв'язком отримують переваги від сітчастих топологій, тоді як робочі навантаження з мінімальною передачею даних між графічними процесорами можуть використовувати простіші налаштування.
- Використання бібліотек з підтримкою NVLink: cuDNN, NCCL та TensorRT. Вони ефективно обробляють паралелізм та пулінг пам'яті, зменшуючи потребу в користувацькій оптимізації.
- Інтеграція NVSwitch для гіпермасштабованих систем, багатовузлових конфігурацій.
- Закріплення пам'яті для оптимізації швидкості передачі. Поєднання закріпленої пам'яті з уніфікованою моделлю пам'яті NVLink може ще більше підвищити продуктивність у програмах, що потребують частого зв'язку між хостом і графічним процесором.
- Поєднання NVLink з RDMA для кластерних обчислень: у розподілених системах використовуйте віддалений прямий доступ до пам'яті (RDMA) для досягнення зв'язку між вузлами графічного процесора з низькою затримкою.
Сучасний стан
Флагманський дискретний графічний прискорювач NVIDIA H200 NVL підтримує використання мостів NVLink як у конфігурації на два, так і на чотири GPU.


У парному режимі (2×GPU) пропускна здатність міжпроцесорного з’єднання досягає 900 ГБ/с, що на 50% вище, ніж у попередника H100 NVL, і приблизно в 7 разів швидше, ніж по шині PCIe Gen5.
У конфігурації з чотирма прискорювачами H200 NVL, з’єднаними мостами NVLink, сумарна швидкість обміну даними сягає 1,8 ТБ/с. Це відкриває нові горизонти для задач з екстремально високими вимогами до міжпроцесорної комунікації — таких як тренування гігантських LLM, графові обчислення та обробка потокових даних у реальному часі.
|
Feature |
NVIDIA H100 NVL |
NVIDIA H200 NVL |
|
Memory |
94 GB HBM3 |
141 GB HBM3e |
|
Memory Bandwidth |
3.35 TB/s |
4.8 TB/s |
|
Max NVLink (BW) |
2-way (600 GB/s) |
4-way (1.8 TB/s) |
|
Max Memory Pool |
188 GB |
564 GB |
Рекомендована архітектура
NVIDIA надає рекомендації щодо апаратного та програмного забезпечення для побудови високопродуктивної, масштабованої, безпечної інфраструктури прискорених графічних обчислень.
Специфікація NVIDIA MGX пропонує виробникам серверних систем модульну еталонну архітектуру для ефективного створення різноманітних варіантів серверів. Наприклад, у шаблоні H200 NVL PCIe Optimized 2-8-5 цифри позначають кількість процесорних сокетів (CPU), кількість графічних процесорів (GPU) та кількість мережевих адаптерів (NIC). Вісім H200 NVL можуть бути поєднані двома мостами 4-way NVLink або попарно мостами 2-way NVLink, залежно від цільового сценарію використання. Це забезпечує масштабовану внутрішньосистемну пропускну здатність для задач з надвисокими вимогами до швидкості обміну даними між GPU.

Прикладом MGX-платформи є ASUS ESC8000A-E13P. Двопроцесорний сервер на AMD EPYC 9005 підтримує до восьми двослотових графічних процесорів NVIDIA H200 NVL (або NVIDIA RTX PRO 6000 Blackwell Server Edition), до 24 модулів DIMM, п'яти слотів PCIe 5.0 та восьми 2,5-дюймових NVMe-накопичувачів.

Хибні уявлення
Стійка думка, нібито NVLink дозволяє об'єднувати відеопам'ять кількох графічних процесорів у єдиний пул, є хибною. Мости не змушують набір GPU працювати як одна система з сумарною пам’яттю. Це упередження бере початок ще з часів, коли функціональність об’єднання була не очевидною і здавалася частиною драйверів NVIDIA – досить було «увімкнути галочку» в налаштуваннях, а не програмувати взаємодію вручну.
NVLink не створює єдиного об’єму пам'яті, спільного для всіх GPU. Він забезпечує високошвидкісний обмін даними між відеокартами, зокрема – прямий доступ одного GPU до пам’яті іншого. Але керування розподілом даних у пам’яті залишається в зоні відповідальності фреймворків та API — таких як CUDA, PyTorch або TensorFlow. Саме вони вирішують, які частини моделі або даних розмістити на якому графічному процесорі, і координують передачу між ними.
Цей обмін, хоч і в рази швидший за PCIe, значно поступається швидкості локального доступу до пам’яті GPU. Тому навіть за наявності NVLink, ефективність масштабування багато в чому визначається характером задачі та властивостями алгоритму.
Допитливі дослідники нагадують: не кожна задача масштабується лінійно з додаванням графічних процесорів. І не кожен сценарій отримує вигоду від NVLink. Продуктивність може навіть знижуватись, якщо витрати на синхронізацію і передачу даних перевищують виграш від паралелізму. Приріст ефективності паралелізму залежить від алгоритму задачі й обмежений згори для будь-якого завдання.
To link or not to link?
NVLink може бути корисним, коли вся програма або модель не поміщається в пам’ять одного графічного процесора й виникає потреба передавати дані між кількома GPU. У таких випадках збільшена пропускна здатність NVLink полегшує взаємодію між пристроями та зменшує затримки порівняно з PCIe.
Однак додавання нових GPU не завжди виправдане. Існують накладні витрати — час, необхідний для синхронізації та передачі даних між графічними процесорами. Крім того, масштабованість обчислень обмежена не лише швидкістю зв’язку, а й структурою алгоритму.
При логічному висновку (inference) з використанням великих мовних моделей (LLM) передача даних між GPU мінімальна, тож NVLink майже не потрібен. Але під час навчання, особливо коли модель розподілена між кількома GPU, накладні витрати на передачу можуть суттєво зростати. У таких випадках NVLink покращує ефективність, але не вирішує всіх проблем.
Існують альтернативи модульного розподілу моделі:
- Паралелізм моделі: дозволяє розподілити модель між GPU, але вимагає високої швидкості з’єднання і викликає вищі витрати на синхронізацію.
- Паралелізм даних: кожен GPU обробляє окремі фрагменти даних з повною копією моделі. Це значно простіше масштабувати, і NVLink не обов’язковий, якщо модель поміщається в пам’ять кожного GPU.
Вибираємо виважено
NVIDIA рекомендує враховувати конкретні моделі робочого навантаження та вимоги до масштабованості, обираючи стратегію з’єднання графічних процесорів. Якщо ви навчаєте великі моделі на кластері серверів з GPU, NVLink може стати корисним. У більшості випадків, пов’язаних із розробкою та логічним висновком, обміну по PCIe цілком достатньо.
З іншого боку, клієнтів, які можуть дозволити собі сервери з вісьмома H200 NVL, навряд чи стримають додаткові витрати на пару мостів NVLink — навіть якщо реальна користь від них буде неочевидною.
З використанням матеріалів NVIDIA.
