На прошедшей недавно конференции GTC (GPU Technology Conference) корпорация NVIDIA представила новый внутренний интерконнект NVSwitch, целью которой является эффективное объединение в сеть множества вычислительных процессоров Volta. Именно NVSwitch является сердцем демонстрационной системы DGX-2, аналоги которой планируется использовать в дальнейшем для постройки суперкомпьютера нового поколения Saturn V. С момента официального анонса новой технологии о ней стали известны новые детали, включая данные о внутренней архитектуре самого коммутатора NVSwitch. Как известно, вычислительные ускорители имеют три фундаментальных ограничения, влияющих на эффективность их работы в составе кластерной системы: производительность подсистемы ввода-вывода, пропускная способность памяти и объём этой самой памяти.

Кристалл NVSwitch
Последние два, впрочем, обходятся достаточно малой кровью: ускорители Volta могут нести на борту до 32 Гбайт памяти типа HBM2, которая, к тому же, может прокачивать до 900 Гбайт/с. Но по мере масштабирования системы проблема I/O встаёт всё острее, поскольку скорости, приведённые выше, сетям и сетевым средам пока недоступны, а значит, на задачах с большой степенью параллелизации главным фактором, ограничивающим производительность, может стать именно сеть. Это подтверждают и результаты тестирования суперкомпьютеров с помощью новой методики, о чём мы недавно рассказывали нашим читателям.

Его функциональные блоки
Решить эту проблему и призвана технология NVIDIA NVSwitch. Само сердце технологии, чип-коммутатор может работать в разных топологиях. Как уже было сказано, впервые он найдёт применение в системе DGX-2, поставки которой должны начаться в третьем квартале. NVIDIA пока не предполагает использование этого коммутатора для сетевого соединения нескольких «корпусов», то есть, в качестве, «внешнего интерконнекта», но это не значит, что разработчики суперкомпьютеров не решат попробовать новинку и в качестве такого решения.
Выглядит снимок кристалла NVSwitch довольно впечатляюще, что неудивительно, поскольку состоит этот кристалл из 2 миллиардов транзисторов. Предположительно, в его производстве задействован 12-нм техпроцесс класса FinFET, разработанный TSMC, но компания-разработчик хранит по этому поводу молчание, по крайней мере, пока. Архитектурно в составе NVSwitch можно выделить два блока по 8 портов NVLink плюс два дополнительных порта этой шины. Система соединений (кроссбар) работает в неблокирующем режиме, так что любой из портов NVLink в правом или левом модуле может напрямую работать с одним из двух портов в верхнем модуле. Это существенно отличает реальный чип от опубликованных в момент анонса данных о технологии NVSwitch.

Один из слайдов NVIDIA
На предыдущих слайдах изображено 16 чипов в 8 парах, соединённых друг с другом на скорости 300 Гбайт/с (150 Гбайт/с в каждую сторону) с тотальной пропускной способностью, достигающей 2,4 Тбайт/с. Но NVSwitch имеет 18 портов, поэтому при подключении 16 процессоров Volta остаётся место для дальнейшего расширения конфигурации. Если блок-схема DGX-2, продемонстрированная на презентации, верна, то в ней имеется 12 коммутаторов NVSwitch, но тогда не все порты остаются задействованными.
Это позволяет предположить, что 16-процессорая версия DGX-2 является пилотной, а дизайн NVSwitch создан с заделом на будущее и позволяет создавать, к примеру, 32-процессорные системы в одном корпусе-узле. Пока этому мешает текущая версия модуля backplane, которой оснащается DGX-2, но архитектурного запрета на создание системы с теми же 32 вычислительными GPU нет. Точных данных о топологии DGX-2 пока нет, на имеющемся слайде видны по шесть «толстых» шин на каждую «половину» кластера. С учётом свободных портов, скорость «общения половин» между собой может достигать 6 Гбайт/с (3 Гбайт/с в каждую сторону).

Из этого слайда топология DGX-2 не ясна
Были различные предположения о топологии, включая схему «двойное кольцо», но в худшем сценарии такая схема соединяет два ГП через шесть «скачков» (hops), а это не лучший вариант с точки зрения латентности. NVIDIA употребляет термин «fully connected crossbar internally» по отношению к NVSwitch, но не говорит этого про систему в целом и про соединение между двумя половинами DGX-2. Если предположить, что для соединения используется пара «верхних» портов коммутатора, то ГП могут быть соединены попарно, но тогда для полноценного соединения всей системы в единое целое потребуются иные механизмы, например, дополнительные соединения PCI Express, что выглядит не слишком осмысленным, если сравнить скорости PCIe и декларируемые NVIDIA цифры, относящиеся к NVLink.
Как оказалось впоследствии и было подтверждено официально, 12 «лишних» портов NVLink в NVSwitch не задействованы в DGX-2. Топология внутренней сети в новой системе проще, и каждый из шести портов в Volta соединён с одним из NVSwitch «сверху». Аналогичным образом подключается восьмёрка ГП «снизу». Такая схема позволяет добиться латентности в два «хопа» между двумя любыми ГП на одной «половине» системы, а если требуется коммуникация между разными половинами, то количество «хопов» увеличивается до трёх.

А так она выглядит на самом деле
Разумеется, это не единственный сценарий: в данном варианте использовано всего 6 чипов NVLink для каждой половины, но ничто не мешает увеличить их число до, скажем, двенадцати. Новая система весьма эффективна: для демонстрации NVIDIA использовала пару серверов DGX-1 с 8 ГП Volta V100 в каждом. Они были соединены между собой четырьмя каналами InfiniBand с совокупной пропускной способностью 400 Гбит/с. Сравнительные тесты показали более чем двукратное (от 2,4 до 2,7x) превосходство системы DGX-2, использующей новые технологии с NVSwitch во главе.

DGX-2 ставит новые рекорды
Выглядит новая технология очень многообещающе, но интересно будет взглянуть, как она поведёт себя при увеличении количества вычислительных узлов, ведь модули DGX-2 придётся как-то соединять между собой, и не поглотит ли это все преимущества в случае постройки достаточно крупного кластера? Есть вариант NUMA, но практический предел, достигнутый на сегодня, составляет 128 процессоров; более того, после 32 процессоров в такой схеме критическую роль начинают играть очереди запросов и задержки. Как только DGX-2 начнёт поставляться массово, мы, скорее всего, узнаем ответ.
Источник: