Зачем тратить на две карты как на машину, если они тормозят?
Представь: ты купил две новенькие A100X на архитектуре Hopper Next. Твоя цель — запускать локально модели размером с Llama 4 720B или тренировать мультимодальные сети. Ты собираешь систему, ставишь драйверы, запускаешь код... и понимаешь, что две карты работают едва ли быстрее одной. Знакомое чувство? В 90% случаев проблема не в железе, которое выдаёт под 175 TFLOPS на FP16 каждая, а в абсолютно кривом workflow, убивающем весь потенциал.
Актуально на апрель 2026: A100X — это уже не просто A100. Архитектура Hopper Next принесла не только 128 ГБ HBM3e памяти, но и кардинально переработанные тензорные ядра пятого поколения. Старые методики оптимизации из эпохи A100 и даже H100 здесь часто дают обратный эффект.
Первое правило Dual A100X: железо — это фундамент, который либо рушится, либо выдерживает
Можно взять самую дорогую материнскую плату для Threadripper 9990X и воткнуть в неё две A100X. А потом месяц гадать, почему латентность обмена между картами зашкаливает. Вся магия начинается с PCIe топологии.
# Это твой первый и главный диагностический инструмент
sudo nvidia-smi topo -m
Что ты там хочешь увидеть? В идеальном мире — строку "GPU0 GPU1 PIX PHB", что означает прямой путь через PCIe switch. Реальность часто выглядит как "GPU0 GPU1 NODE NODE", то есть карты общаются через память хоста (RAM). Задержка вырастает в 5-10 раз, и о каком-либо эффективном multi-GPU pipeline можно забыть.
Мощность? Забудь про 1000-ваттный блок питания. Две A100X под нагрузкой съедают 700 800 Вт только за себя. Добавь процессор, память, диски. Реальный минимум — 1600 Вт от проверенного бренда вроде Seasonic или Corsair. И нет, китайский ноунейм за 300$ не подойдёт — он сгорит через неделю, унося с собой твои инвестиции в 40 000$.
Софт: драйверы, CUDA 13.5 и почему твой любимый фреймворк всё ломает
На момент апреля 2026 года актуальная стабильная связка — драйвер R575+ и CUDA Toolkit 13.5. Да, уже есть CUDA 14.0 в бета, но для продакшна на A100X бери 13.5 — там уже есть полная поддержка Hopper Next, но меньше багов.
# Пример установки драйверов и CUDA на Ubuntu 24.04 LTS
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit-13-5 nvidia-driver-575
А теперь главное: фреймворки. PyTorch 2.4+ и TensorFlow 2.17+ официально поддерживают A100X и его новые инструкции FP8. Ключевое слово — "официально". На практике библиотеки вроде transformers, deepspeed или vLLM могут отставать на пару месяцев. Решение? Всегда смотри в их репозитории на поддержку архитектуры "hopper_next" или "sm_95".
Предупреждение: Не пытайся установить PyTorch через простой `pip install torch`. Собери его из исходников с флагами под CUDA 13.5 и архитектурой 95 (Hopper Next), либо используй предсобранные wheels с официального сайта PyTorch, явно указав версию для CUDA 13.5. Иначе ты получишь поддержку только универсальных инструкций, потеряв до 40% производительности на новых тензорных ядрах.
1 Диагностика: находим узкое место перед оптимизацией
Прежде чем что-то настраивать, нужно понять, где тормозит. Создай простой тестовый скрипт.
import torch
import time
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"Number of GPUs: {torch.cuda.device_count()}")
for i in range(torch.cuda.device_count()):
props = torch.cuda.get_device_properties(i)
print(f"GPU {i}: {props.name}, {props.total_memory / 1024**3:.2f} GB, SM {props.major}.{props.minor}")
# Тест пропускной способности PCIe
if torch.cuda.device_count() > 1:
size = 10_000_000 # 10 млн элементов
a = torch.randn(size, device='cuda:0')
b = torch.randn(size, device='cuda:1')
start = time.time()
for _ in range(100):
a.copy_(b) # Копирование с GPU1 на GPU0
torch.cuda.synchronize()
elapsed = time.time() - start
bandwidth = (100 * size * 4) / (elapsed * 1024**3) # 4 байта на float32, результат в ГБ/с
print(f"Bandwidth between GPU0 and GPU1: {bandwidth:.2f} GB/s")
# На PCIe 4.0 x16 ожидай ~28-30 ГБ/с. Если меньше 20 — проблемы с топологией.
2 Настройка распределения моделей: Tensor Parallelism, Pipeline Parallelism и магия vLLM
Ты не можешь просто взять модель и сказать PyTorch `model.to('cuda:0')`. Для моделей, превышающих память одной карты (например, Llama 4 405B c 405 млрд параметров в формате BF16 — это около 810 ГБ), нужна стратегия.
- Tensor Parallelism (TP): Разделяет матрицы весов внутри слоёв между GPU. Отлично работает для инференса, минимальная задержка между картами. Используется в vLLM и Hugging Face TGI.
- Pipeline Parallelism (PP): Разные слои модели на разных GPU. Подходит для обучения, но для инференса создаёт "пузыри" простоя.
- Смешанный подход (TP+PP): Для очень больших моделей на нескольких нодах. Для двух карт у себя дома обычно не нужен.
Для локального инференса в 2026 году vLLM — твой лучший друг. Он поддерживает A100X из коробки и эффективно использует Tensor Parallelism.
# Запуск Llama 3.5-405B на двух A100X через vLLM
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3.5-405B-Instruct \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.9 \
--served-model-name llama-3.5-405b \
--port 8000
Флаг `--tensor-parallel-size 2` говорит vLLM автоматически разделить модель между двумя картами. Если у тебя 2x128 ГБ = 256 ГБ VRAM, то модель на 405B параметров в BF16 (810 ГБ) просто не влезет. Но vLLM поддерживает quantization. Добавь `--quantization awq` или `--quantization gptq` (для 4-битной квантизации), и модель займёт примерно в 4 раза меньше памяти.
3 Тонкая настройка системы: память, IO и охлаждение
Системная память (RAM) — это буфер. Если твоя модель не помещается в VRAM и начинает сваплиться в RAM, производительность падает в пропасть. Минимум — 256 ГБ DDR5. Лучше — 512 ГБ. И выбирай память с максимальной частотой, которую поддерживает твоя платформа, потому что скорость обмена с VRAM будет упираться в неё.
Диски? M.2 NVMe Gen5. Модели загружаются с диска в RAM, потом в VRAM. Если у тебя старый SATA SSD, ты будешь ждать загрузки модели Llama 3.5-405B 20 минут вместо 2.
Охлаждение. A100X в режиме SXM (который чаще всего используется в серверных стойках) рассчитаны на турбинное охлаждение с огромным потоком воздуха. Десктопные версии с активными кулерами могут перегреваться в плотном корпусе. Монитор температуру ядра (core) и памяти (memory junction).
watch -n 1 nvidia-smi --query-gpu=timestamp,temperature.gpu,temperature.memory,power.draw --format=csv
Температура памяти (HBM3e) выше 95°C — это тревожный знак. Производительность начнёт снижаться из-за троттлинга.
Реальные кейсы: что можно делать на Dual A100X дома в 2026 году
1. Локальный coding агент уровня Devin. Запускаешь модель типа локальных альтернатив Claude Code, но на 405B параметрах. Она анализирует весь твой кодогенез, планирует задачи, пишет и тестирует код. Задержка в пару секунд вместо 20 при использовании облачного API.
2. Тренировка и дообучение специализированных моделей. Ты — исследователь в медицине. У тебя есть датасет из 10 000 аннотированных рентгеновских снимков. На двух A100X ты можешь дообучить мультимодальную модель (например, следующую версию LLaVA) под свою задачу за несколько дней, а не недель в облаке, экономя тысячи долларов и сохраняя полный контроль над данными.
3. Генеративное видео и 3D. Модели наподобие Sora или их открытые аналоги (Stable Diffusion 4 Video) требуют чудовищных ресурсов для инференса, не говоря уже о тренировке. Две A100X позволяют генерировать короткие клипы в разрешении 1080p или работать с 3D-генерацией в near-realtime.
4. Симуляция и научные расчёты. Не только AI. Молекулярная динамика, CFD-расчёты — всё это жадное до памяти и вычислений с плавающей точкой. 256 ГБ HBM3e — это рай для таких задач.
| Кейс | Модель/Задача | Ожидаемая производительность (2x A100X) | Ключевая настройка |
|---|---|---|---|
| Инференс LLM | Llama 4 720B (4-bit quant) | 12-18 токенов/сек | vLLM с Tensor Parallelism, continuous batching |
| Тренировка Diffusion | Stable Diffusion 4 (3B params) | ~1.5 итерации/сек (batch=8) | PyTorch FSDP (Fully Sharded Data Parallel) |
| Кодинг-агент | CodeLlama 2 70B (без квант.) | ~40 токенов/сек | Hugging Face TGI, Tensor Parallelism |
Главные ошибки, которые сведут твои усилия к нулю
- Игнорирование PCIe топологии. Самая частая и дорогая ошибка. Карты должны общаться напрямую, а не через RAM.
- Использование устаревших версий CUDA и фреймворков. Hopper Next — новая архитектура. CUDA 12.x или PyTorch 2.2 не раскроют её потенциал.
- Недостаточное охлаждение. Троттлинг из-за перегрева снижает производительность на 30-50%, и ты даже не поймёшь почему.
- Попытка запихнуть невпихуемое. Без квантизации ты не запустишь модель >250B параметров на 256 ГБ VRAM. Потрать время на выбор правильного метода квантизации (AWQ, GPTQ, EXL2).
- Забыть про системную память и диски. Медленная загрузка модели и своппинг сведут на нет преимущества быстрых GPU.
Стоит ли всё это? Если ты зарабатываешь на AI-разработке, проводишь исследования или просто фанат с большим бюджетом — да. Две A100X дают уровень производительности, доступный ещё пару лет назад только в дата-центрах. Но готовься к постоянной настройке, мониторингу и (возможно) ремонту. Это не PlayStation — включил и играешь. Это гоночный болид, который требует механика перед каждым заездом.
И последний совет: перед тем как покупать две A100X, посмотри на статью про сборку AI-станции на RTX 5090. Возможно, одной карты нового поколения хватит для твоих задач, и ты сэкономишь кучу денег, нервов и киловатт-часов.