NVLink: зачем соединяют GPU в одном сервере
Одна карта хорошо, а две лучше, но только если они умеют разговаривать. Когда большая модель разрезана на части по нескольким ускорителям, карты постоянно гоняют друг к другу промежуточные результаты, и от скорости этого обмена зависит скорость ответов. Обычная шина компьютера на такой роли захлёбывается, и для этого существует NVLink.
Как это работает
NVLink соединяет карты напрямую, минуя медленную шину материнской платы, и даёт обмен в разы быстрее. Для сервера это разница между кластером, который ведёт себя как одна большая карта, и набором карт, которые ждут друг друга. Как устроена шина и где она встречается, объясняет NVLink в словаре: коротко, это фирменная технология NVIDIA для своих же датацентровых карт.
Зачем это на практике: модель на 70 миллиардов параметров не влезает в одну карту даже в сжатом виде, и даже самая большая карта сегодня не держит её целиком. Части модели раскладывают по четырём или восьми картам, и во время генерации каждого ответа эти части обмениваются данными десятки раз. Без быстрой шины карты простаивают, и восьмикарточный сервер отвечает медленнее, чем должен. С быстрой шиной связка работает почти как одна огромная карта: пример платформы, где это реализовано по-максимуму, собран в платформе H100.
Такие серверы собирают под обучение и тяжёлые сервисы с одной большой моделью.
Когда NVLink не нужен
Много задач вообще не требуют обмена между картами. Поток независимых запросов, где каждая карта держит свою копию модели: инференс масштабируется простым добавлением карт без всяких мостов. Генерация изображений, распознавание документов, отдельные модели для разных отделов: карты не делят одну модель, значит и связывать их нечем и незачем.
Для таких сборок честнее взять карты без шины и не платить за мостовую платформу: пример серверной карты, рассчитанной на самостоятельную работу, это L40S без быстрой шины. А десктопный бюджетный вариант связки, где шина всё же нужна под одну большую модель, описан в карточке RTX 3090: две карты с мостом дают объём, которого не даёт ни одна из них по отдельности.
Как решить для своей задачи
Вопрос звучит так: одна большая модель на несколько карт или много моделей по картам. В первом случае нужна связка, во втором достаточно плат и слотов. Сколько памяти занимает модель и влезает ли она в одну карту, показывает расчёт видеопамяти, а полную картину по железу и цене владения собирает разбор сборки GPU-сервера по компонентам.