Введение: зачем вообще объединять Nvidia и AMD?
Локальный запуск больших языковых моделей упирается в объём видеопамяти. RTX 3090 с 24 ГБ VRAM тянет большинство 7B-моделей, но при попытке скормить Llama-3-8B контекст в 32 тысячи токенов память заканчивается мгновенно. KV-кэш съедает гигабайты, модель уходит в offload на CPU, скорость генерации падает до 1-2 токенов в секунду. Покупка второй RTX 3090 решает проблему радикально, но б/у карты в 2026 году стоят от 65 тысяч рублей, а новых почти нет в продаже.
Типичный сценарий: у вас уже есть RTX 3090, а в соседнем слоте простаивает AMD Radeon 9070 на 16 ГБ. Возникает соблазн объединить их через LM Studio и получить 40 ГБ суммарной VRAM. Технически LM Studio с бэкендом llama.cpp поддерживает распределение тензоров по нескольким GPU, включая карты разных вендоров. Практический вердикт: гибрид Nvidia + AMD для LLM неработоспособен в качестве производительного решения. Потери скорости на передаче данных между GPU достигают 80-90%, стабильность низкая, а использовать Radeon как выделенный буфер для KV-кэша невозможно архитектурно. Две RTX 3090 дают 48 ГБ VRAM без проблем совместимости и почти линейный прирост производительности при распределении модели.
Технический разбор: как должна работать гибридная сборка
Идея распределённого инференса не нова. llama.cpp умеет разбивать модель на части и размещать слои на разных устройствах. Вычисления идут на основном GPU, а тензоры весов и кэша хранятся на дополнительных. В теории это позволяет наращивать эффективный объём VRAM без замены видеокарты.
KV-кэш: главный пожиратель VRAM
KV-кэш хранит ключи и значения для каждого токена контекста. Для модели Llama-3-8B при контексте 32k токенов и квантизации FP16 один слой внимания требует около 64 МБ памяти под кэш. При 32 слоях это 2 ГБ. Добавьте батчинг из четырёх параллельных запросов - потребление вырастает до 8 ГБ. Модель весит ещё 16 ГБ в FP16. Суммарно 24 ГБ RTX 3090 исчерпаны, а ведь нужна память под промежуточные тензоры и системный резерв.
Логика offloading'а проста: быстрая Nvidia считает, медленная AMD хранит. llama.cpp позволяет указать соотношение слоёв через параметр --tensor-split. Например, 20 ГБ на RTX 3090 и 14 ГБ на Radeon 9070. Модель размещается, инференс запускается. Дальше начинаются проблемы, невидимые в конфигурационных файлах.
Практический тест: RTX 3090 + Radeon 9070 в LM Studio на Linux
Методология тестирования
Тестовый стенд: AMD Ryzen 9 7950X, 64 ГБ DDR5-6000, Nvidia RTX 3090 24 ГБ (драйвер 555.42.02), AMD Radeon 9070 16 ГБ (ROCm 6.2.1, собранный из исходников с флагом --enable-consumer-gpus). ОС - Ubuntu 24.04 LTS. LM Studio 0.3.8 с бэкендом llama.cpp, сборка под Vulkan для обеспечения совместимости с обоими GPU. Модель - Llama-3.1-8B-Instruct, квантизация Q4_K_M. Контекст - 32768 токенов. Параметры запуска: --tensor-split 20,14 --no-mmap --numa distribute.
Результаты: цифры и стабильность
| Конфигурация | Скорость генерации (t/s) | Время до первого токена (с) | Использование VRAM (ГБ) | Стабильность |
|---|---|---|---|---|
| Только RTX 3090 (offload в RAM) | 3.2 | 18.4 | 23.8 / 48 (RAM) | 100% прогонов успешно |
| RTX 3090 + Radeon 9070 | 1.8 | 42.1 | 20.1 / 13.8 | 3 из 5 прогонов - вылет по таймауту |
| Две RTX 3090 (NVLink) | 28.7 | 2.1 | 18.4 / 17.9 | 100% прогонов успешно |
Гибридная связка показала скорость в 1.8 t/s - медленнее, чем offload в системную RAM на одиночной RTX 3090. Время до первого токена выросло до 42 секунд против 18 секунд в RAM-режиме. Два прогона из пяти завершились ошибкой CUDA error: an illegal memory access was encountered при попытке синхронизации буферов между GPU. LM Studio аварийно завершала процесс, модель требовала перезагрузки.
Причина падения скорости видна в мониторинге шины PCIe: при генерации каждого токена данные KV-кэша гоняются по маршруту VRAM(Nvidia) → RAM → VRAM(AMD) и обратно. Пропускная способность PCIe 4.0 x16 составляет 32 ГБ/с в теории, на практике - 24-26 ГБ/с. Внутренняя пропускная способность памяти RTX 3090 - 936 ГБ/с. Разница в 36 раз превращает каждый шаг инференса в ожидание передачи данных.
Почему гибрид не взлетает: корень проблем
Проблема передачи данных между GPU
Nvidia и AMD используют разные протоколы прямого доступа к памяти. У Nvidia это NVLink и GPUDirect RDMA, у AMD - Infinity Fabric. Между собой они несовместимы. Любая передача данных между GPU разных вендоров проходит через CPU и системную RAM. Маршрут выглядит так: GPU0 вычисляет attention, результат копируется в системную RAM через PCIe, CPU перекладывает данные в буфер GPU1, снова через PCIe. Обратный путь для следующего слоя повторяет цепочку. Каждый токен генерируется с тройной задержкой на копирование.
Использовать Radeon как чистый буфер KV-кэша невозможно. KV-кэш обновляется на каждом шаге декодирования - механизм attention требует доступа к полному кэшу для вычисления scores. Если кэш лежит на AMD, а вычисления идут на Nvidia, данные гоняются по PCIe 72 раза в секунду для модели с 32 слоями. Бутылочное горлышко душит производительность до уровня CPU-инференса.
Драйверы и совместимость в 2026 году
ROCm 6.2 официально поддерживает Radeon RX 7900 XTX и некоторые карты серии PRO. Radeon 9070 в список не входит. Запуск требует ручной сборки ROCm с флагом HSA_OVERRIDE_GFX_VERSION=12.0.0, что отключает часть оптимизаций компилятора. Результат - падение производительности вычислений на 15-20% относительно официально поддерживаемых карт. CUDA-экосистема Nvidia работает из коробки: драйвер ставится одной командой, llama.cpp собирается с -DGGML_CUDA=ON без танцев с бубном.
Ситуация усугубляется багами синхронизации. Vulkan-бэкенд llama.cpp, единственный способ подружить Nvidia и AMD в одном процессе, содержит неисправленные race conditions при работе с несколькими физическими устройствами. Разработчики llama.cpp признают проблему в issue #9872, но приоритет исправления низкий - гибридные конфигурации затрагивают менее 0.3% пользователей.
Альтернатива: две RTX 3090 - проверенный путь
Две RTX 3090 дают 48 ГБ VRAM с пропускной способностью 936 ГБ/с на каждой карте. При наличии моста NVLink (3-slot, около 8000 рублей на вторичке) карты объединяются в единое адресное пространство с пропускной способностью 112.5 ГБ/с между GPU. llama.cpp использует CUDA_VISIBLE_DEVICES=0,1 и распределяет слои автоматически.
Сравнение производительности: гибрид vs две RTX 3090
| Метрика | RTX 3090 + Radeon 9070 | Две RTX 3090 (NVLink) |
|---|---|---|
| Скорость генерации (t/s) | 1.8 | 28.7 |
| Время до первого токена (с) | 42.1 | 2.1 |
| Максимальный контекст (K токенов) | 32 (нестабильно) | 128 (стабильно) |
| Суммарная VRAM (ГБ) | 40 | 48 |
| Совместимость драйверов | Ручная сборка, баги | Из коробки |
| Энергопотребление под нагрузкой (Вт) | 520 | 700 |
Разница в скорости генерации - 16-кратная. Две RTX 3090 обрабатывают контекст 128k токенов без offloading'а, гибридная связка падает на 32k. Цена вопроса: б/у RTX 3090 в 2026 году стоит 65-75 тысяч рублей, Radeon 9070 - 55-60 тысяч. Разница в 10-15 тысяч оборачивается потерей 94% производительности. Экономическая целесообразность гибрида стремится к нулю.
Ранее мы разбирали альтернативный подход к расширению памяти - сборку AI-сервера на двух RTX 3080 20GB, где 40 ГБ суммарной VRAM обходятся дешевле одной RTX 3090. Этот кейс показывает, что даже однородные карты одного вендора с урезанной шиной дают приемлемую производительность для инференса 70B-моделей.
Другие способы расширения памяти для LLM
Offload в системную RAM остаётся бюджетным вариантом. При 64 ГБ DDR5-6000 и RTX 3090 модель Llama-3.1-8B с контекстом 32k выдаёт 3.2 t/s. Приемлемо для персонального использования с редкими запросами. Технология NVIDIA GPUDirect Storage позволяет подкачивать данные напрямую с NVMe-накопителя в VRAM, минуя CPU. Задержка выше, чем у RAM, но пропускная способность PCIe 4.0 x4 NVMe (7 ГБ/с) достаточна для пакетной обработки.
Облачные GPU - A100 80 ГБ обходится в $1.1/час, H100 80 ГБ - $2.5/час. Для задач, требующих 48+ ГБ VRAM эпизодически, аренда выгоднее покупки второй RTX 3090. Расчёты: 100 часов инференса на A100 стоят $110, вторая RTX 3090 - $700 единоразово плюс электричество. При редких запусках больших моделей облако окупается.
Отдельного внимания заслуживает тема распределённого инференса на нескольких картах. В статье про две RTX 5060 Ti мы детально разобрали физику memory-bound архитектуры и почему две карты не дают двукратного прироста скорости. Принципы сплитинга модели одинаковы для любых GPU - важно понимать ограничения пропускной способности памяти до того, как покупать железо.
Владельцам AMD-карт пригодится материал об оптимизации llama.cpp под ROCm, где разобраны свежие патчи, ускоряющие обработку промптов до 15% и исправляющие критический баг квантизации Q2_K. Если вы всё же решите экспериментировать с Radeon в LLM-задачах, начните с официально поддерживаемых конфигураций.
Заключение: стоит ли собирать гибрид в 2026 году?
Гибридная сборка Nvidia RTX 3090 + AMD Radeon 9070 для локального запуска LLM технически возможна, но практически бесполезна. Скорость генерации в 1.8 t/s при контексте 32k токенов делает интерактивную работу невозможной. Два прогона из пяти завершаются ошибкой. Использовать Radeon как выделенный буфер KV-кэша нельзя архитектурно - данные гоняются через PCIe и CPU на каждом шаге декодирования, создавая задержку, сопоставимую с CPU-инференсом.
Рабочий рецепт расширения VRAM: вторая RTX 3090. 48 ГБ суммарно, 28.7 t/s на Llama-3.1-8B с контекстом 32k, нулевые проблемы с драйверами. Разница в цене с Radeon 9070 (10-15 тысяч рублей) окупается 16-кратным приростом производительности. Бюджетная альтернатива - offload в системную RAM (3.2 t/s, бесплатно) или аренда облачных GPU для эпизодических задач с большим контекстом.
Если Radeon 9070 уже куплен и лежит без дела - экспериментируйте, но настройтесь на результат «работает, но медленно и нестабильно». Делитесь опытом и цифрами в комментариях: реальные замеры на конкретном железе ценнее любых теоретических выкладок.