30 lines
4.7 KiB
Markdown
30 lines
4.7 KiB
Markdown
# P31-B. GC3: оптимизация под топологию
|
||
|
||
- **Версия и дата проверки:** 1.0, 05.09.2026.
|
||
- **Статус:** готово к назначению.
|
||
|
||
## Статья и исходные материалы
|
||
|
||
- **Основная статья:** Meghan Cowan и соавт. — [GC3: An Optimizing Compiler for GPU Collective Communication](https://arxiv.org/pdf/2201.11840). ASPLOS 2023.
|
||
- **Кратко о статье:** Быстрые коллективные операции для GPU-кластеров обычно реализуются вручную под конкретную топологию и доступные параллельные каналы. GC3 отделяет описание алгоритма обмена от низкоуровневого выполнения и компилирует специализированные расписания с конвейеризацией. В этом проекте исследуется, как учёт топологии сокращает критический путь коллектива без изменения результата.
|
||
- **Почему результат актуален:** исходный набор MSCCL tools обновляется редко, но линия программируемых коллективов продолжается в активно развиваемом [MSCCL++](https://github.com/microsoft/mscclpp) под MIT. Проект сосредоточен на переносимом языке расписаний, проверке корректности и компиляции; устаревшая версия runtime не входит в его основной предмет.
|
||
- **Артефакты и данные:** [microsoft/msccl-tools](https://github.com/microsoft/msccl-tools) под MIT, с Python DSL MSCCLang, компилятором, примерами и тестами. Зафиксированная основная ревизия: `microsoft/msccl-tools@030a750fc56e` (MIT).
|
||
|
||
## Обязательный результат
|
||
|
||
- **Проверяемый вопрос или утверждение:** Специализированное расписание, учитывающее топологию и параллельные каналы, может сократить критический путь коллектива без изменения его семантики.
|
||
- **Технический результат:** Построить CPU-симулятор топологии и расписаний MSCCLang, реализовать хотя бы одно преобразование порядка, разбиения или назначения каналов. Корректность каждого результата проверяется независимой моделью движения блоков.
|
||
- **Эксперимент:** Сравнить исходный ring либо AllToAll и оптимизированное расписание на двух топологиях и нескольких размерах сообщения. Измерить критический путь, переданные байты, загрузку узких каналов и число шагов; проверить корректность и устойчивость к изменению параметров.
|
||
- **Границы выводов:** выигрыш оценивается по модели критического пути на двух заданных топологиях; он не учитывает все эффекты реальной сети, GPU-ядер и конкуренции каналов при исполнении коллектива.
|
||
- **Ресурсный профиль:** локально, CPU и 4–8 ГБ памяти для компиляции и имитации; исполнение через MSCCL на нескольких GPU необязательно и не входит в минимальный результат.
|
||
|
||
## Содержательные направления
|
||
|
||
- модель топологии и исходное расписание.
|
||
- компиляторное преобразование и генерация расписаний.
|
||
- проверка корректности, модель стоимости и экспериментальные серии.
|
||
|
||
## Возможное продолжение
|
||
|
||
Добавить иерархическую топологию, автоматический поиск числа каналов, отказ одного канала, слияние передач или сравнение с ещё одним опубликованным коллективом.
|