Summary

  • В докладе Adel Iazzag на NANOG 98 обмен AllToAll происходит дважды на каждом экспертном слое MoE. Несколько источников одновременно приходят к одному порту, а следующая группа экспертов может переместить точку перегрузки.
  • Iazzag предлагает проверять реальный коллективный обмен, давать планировщику карту сети и испытывать контроль перегрузки на сценарии «многие к одному».

Купить ещё один быстрый коммутатор легко. Труднее угадать, к какому порту модель направит толпу на следующем слое. В докладе на NANOG 98 Adel Iazzag описал Mixture-of-Experts: токены отправляются к выбранным экспертам на других GPU и возвращаются обратно. Когда многие отправители сходятся на одном назначении, получается incast. Выбор экспертов меняется, вместе с ним меняется горячий порт.

Его исходные 32 слайда разделяют четыре вида обмена. При параллелизме данных AllReduce одновременно загружает восходящие каналы, затем наступает пауза. При конвейерном параллелизме соседние этапы обмениваются активациями и градиентами: низкая загрузка линий может сопровождаться долгим ожиданием передачи. Тензорный параллелизм часто обращается к одной и той же небольшой группе; Iazzag помещает её внутри области scale-up. MoE, напротив, дважды за экспертный слой делает AllToAll с неравномерными адресатами.

На примере 256 GPU слайды считают 510 шагов обмена для кольцевого AllReduce и 16 для древовидного. Это число алгоритмических шагов на схеме, а не измеренные секунды или обещанный прирост скорости. Коллективный алгоритм, размер сообщений и расположение GPU меняют картину на портах. Средняя загрузка ткани эту разницу скрывает.

План Iazzag начинается с согласованных rails: сетевые интерфейсы с одинаковым индексом подключаются к соответствующему leaf-коммутатору. Далее идут пропускная способность без избыточной продажи при одновременной передаче всех GPU, контроль перегрузки, проверенный на сходящихся потоках, и распыление пакетов либо групп пакетов там, где одного ECMP мало. Но центральный выбор делает планировщик. Он размещает соседние этапы конвейера, держит тензорную группу в области scale-up и определяет путь к экспертам. Сеть получает последствия этого решения.

В слайдах нет названного производственного сбоя и подсчёта потерянных GPU-часов. Проверка, которая даст эти числа, ясна: запустить настоящий AllToAll на своей ткани, записать горячие порты по фазам и сопоставить их с размещением задачи. Иначе бюджет увеличит общую ёмкость, а работа продолжит ждать у следующего случайного узкого места.

Источники: сессия NANOG 98 · исходные слайды Iazzag.