Обещали «AI PC», получили головную боль. Исправляем
Вы купили Framework Desktop с Ryzen AI Max+ 395 и 128 гигабайтами оперативки. Вы читали про «искусственный интеллект на устройстве» и представляли, как будете гонять модели с контекстом в сотни тысяч токенов. Реальность? Черный экран, ошибки драйверов и тихий вой кулеров. AMD сделала железо, но не сделала кнопку «Волшебство». Это нормально. Волшебство мы сделаем сами.
Зачем это? Потому что Ryzen AI Max+ 395 — это не просто процессор. Это 16 ядер Zen 5, iGPU на архитектуре RDNA 3.5 с 32 вычислительными единицами и 16 ГБ выделенной видеопамяти Infinity Cache. В связке с 128 ГБ DDR5-6400 это позволяет загружать модели размером с небольшую галактику. Но только если операционная система и софт знают, как со всем этим разговаривать.
Забудьте про Windows для этой задачи. WDDM драйвер, виртуальная память, прерывания — всё это крадет 30-50% производительности в задачах LLM. Мы будем использовать Fedora. Потому что она свежая, имеет нативные пакеты ROCm и не боится нового железа.
1 Убийственная основа: ставим Fedora 41 и ломаем UEFI
Скачиваем образ Fedora Workstation 41 (актуально на март 2026) и записываем на флешку. Загружаемся. На экране выбора языка жмем Ctrl+Alt+F2 чтобы перейти в консоль. Графический установщик? Он для слабаков. И для того, чтобы потом не гадать, почему система резервирует память под неизвестные нужды.
# Запускаем установку в текстовом режиме
sudo anaconda --text
В разделе дисков выбираем «Custom Blivet GUI». Удаляем все разделы и создаем новые:
- EFI - 1 ГБ, FAT32
- SWAP - 32 ГБ (Да, тридцать два. Для гибернации и свопа под огромные модели. Без этого будет
OOM killer). - / - 200 ГБ, Btrfs с прозрачным сжатием Zstd.
- /home - всё остальное, XFS.
Включаем SSH сервер. Отключаем SELinux (позже включим обратно, но сначала нужно, чтобы всё заработало). Ставим систему.
2 ROCm 8.0: танцы с бубном вокруг amdgpu
После первой загрузки подключаемся по SSH. Первое обновление и установка нужных пакетов.
sudo dnf update -y
sudo dnf install -y kernel-devel kernel-headers git cmake gcc-c++ libstdc++-devel mesa-libGLU vulkan-tools
Теперь ROCm. На 10 марта 2026 года актуальная версия — ROCm 8.0. AMD наконец-то исправила поддержку iGPU в своих APU. Устанавливаем репозиторий и ставим пакеты.
sudo tee /etc/yum.repos.d/rocm.repo << EOF
[ROCm-8.0]
name=ROCm 8.0
baseurl=https://repo.radeon.com/rocm/rhel8/8.0/main
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo dnf install -y rocm-dev rocm-libs rocm-opencl rocm-hip-sdk
Добавляем пользователя в группу render и video.
sudo usermod -a -G render,video $USER
Перезагружаемся. После загрузки проверяем, что ROCm видит устройство.
rocm-smi
Должны увидеть что-то вроде:
================= ROCm System Management Interface ================
GPU Temp AvgPwr SCLK MCLK Fan Perf PwrCap VRAM% GPU%
0 45C 12W 800Mhz 2400Mhz 0% auto 150W 0% 0%
==================================================================
Если вместо этого видите ошибку или ничего, значит ядро не загрузило правильный модуль. Проверяем:
lsmod | grep amdgpu
Если модуль не загружен, создаем файл /etc/modprobe.d/amdgpu.conf со строкой:
options amdgpu virtual_display=1
И перезагружаемся еще раз. (Эта опция иногда нужна для APU, чтобы активировать все вычислительные блоки).
3 llama.cpp: собираем из ночного репозитория с поддержкой ROCm и больших контекстов
Не берите релизы. Они устаревают каждые две недели. Клонируем репозиторий и собираем с поддержкой ROCm и CLBlast (на случай, если захотите протестировать и OpenCL бэкенд).
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
mkdir build && cd build
Конфигурируем сборку. Ключевые флаги:
-DLLAMA_HIPBLAS=ON— включает поддержку ROCm.-DLLAMA_CLBLAST=ON— включает OpenCL бэкенд (для сравнения).-DCMAKE_CUDA_ARCHITECTURES=native-DCMAKE_HIP_ARCHITECTURES=gfx1103 (архитектура RDNA 3.5 в Ryzen AI Max+). Узнать точную архитектуру можно командойrocminfo | grep gfx.
# Определяем архитектуру
ARCH=$(rocminfo | grep -oP 'gfx\w+' | head -1)
# Конфигурируем
cmake .. -DLLAMA_HIPBLAS=ON \
-DLLAMA_CLBLAST=ON \
-DCMAKE_HIP_ARCHITECTURES=$ARCH \
-DLLAMA_NATIVE=OFF \
-DLLAMA_AVX2=ON \
-DBUILD_SHARED_LIBS=OFF
# Собираем с максимальным количеством потоков
make -j$(nproc)
После сборки в папке bin/ появятся бинарники main и llama-bench. Проверяем, что ROCm бэкенд работает:
./bin/main --help | grep -i hip
Должна быть строка с опцией -ngl (GPU layers) и упоминанием HIP.
Частая ошибка: сборка проходит успешно, но при запуске появляется "HIP error: unable to find device". Это значит, что пользователь не в группе render или video. Или не перезагрузился после добавления. Или нужен sudo (но мы не хотим запускать от root). Проверьте группы и перезагрузитесь.
Бенчмарки на стероидах: 250k контекст и квантование Q8_K_XL
Теперь самое интересное. Качаем модель. Для тестов большого контекста идеально подходит DeepSeek-R1-Distill-Qwen-32B (актуально на март 2026). Она поддерживает контекст до 256k токенов и есть в квантованных версиях. Скачиваем через huggingface-cli или прямо с зеркала.
# Устанавливаем huggingface-hub
pip install huggingface-hub
# Качаем модель в квантовании Q8_K_XL (самое высокое качество для 8-битного квантования)
huggingface-cli download lmstudio-community/DeepSeek-R1-Distill-Qwen-32B-GGUF --local-dir ./models --include "*Q8_K_XL*.gguf"
Запускаем бенчмарк. Сначала тест на скорость генерации с разным количеством слоев на GPU.
cd /path/to/llama.cpp/build
./bin/llama-bench -m ../models/DeepSeek-R1-Distill-Qwen-32B-Q8_K_XL.gguf -p "Once upon a time" -n 512 -ngl 99 -b 512 -c 250000
Что здесь происходит:
-ngl 99— загружаем на GPU все слои модели (32B модель имеет примерно 60 слоев, но 99 — это «всё, что можно»).-c 250000— устанавливаем размер контекста в 250 тысяч токенов. Да, это много.-b 512— размер батча.
Пока идет тест, откройте второй терминал и запустите rocm-smi чтобы наблюдать за утилизацией видеопамяти. Вы увидите, как 16 ГБ HBM заполняются под завязку, а затем система начинает использовать оперативную память через Unified Memory (UMA). Это нормально, но медленнее.
| Тест | Контекст (токены) | Слои на GPU | Скорость (токен/с) | Загрузка VRAM |
|---|---|---|---|---|
| Генерация (prompt 512) | 250000 | 60 | 18-22 | 15.8 ГБ / 16 ГБ |
| Обработка промпта | 250000 | 60 | ~2.5 (первые токены) | Полная + своп |
| Генерация (малый контекст) | 4096 | 60 | 45-55 | ~14 ГБ |
Цифры примерные, но показывают главное: большой контекст съедает память и скорость. Обработка первого промпта в 250k токенов может занять несколько минут. Но после этого генерация идет на приемлемой скорости. Это не для чата, это для анализа гигантских документов, кодовых баз, логов.
Ошибки, которые сломают вам день (и как их избежать)
1. «Unable to allocate ROCm0 buffer»
Значит, системе не хватило непрерывного сегмента памяти для размещения тензоров. Решение: уменьшите размер батча (-b 256 или -b 128). Или используйте флаг --tensor-split чтобы разделить модель между GPU и CPU, но на APU это бессмысленно. Лучше добавить своп и убедиться, что в BIOS выделено максимум памяти для iGPU (обычно настройка называется «UMA Frame Buffer Size» — выставите 16G).
2. Генерация тормозит после первых 100 токенов
Это может быть троттлинг. Установите sensors и мониторьте температуру CPU и SOC. Ryzen AI Max+ 395 при полной нагрузке на CPU и iGPU может упираться в лимит мощности (PPT). Зайдите в BIOS и увеличьте PPT Limit до 120-150 Вт, если система охлаждения позволяет. В Framework Desktop это возможно с помощью утилиты framework-amt.
3. ROCm видит только 8 ГБ памяти вместо 16 ГБ
Проверьте, что в системе отключен Secure Boot (он может блокировать загрузку custom модулей ядра). И проверьте, что используется последняя версия BIOS/UEFI от Framework. В ранних прошивках была бага с неправильной отчетностью памяти HBM.
А что если попробовать Vulkan?
ROCm дает максимальную производительность, но Vulkan бэкенд в llama.cpp проще в настройке и стабильнее. Для сравнения, соберите llama.cpp с флагом -DLLAMA_VULKAN=ON и запустите те же тесты. На Ryzen AI Max+ разница может быть 10-15% в пользу ROCm, но Vulkan не требует установки гигантского стека ROCm. Подробнее про выбор бэкенда читайте в нашем гайде «Оптимизация llama.cpp под AMD видеокарты: Vulkan vs ROCm».
Итог: стоит ли игра свеч?
Стоит. Ryzen AI Max+ 395 в связке с 128 ГБ оперативки — это, возможно, лучшая платформа для локальных LLM исследований на март 2026 года, если вы не хотите платить за серверные карты Nvidia. Вы получаете тихую систему с потреблением под нагрузкой около 120-150 Вт, способную работать с контекстами, которые недоступны большинству облачных API.
Главный нюанс: это не «из коробки». Это проект на вечер (или на два). Но когда вы запустите модель с контекстом в 250 тысяч токенов и она проанализирует всю вашу почту за последние пять лет за один запрос, вы поймете, зачем всё это было нужно.
Последний совет: купите хороший UPS. Потому что когда система на 20 минуте обработки гигантского промпта внезапно останется без питания, вы поймете истинную ценность бекапов и стабилизированного напряжения. Или не поймете, но очень расстроитесь.