Главная идея - не tensor parallelism, а разделение модели по слоям. Один GPU считает первые слои, второй - следующие, третий при необходимости - оставшиеся. При этом каждая карта держит expert cache только для своих слоёв, поэтому суммарно в VRAM помещается намного больше экспертов и модель реже обращается к CPU/RAM.
Что важно:
• NVLink не нужен;
• PCIe x4/x1 тоже допустим;
• поддерживаются RTX 30/40/50;
• каждая карта должна иметь минимум 8 ГБ VRAM;
• первая карта в списке считается основной;
• лучший режим —
--layer-split auto, Strata сама подбирает оптимальное распределение слоёв;• vision, KV streaming, checkpoints и control vectors работают и в multi-GPU.
Запуск простой:
START-HERE.bat --gpus 0,1 --layer-split auto
или вообще без параметров - установщик сам покажет подходящие GPU и предложит объединить их.
По тестам авторов на RTX 5080 + RTX 3090:
• обработка prompt ускорилась примерно на 18–20%;
• decode остался примерно на уровне более быстрой карты;
• генерация кода стала быстрее, потому что почти все нужные routed experts помещались в GPU-кэш.
То есть multi-GPU здесь - это не «в 2 раза быстрее». Основной выигрыш в том, что больше expert weights остаётся в VRAM, меньше данных приходится брать из CPU pool, а длинные prompt’ы обрабатываются быстрее.
Ещё важный момент: добавлять много слабых карт не всегда полезно. В тестах дополнительная медленная GPU, наоборот, ухудшила decode - каждый новый pipeline stage добавляет свои накладные расходы.
Итог: multi-GPU в Strata имеет смысл прежде всего тогда, когда routed experts одной большой MoE-модели не помещаются в VRAM одной карты. Тогда вторая карта может заметно снизить зависимость от RAM/CPU и ускорить работу без необходимости иметь одинаковые GPU.
Линк: https://github.com/Niko1221/Strata/blob/main/docs/MULTI_GPU.md
MrGips • Про LLM / НАШ ЧАТ