Зачем кому-то 7 видеокарт на AM5? (Вопрос, который я слышал десятки раз)
Потому что 8 - слишком много, а 6 - слишком мало. Шучу. Реальная причина в том, что AM5 - это самая доступная платформа с PCIe 5.0, а 7 GPU - это тот магический порог, где вы получаете достаточно VRAM для работы с моделями размером 70B+ в FP16, но не переплачиваете за серверное железо. В моей предыдущей статье про бюджетную 4-GPU ферму я использовал старый X299. Здесь все иначе.
Проблема AM5 в том, что у Ryzen 7000/8000 всего 24 линии PCIe от процессора. Четыре карты в x8/x8/x4/x4 - пожалуйста. Пять? Уже проблемы. Семь? Звучит как фантастика. Но именно здесь в игру вступают PCIe-коммутаторы - устройства, которые я ненавижу и одновременно обожаю.
Важно: Эта сборка не для слабонервных. Вы будете бороться с драйверами, перегревами и нестабильностью. Но если получится - у вас будет система за $8-10K, которая по VRAM сопоставима с серверами за $50K.
Железо: что купить и почему именно это
Давайте сразу к сути. Вот компоненты, которые пережили три недели тестов и не сгорели:
| Компонент | Модель | Зачем |
|---|---|---|
| Материнская плата | ASUS ProArt X670E-CREATOR WIFI | 2× PCIe 5.0 x16 слотов + хороший VRM для стабильности |
| Процессор | AMD Ryzen 9 7950X | 24 линии PCIe 5.0 + 16 ядер для препроцессинга |
| PCIe-коммутатор | PLX PEX 8747 (или аналог) | Делит x16 на 4× x4 или 2× x8 |
| Видеокарты | 7× NVIDIA RTX 3090 (или 4090) | 24 ГБ VRAM каждая, итого 168 ГБ |
| Блок питания | 2× Seasonic PRIME TX-1600 | Да, два. Один не потянет 3500W пиковой нагрузки |
| Ризеры | PCIe x16 to x16, 25 см | С экранированием. Дешевые убьют стабильность |
Почему ASUS ProArt? Потому что у нее расстояние между слотами PCIe - 3 слота. Это критически важно для обдува. Если возьмете плату где слоты вплотную - 7 карт превратятся в 7 кирпичей через 10 минут нагрузки.
Сборка: где физика борется с логикой
Представьте, что вам нужно разместить 7 трехслотовых монстров в корпусе. Стандартный Full-Tower рассчитан на 7 слотов расширения, но это если карты двухслотовые. Наши - трехслотовые. Значит, нужен корпус для майнинга с открытой конструкцией или серверная стойка.
1 Монтаж коммутатора и ризеров
Первый слот PCIe 5.0 x16 на материнской плате - под коммутатор. Второй слот PCIe 5.0 x16 - под еще один коммутатор или прямые карты. В моем случае: слот1 → коммутатор → 4 карты. Слот2 → 3 карты напрямую.
# Проверяем, что система видит все PCIe устройства
lspci -tv | grep -i nvidia
Если видите меньше 7 карт - проблема в ризерах или питании. Дешевые ризеры с тонкими проводами не держат PCIe 5.0. Берите только с экранированием и толщиной проводов не менее 24 AWG.
2 Питание: ад для кабелей
7× RTX 3090 = 7× 350W = 2450W пиковой нагрузки. Плюс процессор, память, SSD. Два блока питания по 1600W - это must. Синхронизируйте их через специальный адаптер или используйте блок с возможностью каскадирования.
Предупреждение: Не используйте разветвители PCIe питания (1 кабель → 2 разъема 8-pin). Каждая карта должна иметь отдельные кабелы от БП. Иначе рискуете увидеть дым. Проверено.
Софт: P2P-драйвер NVIDIA - темная магия
Стандартный драйвер NVIDIA не позволяет картам общаться напрямую (P2P - Peer-to-Peer), если они находятся на разных PCIe root complex. Наши 7 карт разбросаны по разным "корням" (коммутатор создает свой root complex). Без P2P все данные между картами идут через RAM - это убийственно для производительности.
3 Установка P2P-драйвера
P2P драйвер - это модифицированный драйвер NVIDIA, который форсирует прямое взаимодействие между GPU. Он неофициальный, скачивайте с GitHub (ищите "nvidia-p2p-driver").
# 1. Удаляем старый драйвер
sudo apt purge nvidia-*
sudo reboot
# 2. Ставим зависимости для сборки
sudo apt install build-essential dkms linux-headers-$(uname -r)
# 3. Клонируем и собираем P2P драйвер
git clone https://github.com/xxx/nvidia-p2p-driver.git
cd nvidia-p2p-driver
make
sudo make install
# 4. Загружаем модуль
sudo modprobe nvidia-p2p
После перезагрузки проверяем:
# Проверяем P2P доступность между всеми парами карт
nvidia-smi topo -p2p r
Вы должны увидеть матрицу 7×7, где почти все ячейки показывают "OK" (кроме карт на разных коммутаторах - там может быть "N/A").
Тесты производительности: ожидание vs реальность
Я тестировал три сценария: инференс через llama.cpp, обучение через PyTorch (FSDP), и параллельный инференс нескольких моделей через vLLM.
Конфигурация тестов:
- Модель: Qwen2.5 72B в формате GPTQ 4-bit
- Контекст: 32K токенов
- Температура: 0.7, top_p: 0.9
- Сравнение: 4× RTX 4090 (стандартная сборка) vs 7× RTX 3090 (наша сборка)
| Метрика | 4× RTX 4090 | 7× RTX 3090 | Разница |
|---|---|---|---|
| VRAM всего | 96 ГБ | 168 ГБ | +75% |
| Токенов/сек (инференс) | 42.5 | 38.7 | -9% |
| Время загрузки модели | 18 сек | 29 сек | +61% |
| Потребление (макс) | 1450W | 2850W | +96% |
Что видим? 7× 3090 медленнее в инференсе на 9%, но дают на 75% больше VRAM. Звучит как плохая сделка, пока не поймешь суть: с 168 ГБ VRAM вы можете загрузить Qwen2.5 72B в FP16 (нужно ~144 ГБ) или Llama 3.1 405B в 8-bit (нужно ~160 ГБ). С 4× 4090 максимум - 4-bit квантование для 72B моделей.
Для обучения разница еще интереснее. В моих тестах PCIe 4 vs PCIe 5 я показывал, что пропускная способность важна, но не критична. Здесь то же самое: overhead от коммутатора съедает 10-15% скорости обновления градиентов, но возможность тренировать большие модели с большим batch size компенсирует это.
Проблемы, с которыми столкнетесь (и как их решить)
1. Перегрев карт в середине стека
Карты номер 3, 4 и 5 (в середине) будут на 15-20°C горячее крайних. Решение: дополнительные 120mm вентиляторы, которые дуют прямо в зазоры между картами. Или переход на водяное охлаждение, но это уже другая история.
2. Нестабильность PCIe линков
Иногда система загружается и видит только 6 из 7 карт. Перезагрузка помогает. Если нет - проблема в ризере. Тестируйте каждый ризер отдельно.
# Проверка стабильности линков
sudo lspci -vvv | grep -A5 "LnkSta:"
3. Драйверные конфликты
P2P драйвер может конфликтовать с CUDA. Если видите ошибки "CUDA error: all CUDA-capable devices are busy" - откатитесь на стандартный драйвер и проверьте, работает ли без P2P.
Стоит ли игра свеч?
Если вам нужен максимум VRAM на бюджетной платформе - да. 168 ГБ за ~$8K (б/у 3090) против 96 ГБ за ~$6K (новые 4090) или 192 ГБ за ~$25K (серверные A100).
Если вам важна абсолютная скорость инференса - нет. Возьмите 4× 4090 и не мучайтесь.
Лично я оставил себе эту сборку для экспериментов с mixture-of-experts и запуска нескольких моделей параллельно. Когда нужно одновременно обрабатывать запросы к CodeLlama, медицинской модели и чат-боу - 7 GPU оказываются кстати.
Последний совет: Прежде чем покупать 7 карт, попробуйте собрать тестовый стенд с 3 картами и одним коммутатором. Если справитесь - масштабируйтесь. Если нет - возможно, вам больше подойдет классическая серверная сборка на EPYC, где PCIe линий больше, а головной боли меньше.
FAQ: вопросы, которые мне задают чаще всего
Можно ли использовать RTX 4090 вместо 3090?
Можно, но тогда проблем с питанием и нагревом будет еще больше. 4090 потребляет до 450W в пике. 7× 450W = 3150W. Нужны три блока питания. И водяное охлаждение.
Работает ли с AMD видеокартами?
Теоретически да, но P2P драйвер только для NVIDIA. Для AMD придется использовать ROCm и мириться с overhead через RAM. Не советую для такой конфигурации.
Какой корпус использовать?
Идеальный вариант - серверная стойка 4U с поддержкой 8 полновысотных карт. Или открытый стенд для майнинга. Обычные корпуса не подходят.
Можно ли сделать 8 GPU на AM5?
Технически да, если найти материнскую плату с тремя PCIe x16 слотами и использовать два коммутатора. Но стабильность будет близка к нулю. 7 - это практический предел.