ASTRA-sim

Бесплатно
Открытый исходный код

Сайт: astra-sim.github.io

ASTRA-sim — распределённый симулятор для моделирования полного стека программного и аппаратного обеспечения при масштабном обучении глубинных нейронных сетей. Проект представляет собой исследовательский инструмент, предназначенный для оценки производительности и поведения распределённых систем машинного обучения на разных уровнях: сеть, вычислительные узлы, подсистемы памяти и механизмы планирования нагрузок. ASTRA-sim ориентирован на воспроизведение реальных сценариев обучения больших моделей с акцентом на взаимодействие компонентов инфраструктуры и влияние архитектурных решений на общую пропускную способность и задержки.

Источниковая информация о конкретной реализации ASTRA-sim может быть ограничена в открытых публикациях; при отсутствии детальной документации в тексте кратко указано, что описание основано на общепринятых подходах к симуляции распределённых систем глубокого обучения. Симулятор обычно включает моделирование сетевых топологий, характеристик каналов передачи данных, вычислительных ресурсов (CPU/GPU/TPU), организации памяти (кэши, память узлов, межузловые буферы) и алгоритмов оркестрации и планирования задач, позволяя исследователям и инженерам проводить эксперименты по оптимизации конфигураций и политик распределения работы.

  • Моделирование сетевой инфраструктуры: поддержка разных топологий, пропускной способности, задержек и ошибок канала для оценки влияния коммуникаций на распределённое обучение.
  • Эмуляция вычислительных узлов: параметризация характеристик процессоров и ускорителей, конвейеризация операций, моделирование параллелизма данных и модели.
  • Подсистемы памяти и кэширования: моделирование иерархий памяти, ограничений пропускной способности и задержек для анализа узких мест при обработке больших батчей и градиентов.
  • Планирование и оркестрация задач: симуляция политик распределения заданий, балансировки нагрузки, миграции задач и восстановления после сбоев.
  • Аналитика производительности: сбор метрик по времени выполнения, использованию ресурсов, передаче данных и эффективности обучения для сравнения конфигураций.
  • Поддержка сценариев масштабирования: исследование поведения при горизонтальном и вертикальном масштабировании, стресс-тестирование и оценка ограничений инфраструктуры.
  • Конфигурируемые модели и рабочие нагрузки: возможность задавать параметры моделей, размеры батчей, частоты синхронизации и стратегии обмена градиентами.
  • Интеграция с инструментами экспериментирования: экспорт результатов для последующего анализа и визуализации, а также воспроизводимые конфигурации экспериментов.
  • Моделирование отказов и устойчивости: сценарии частичных отказов узлов, деградации сети и политики восстановления для оценки надёжности распределённого обучения.
  • Расширяемость и настраиваемость: модульная архитектура, позволяющая добавлять новые модели оборудования, алгоритмы коммуникации и политики планирования.
Подробнее