В мире локальных LLM есть два типа людей. Первые с тоской смотрят на ценники H100 и думают, как бы взять A100 в аренду подешевле. Вторые копаются в спецификациях устаревшего железа, ищут драйверы для карт, которые уже не поддерживаются, и собирают монстров за копейки. Если вы читаете это, вы – второй тип. И у меня для вас отличные новости: эпоха 128 ГБ VRAM за разумные деньги наступила. И имя ей – Radeon R9700.
Зачем вам 128 ГБ? Или почему 70B модели – это уже прошлый век
Потому что Qwen2.5 72B в полной точности (FP16) требует 144 ГБ. Потому что Llama 3.1 405B в 4-битном квантовании (Q4_K_M) требует около 120 ГБ. Потому что контекст в 128K токенов съедает память как не в себя. 24 ГБ на RTX 4090? 48 ГБ на сдвоенной RTX 3090? 96 ГБ на четырех модифицированных RX 7900 XTX? Детские игрушки. Мы говорим о серьезном железе для серьезных моделей, которые вы будете запускать локально, не спрашивая разрешения у облачных провайдеров и не глядя на счетчик.
Забудьте про "аренду на час". Сервер с 128 ГБ VRAM – это ваша личная исследовательская лаборатория. Запускайте 400B модели, экспериментируйте с fine-tuning на огромных датасетах, держите в памяти десятки лора-адаптеров одновременно. Это уровень, на котором начинается настоящая работа, а не демонстрация возможностей.
Radeon R9700 против MI100: неочевидный выбор победителя
На первый взгляд все просто. MI100 – это ускоритель AMD для дата-центров. 32 ГБ HBM2. Поддержка ROCm. R9700 – это... стоп, а что это вообще? Это недавно анонсированная карта? Нет. Это возвращение легенды. Компания AMD, в попытке занять нишу между потребительскими картами и профессиональными ускорителями, выпустила Radeon R9700 – монстра с 128 ГБ GDDR6 памяти. Это не HBM, это обычная GDDR6, но ее очень, очень много.
| Параметр | Radeon R9700 (2 карты) | MI100 (4 карты) |
|---|---|---|
| Общая VRAM | 128 ГБ | 128 ГБ |
| Тип памяти | GDDR6 | HBM2 |
| Пропускная способность (на карту) | ~768 ГБ/с | ~1200 ГБ/с |
| Потребление (система) | ~850 Вт | ~1400 Вт |
| Ориентировочная стоимость железа | $7000 - $8000 | $10000 - $12000 |
| Поддержка ROCm | Официальная, но с оговорками | Полная, родная |
| Сложность сборки | Средняя (как для high-end ПК) | Высокая (серверное железо, питание, охлаждение) |
Пропускная способность HBM2 на MI100 выше. Это факт. Но в задачах LLM инференса, особенно с большими моделями, которые не помещаются в память одной карты, ключевым становится не столько скорость памяти, сколько латентность обмена между картами и эффективность работы со слоями, распределенными по разным устройствам. И здесь архитектура R9700, заточенная под более широкие PCIe шины и оптимизированные драйверы для multi-GPU в потребительском сегменте, может дать неожиданные преимущества. Особенно в связке с llama.cpp RPC, который превращает недостатки в фичи.
MI100 – это серверное железо. Оно громкое, горячее и требует специальных блоков питания. R9700 вписывается в стандартный корпус EATX с двумя 8-пиновыми коннекторами на каждую карту. Разница в шуме и тепловыделении – как между реактивным двигателем и турбовентилятором.
BOM (Bill of Materials): что покупать и где не экономить
Вот список. Не отклоняйтесь от него, если не хотите потом докупать переходники, менять блок питания и объяснять жене, почему в комнате пахнет паленой изоляцией.
1 Две видеокарты AMD Radeon R9700 64GB
Да, по 64 ГБ каждая. Это не опечатка. Ищите у официальных дистрибьюторов AMD или у крупных ритейлеров. Цена за штуку на момент написания – $2800-$3200. Не берите с рук, не берите "б/у от майнинга" (хотя для этой модели это маловероятно). Вам нужна гарантия. Потому что 128 ГБ памяти – это много точек отказа.
2 Материнская плата: ASUS Pro WS WRX90E-SAGE SE
Почему именно она? Сокет sWRX9 под AMD Threadripper Pro 7000. 7 слотов PCIe 5.0 x16. Поддержка 2 ТБ DDR5 памяти в 8-канальном режиме. Это платформа, которая не будет бутылочным горлышком. Вы можете поставить 4 карты R9700 (если найдете, куда приткнуть 256 ГБ VRAM), и PCIe полосы хватит. Альтернативы – Supermicro MBD-H13SSW-N-O. Но с ASUS проще с BIOS и драйверами под Linux.
3 Процессор: AMD Threadripper Pro 7995WX или 7985WX
96 или 64 ядра. Зачем столько? Потому что подготовка данных, токенизация, orchestration между GPU – все это ложится на CPU. Слабый процессор будет простаивать, пока карты гоняют матрицы, но в моменты загрузки/выгрузки, переключения контекстов он станет тормозом. 64 ядер достаточно. 96 – это для перфекционистов. Не экономьте здесь.
4 Оперативная память: 256 ГБ DDR5 5600 МГц (8x32GB)
ECC обязательно. Вы будете работать с гигабайтами весов моделей. Одна ошибка в памяти – и вывод модели превратится в абракадабру. 256 ГБ – это не для моделей, они в VRAM. Это для операционной системы, для кэширования, для работы с большими наборами данных при тонкой настройке. Меньше 256 ГБ – значит, постоянно свапать на SSD.
5 Блок питания: Seasonic PRIME TX-1600
1600 Вт. 80+ Titanium. Один. Не два блока по 1000 Вт с мостом. Один надежный блок. Две карты R9700 – это до 700 Вт под нагрузкой. Процессор – еще 350 Вт. Остальное – запас. Титан-сертификация означает КПД выше 94% даже при частичной нагрузке. Это тише и холоднее.
6 Охлаждение и корпус
Корпус – Fractal Design Meshify 2 XL или Lian Li V3000 Plus. Нужно место для двух массивных трехслотовых карт и хороший airflow. Кулер на процессор – Noctua NH-U14S TR5-SP6 или аналогичный башенный. Водоблоки? Только если вы готовы обслуживать кастомную СВО. Воздух проще и надежнее.
Суммарный чек: $11,000 - $13,000
Да, это не $1500 за ПК с RTX 5060 Ti. Это инструмент. Сравните с арендой эквивалентной мощности в облаке: 128 ГБ VRAM – это минимум 4x A100 40GB. Аренда – $12-$15 в час. За 900 часов работы (чуть больше месяца круглосуточной работы) вы отбиваете железо. А оно проработает года три.
Сборка и настройка: где собака зарыта
Собрать железо – полдела. Включить и заставить работать – вот где начинается веселье.
Шаг 1: Установка ОС и базовых драйверов
Ubuntu 22.04.4 LTS. Точка. Не 24.04, не Arch, не Fedora. Ubuntu 22.04. Потому что ROCm 6.1 (которая нужна для R9700) лучше всего заточена под него. Скачиваете образ, записываете на флешку, устанавливаете.
# После установки, первым делом:
sudo apt update && sudo apt upgrade -y
sudo apt install rocm-hip-sdk rocm-llvm rocm-opencl-sdk -y
# Добавляем пользователя в группу video и render
sudo usermod -a -G video $LOGNAME
sudo usermod -a -G render $LOGNAME
Шаг 2: Настройка PCIe и Resizable BAR
Заходите в BIOS/UEFI. Ищете настройки PCIe. Выставляете для всех слотов, где стоят карты, Gen4 (R9700 поддерживает Gen5, но Threadripper Pro 7000 на WRX90 работает на Gen4). Включаете Resizable BAR (или Above 4G Decoding) – обязательно. Без этого карты не увидят всю свою память за раз.
Шаг 3: Проверка карт и памяти
Перезагружаетесь. Запускаете команды:
rocm-smi
# Должны увидеть две карты. Потом:
rocm-smi --showmeminfo vram
# Для каждой карты должно быть ~64 GB (реально 65536 MB)
Если видите только одну карту или память отображается не полностью – проблема в BIOS (Resizable BAR) или в физическом подключении (проверьте, что карты плотно сидят в слотах и все кабели питания подключены).
Шаг 4: Сборка llama.cpp с поддержкой ROCm
Теперь главное – собрать llama.cpp, который умеет распределять слои модели между двумя картами.
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build && cd build
# Ключевые флаги:
cmake .. -DLLAMA_HIPBLAS=ON -DLLAMA_ROCm=ON -DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS="gfx1100"
make -j$(nproc)
Флаг AMDGPU_TARGETS="gfx1100" указывает на архитектуру RDNA3.5, на которой основан R9700. Если не указать, сборка пойдет для всех архитектур, что дольше.
Шаг 5: Запуск модели
Скачиваете GGUF модель, например, Qwen2.5 72B в формате Q4_K_M. Запускаете:
./main -m /path/to/qwen2.5-72b-q4_k_m.gguf \
-ngl 999 \ # Загрузить все слои на GPU
--split-mode layer \ # Распределять по слоям
-t 64 \ # Количество потоков CPU
-c 32768 \ # Контекст
-b 512 \ # Размер батча
--gpu-layers 80 \ # Сколько слоев грузить на GPU (все)
-n 256 \
-p "Translate the following English text to French: 'Hello, world!'"
llama.cpp автоматически распределит слои модели между двумя картами. Первые 40 слоев на карту 0, следующие 40 на карту 1. Обмен данными идет через PCIe.
Возможные ошибки и как их избежать
- "HIP error: out of memory" при явно достаточном VRAM. Проблема в фрагментации памяти или в том, что llama.cpp пытается выделить один непрерывный регион, а его нет. Решение: уменьшить
-b(batch size) или использовать--tensor-splitдля ручного указания, сколько памяти использовать на каждой карте. - Низкая скорость токенов (менее 5 t/s на 72B модели). Скорее всего, проблема в PCIe bandwidth или в том, что CPU не справляется с подготовкой данных для GPU. Убедитесь, что карты работают в режиме PCIe 4.0 x16 (проверьте
lspci -vv). Увеличьте-t(количество потоков). - Одна карта не используется. Проверьте, что в системе нет других графических драйверов (например, nouveau или старых amdgpu). Удалите всё, оставьте только ROCm. Проверьте
rocm-smi, что видна вторая карта.
Итог: кому это нужно?
Исследователям, которые устали от ограничений облаков. Компаниям, которые хотят развернуть собственные большие модели, не отправляя данные наружу. Энтузиастам, для которых процесс сборки и настройки – такая же часть удовольствия, как и запуск моделей. Radeon R9700 – это не панацея. Это инструмент с характером. Он требует знаний, времени и готовности копаться в настройках. Но в ответ он дает то, что не купишь за деньги: полный контроль над 128 гигабайтами видеопамяти. И это того стоит.
P.S. Через полгода, когда появятся первые обзоры и народные умельцы попробуют разогнать память на R9700, мы соберемся снова. И поговорим о том, как выжать из этой системы еще 15% производительности. А пока – удачной сборки.