NVLink
NVLink — это высокоскоростной протокол двунаправленной последовательной передачи данных и соответствующий коннектор, разработанный компанией Nvidia для соединения графических процессоров (GPU) между собой, а также GPU с центральными процессорами (CPU) и другими устройствами. В отличие от традиционных шин, таких как PCI Express, NVLink обеспечивает значительно более высокую пропускную способность и меньшую задержку, что критически важно для задач параллельных вычислений, глубокого обучения и высокопроизводительных вычислений (HPC). Протокол был впервые представлен в 2014 году и с тех пор является ключевым элементом архитектуры Nvidia для многопроцессорных систем.
История
Разработка NVLink началась в ответ на растущие потребности в масштабировании вычислительных мощностей GPU в дата-центрах и суперкомпьютерах. Традиционная шина PCI Express, даже при переходе на новые поколения, не могла обеспечить достаточную пропускную способность для эффективного обмена данными между несколькими GPU в реальном времени. В 2014 году Nvidia анонсировала NVLink как часть архитектуры NVLink 1.0, предназначенной для использования в суперкомпьютерах и высокопроизводительных вычислительных кластерах.
Первое коммерческое применение NVLink нашло в 2016 году с выходом графических процессоров Nvidia Tesla P100 (архитектура Pascal). Эти GPU использовали NVLink 1.0 для соединения между собой, обеспечивая пропускную способность до 160 ГБ/с на каждое соединение. В 2017 году Nvidia представила NVLink 2.0, который использовался в GPU Tesla V100 (архитектура Volta) и обеспечивал скорость до 300 ГБ/с. В 2020 году с выходом архитектуры Ampere (GPU Tesla A100) был представлен NVLink 3.0, который увеличил пропускную способность до 600 ГБ/с на соединение. В 2022 году с архитектурой Hopper (GPU H100) появился NVLink 4.0, поддерживающий скорость до 900 ГБ/с. В 2024 году с архитектурой Blackwell (GPU B100/B200) был представлен NVLink 5.0, который, по заявлениям Nvidia, обеспечивает пропускную способность до 1,8 ТБ/с на соединение.
Архитектура и принцип работы
NVLink представляет собой физический интерфейс, состоящий из нескольких параллельных линий (lanes), каждая из которых передаёт данные в обоих направлениях одновременно (full-duplex). В отличие от PCI Express, где данные передаются пакетами с накладными расходами на протокол, NVLink использует более эффективный протокол с меньшими задержками и прямым доступом к памяти GPU (GPUDirect).
Физический уровень
Каждое соединение NVLink состоит из нескольких подканалов (sub-links), которые работают в паре: один для передачи, другой для приёма. В NVLink 1.0 использовалось 4 линии, в NVLink 2.0 — 8 линий, в NVLink 3.0 — 12 линий, в NVLink 4.0 — 18 линий, а в NVLink 5.0 — 24 линии. Каждая линия передаёт данные со скоростью, зависящей от поколения: от 20 Гбит/с (NVLink 1.0) до 112 Гбит/с (NVLink 5.0).
Топология соединений
NVLink поддерживает различные топологии соединений, включая:
- Прямое соединение (point-to-point): два GPU соединяются напрямую.
- Кольцо (ring): GPU соединяются последовательно, образуя кольцо.
- Сетка (mesh): GPU соединяются в двумерную или трёхмерную сетку.
- Дерево (tree): GPU соединяются через центральный коммутатор или хаб.
- NVSwitch: специальный коммутатор, который позволяет соединять до 8 или 16 GPU в единую сеть с полной связностью (all-to-all).
NVSwitch
NVSwitch — это аппаратный коммутатор, разработанный Nvidia для масштабирования NVLink-сетей. Он позволяет соединять до 8 GPU (в архитектуре Volta) или до 16 GPU (в архитектуре Ampere и Hopper) в единую сеть с полной связностью, где каждый GPU может обмениваться данными с любым другим GPU с максимальной пропускной способностью. NVSwitch используется в системах Nvidia DGX и в суперкомпьютерах, таких как Summit (США) и Selene (Nvidia).
Классификация и поколения
NVLink делится на поколения, каждое из которых отличается пропускной способностью, количеством линий и поддерживаемыми архитектурами GPU.
| Поколение | Год | Архитектура GPU | Пропускная способность на соединение | Количество линий | Скорость линии |
|---|---|---|---|---|---|
| NVLink 1.0 | 2016 | Pascal (P100) | 160 ГБ/с | 4 | 20 Гбит/с |
| NVLink 2.0 | 2017 | Volta (V100) | 300 ГБ/с | 8 | 25 Гбит/с |
| NVLink 3.0 | 2020 | Ampere (A100) | 600 ГБ/с | 12 | 50 Гбит/с |
| NVLink 4.0 | 2022 | Hopper (H100) | 900 ГБ/с | 18 | 56 Гбит/с |
| NVLink 5.0 | 2024 | Blackwell (B100/B200) | 1,8 ТБ/с | 24 | 112 Гбит/с |
Применение
NVLink используется в основном в трёх областях:
Высокопроизводительные вычисления (HPC)
В суперкомпьютерах, таких как Summit (Ок-Риджская национальная лаборатория, США), Sierra (Ливерморская национальная лаборатория, США) и Selene (Nvidia), NVLink позволяет объединять тысячи GPU в единую вычислительную сеть. Это обеспечивает высокую скорость обмена данными между GPU, что критически важно для задач моделирования климата, молекулярной динамики, аэродинамики и других научных расчётов.
Глубокое обучение и искусственный интеллект
При обучении больших нейронных сетей, таких как GPT-3, BERT или DALL-E, требуется обмен большими объёмами данных между GPU. NVLink позволяет эффективно распределять обучение на несколько GPU, значительно сокращая время обучения. Например, в системах Nvidia DGX A100 и DGX H100 используется NVLink для соединения 8 GPU в единую сеть.
Графика и рендеринг
В профессиональных графических станциях, таких как Nvidia Quadro и Nvidia RTX, NVLink используется для объединения нескольких GPU для увеличения производительности рендеринга и визуализации. Это позволяет обрабатывать более сложные сцены и с более высоким разрешением.
Преимущества и недостатки
Преимущества
- Высокая пропускная способность: значительно превосходит PCI Express (например, NVLink 4.0 в 2-3 раза быстрее, чем PCIe 4.0 x16).
- Низкая задержка: протокол оптимизирован для минимальных задержек при передаче данных.
- Прямой доступ к памяти (GPUDirect): позволяет GPU напрямую обращаться к памяти другого GPU без участия CPU.
- Масштабируемость: поддержка топологий с полной связностью через NVSwitch.
Недостатки
- Закрытая технология: NVLink является проприетарной технологией Nvidia и не поддерживается другими производителями GPU (AMD, Intel).
- Ограниченная совместимость: NVLink работает только с GPU Nvidia определённых архитектур (Pascal и новее).
- Высокая стоимость: системы с NVLink, такие как Nvidia DGX, стоят значительно дороже, чем аналогичные системы на базе PCI Express.
- Физические ограничения: длина кабелей NVLink ограничена (обычно до нескольких метров), что затрудняет создание крупных кластеров.
Критика
NVLink критикуется за закрытость и привязку к экосистеме Nvidia. Конкуренты, такие как AMD и Intel, разрабатывают собственные решения для межпроцессорного соединения (например, AMD Infinity Fabric и Intel Xe Link), но они несовместимы с NVLink. Кроме того, некоторые эксперты отмечают, что для многих задач, особенно в области глубокого обучения, пропускной способности PCI Express 5.0 и 6.0 может быть достаточно, и NVLink является избыточным решением.
Перспективы
Nvidia продолжает развивать NVLink, увеличивая пропускную способность и снижая задержки. В будущем ожидается появление NVLink 6.0, который, вероятно, будет поддерживать скорость более 2 ТБ/с на соединение. Также возможно расширение поддержки NVLink на другие устройства, такие как сетевые адаптеры и хранилища данных.
Источники
- Nvidia. NVLink Whitepaper (2016, 2017, 2020, 2022, 2024).
- Nvidia. NVSwitch Architecture (2018, 2020).
- TOP500.org. Суперкомпьютер Summit (2018).
- Nvidia. DGX A100 and DGX H100 System Architecture (2020, 2022).
- AnandTech. Nvidia NVLink 4.0 and 5.0 Technical Overview (2022, 2024).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →