NVLink 2.0
NVLink 2.0 — это второе поколение высокоскоростного двунаправленного интерфейса межсоединений, разработанного компанией Nvidia для соединения графических процессоров (GPU) между собой, а также с центральными процессорами (CPU) и другими устройствами в вычислительных системах. Представленный в 2017 году, NVLink 2.0 пришёл на смену оригинальному NVLink и обеспечил значительное увеличение пропускной способности и гибкости топологии, что было критически важно для работы с большими моделями данных и глубокими нейронными сетями в высокопроизводительных вычислениях (HPC) и машинном обучении.
История и контекст
Развитие NVLink было ответом Nvidia на рост потребностей в масштабировании вычислительных мощностей. Первое поколение NVLink (2014—2016) использовалось в системах на базе архитектуры Pascal (GPU Tesla P100) и обеспечивало пропускную способность до 160 ГБ/с на одно соединение. Однако с появлением архитектуры Volta (2017) и её флагманского ускорителя Tesla V100 потребовалось дальнейшее увеличение скорости обмена данными между GPU и CPU, а также между несколькими GPU в одной системе.
NVLink 2.0 был анонсирован в мае 2017 года вместе с архитектурой Volva. Он стал частью экосистемы Nvidia, предназначенной для суперкомпьютеров и серверов, и был реализован в GPU Tesla V100, а также в интегрированных решениях, таких как модули DGX-2. В отличие от предшественника, NVLink 2.0 поддерживал соединение не только между GPU, но и с CPU через протокол NVLink, что позволило создавать более эффективные гетерогенные вычислительные системы.
Технические характеристики
Пропускная способность и топология
NVLink 2.0 использует 6 пар высокоскоростных дифференциальных сигнальных линий (линков) на каждый GPU. Каждый линк обеспечивает двунаправленную пропускную способность до 50 ГБ/с (25 ГБ/с в каждом направлении). Таким образом, суммарная пропускная способность одного GPU при использовании всех 6 линков составляет до 300 ГБ/с — в два раза больше, чем у NVLink 1.0 (160 ГБ/с).
Топология соединений в NVLink 2.0 стала более гибкой. В системах с несколькими GPU (например, 4, 8 или 16) можно было организовывать различные конфигурации: двунаправленные кольца, полные сетки или гибридные схемы. Это позволяло минимизировать задержки при обмене данными между GPU, особенно в задачах, требующих частой синхронизации, таких как обучение нейронных сетей на нескольких ускорителях.
Физический интерфейс
NVLink 2.0 использует последовательную передачу данных с дифференциальной сигнализацией. Каждый линк состоит из 4 пар проводов (2 пары для передачи и 2 для приёма) с тактовой частотой до 25 ГГц. Для снижения энергопотребления и тепловыделения применяется технология адаптивного управления питанием. Максимальное энергопотребление одного линка составляет около 1,5 Вт, что делает NVLink 2.0 энергоэффективным решением для плотных вычислительных систем.
Поддержка памяти и когерентность
Одной из ключевых особенностей NVLink 2.0 стала поддержка когерентности кэша и памяти между GPU и CPU. Это означает, что процессоры и ускорители могут совместно использовать единое адресное пространство, что упрощает программирование и повышает производительность в задачах, где требуется частый доступ к одним и тем же данным. В системах с NVLink 2.0 реализована возможность прямого доступа к памяти другого устройства (GPU Direct RDMA), что снижает нагрузку на центральный процессор и уменьшает задержки.
Применение
NVLink 2.0 нашёл применение в нескольких ключевых областях, связанных с высокопроизводительными вычислениями.
Суперкомпьютеры и HPC
Наиболее известным примером использования NVLink 2.0 является суперкомпьютер Summit, построенный в Ок-Риджской национальной лаборатории (США). Summit, запущенный в 2018 году, состоял из 4608 узлов, каждый из которых содержал два процессора IBM POWER9 и шесть GPU Nvidia Tesla V100, соединённых через NVLink 2.0. Такая конфигурация позволила достичь пиковой производительности около 200 петафлопс. В России аналогичные системы на базе NVLink 2.0 использовались в суперкомпьютерах «Кристофари» (МГУ) и «Ломоносов-2» (МГУ), где GPU Tesla V100 соединялись через NVLink для ускорения научных расчётов.
Глубокое обучение и машинное обучение
NVLink 2.0 стал стандартом для обучения крупных нейронных сетей, таких как трансформеры (например, GPT-3) и свёрточные сети. В системах DGX-2 (Nvidia DGX-2 — серверная платформа, предназначенная для задач ИИ) 16 GPU V100 соединялись через NVLink 2.0 в топологию «гиперкуб», что обеспечивало практически линейное масштабирование производительности при обучении моделей. Это позволило сократить время обучения с недель до дней.
Графические вычисления и визуализация
В профессиональных графических станциях (например, на базе Quadro GV100) NVLink 2.0 использовался для объединения нескольких GPU в единый логический ускоритель, что увеличивало объём доступной видеопамяти (до 64 ГБ на два GPU) и ускоряло рендеринг сложных сцен в CAD-системах и научной визуализации.
Сравнение с предшественником и преемниками
NVLink 1.0 (Pascal)
NVLink 1.0 поддерживал до 4 линков на GPU, каждый с пропускной способностью 40 ГБ/с, что давало суммарно 160 ГБ/с. Он не поддерживал когерентность с CPU и использовался в основном для соединения GPU между собой. NVLink 2.0 удвоил пропускную способность и добавил поддержку CPU.
NVLink 3.0 (Ampere)
Третье поколение NVLink (2020) было представлено с архитектурой Ampere (GPU A100). Оно увеличило количество линков до 12 на GPU, а пропускную способность одного линка — до 50 ГБ/с, что дало суммарно 600 ГБ/с. NVLink 3.0 также поддерживал более сложные топологии, включая соединение до 8 GPU в одном узле.
NVLink 4.0 (Hopper)
В 2022 году с архитектурой Hopper (GPU H100) был представлен NVLink 4.0. Он использует 18 линков на GPU, обеспечивая пропускную способность до 900 ГБ/с, и поддерживает соединение до 256 GPU через NVLink Switch.
Критика и ограничения
Несмотря на высокую производительность, NVLink 2.0 имел ряд ограничений. Во-первых, он был совместим только с собственными процессорами Nvidia и некоторыми моделями CPU IBM (POWER9), что ограничивало выбор архитектур для построения систем. Во-вторых, высокая стоимость GPU Tesla V100 и модулей DGX-2 делала NVLink 2.0 доступным в основном для крупных исследовательских центров и корпораций. В-третьих, для использования всех возможностей NVLink 2.0 требовалась специальная оптимизация программного обеспечения (например, через библиотеки CUDA и NCCL), что создавало дополнительную сложность для разработчиков.
Интересные факты
- NVLink 2.0 стал первым интерфейсом, который позволил объединять GPU и CPU в единое когерентное адресное пространство, что было реализовано в суперкомпьютере Summit.
- В системах DGX-2 использовалась уникальная топология «гиперкуб», где каждый GPU был соединён с шестью другими, что обеспечивало минимальные задержки при обмене данными.
- NVLink 2.0 поддерживал работу с виртуализацией, что позволяло использовать один GPU в нескольких виртуальных машинах без потери производительности.
Источники
- Nvidia. "NVLink 2.0 Whitepaper". 2017.
- Nvidia. "Tesla V100 GPU Architecture". 2017.
- TOP500. "Summit: IBM POWER9 + Nvidia Volta V100". 2018.
- Nvidia. "DGX-2: The World's Most Powerful AI System". 2018.
- IBM. "POWER9 Processor and NVLink 2.0". 2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →