Как запустить локальную LLM на нескольких видеокартах

Раздел: Несколько GPU.

Несколько видеокарт можно использовать двумя принципиально разными способами: распределить одну модель между ними или запустить отдельные модели на разных картах. Первый вариант помогает разместить большой комплект весов; второй удобен, например, для одновременной работы чата и распознавания документов. Настройки этих сценариев различаются.

Одна модель на нескольких GPU

Движок должен явно поддерживать распределение выбранной архитектуры. В llama.cpp параметры распределения весов и режим разделения зависят от backend. В vLLM применяются степени параллелизма, в том числе tensor parallel и pipeline parallel, если они подходят модели. Одинаковое число GPU не делает эти механизмы эквивалентными.

Tensor split в llama.cpp задаёт относительное распределение между видимыми движку картами. Например, соотношения 1:1 и 30:70 описывают желаемое соотношение, но служебная память, кеш и особенности слоёв всё равно могут дать неравномерное фактическое потребление. Это не инструкция резервировать строго такой процент всей VRAM.

Несколько моделей на разных картах

В AI Server Manager откройте настройки первой модели, включите ручное размещение и выберите нужные GPU. Сохраните параметры и дождитесь готовности. Для следующей модели выберите другой свободный набор карт и другой порт. Не меняйте идентификаторы окружения вручную, если панель уже формирует изоляцию устройств.

Например, на сервере с четырьмя GPU можно планировать одну модель на картах 0 и 1, вторую — на карте 2, третью — на карте 3. Это схема размещения, а не гарантия, что любые три модели поместятся и смогут работать одновременно.

Автоматический и ручной режимы

Автоматический режим удобен для первого запуска и выбора незарезервированных панелью карт. Но учёт её собственных карточек не означает, что все процессы хоста известны планировщику. Майнер, другой контейнер или вручную запущенный Python-процесс тоже могут использовать GPU. Перед нагрузочным тестом проверьте мониторинг и процессы хоста.

Ручной режим нужен, когда важно воспроизводимое размещение. После выбора убедитесь, что настройки сохранились именно в ручном режиме, и повторно откройте окно запуска. Если интерфейс и журнал расходятся, не продолжайте запуск новых моделей до выяснения причины.

Как проверить реальное размещение

  1. Запишите номера карт в панели и соответствующие PCI-адреса.
  2. В консоли запуска найдите выбранные устройства и runtime mapping.
  3. Учтите, что внутри изолированного процесса физическая последняя карта сервера может называться устройством 0. Это нормально, если PCI-адрес совпадает.
  4. Сопоставьте рост памяти с мониторингом конкретных физических карт.
  5. Отправьте запрос в каждую модель и проверьте, что ответ даёт ожидаемый endpoint.

Почему больше карт не всегда быстрее

При разделении одной модели появляются пересылки данных и синхронизации. Скорость соединения, топология PCIe, размер запроса и выбранный параллелизм влияют на результат. Общая VRAM помогает вместимости, но не обещает пропорциональное ускорение. P2P и другие низкоуровневые возможности следует проверять отдельно; их нельзя считать включёнными только по наличию нескольких GPU.

Дальнейшие настройки — в руководстве по GPU. Различия способов масштабирования описаны в документации vLLM. Для сравнения сначала получите стабильный результат на одном устройстве, а затем меняйте только размещение.

О материале

Материал подготовлен с помощью ИИ с проверкой по пользовательскому руководству панели и указанным справочным источникам. Параметры и доступные функции зависят от версии установленной сборки; приведённые примеры не являются результатами отдельного бенчмарка.

Все статьи · Руководство пользователя