Привет, коллега! 👋
Если ты хочешь запустить локальную нейросеть (например, через Ollama) на своём домашнем сервере с Proxmox и видеокартой AMD — ты по адресу. В этой статье разберём по шагам, как «подружить» AMD GPU, ROCm и LXC-контейнер, даже если ты не гуру виртуализации.
⚠️ Важно: Гайд рассчитан на непривилегированные (unprivileged) LXC-контейнеры с Ubuntu 24.04 и видеокарты AMD с поддержкой ROCm (RDNA 1/2/3, некоторые GCN).
📋 Что нам понадобится
| Компонент | Требования |
|---|
| Proxmox | Версия 8.x (желательно последняя) |
| Видеокарта | AMD с поддержкой ROCm (RX 5000/6000/7000 серии и др.) |
| Контейнер | LXC Ubuntu 24.04 (непривилегированный) |
| Ресурсы | От 16 ГБ ОЗУ, 60 ГБ диска (под модели + ROCm ~30 ГБ) |
🔧 Шаг 1: Создаём контейнер
Самый простой способ — использовать скрипт от tteck (Proxmox VE Helper Scripts):
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu.sh)"
При создании укажи:
- ОЗУ: 32 ГБ (или сколько не жалко — модели «кушают» много)
- CPU: все доступные ядра
- Диск: от 60 ГБ (можно расширить позже через GUI)
💡 Совет: после создания контейнера зайди в него через консоль и обнови пакеты:
apt update && apt upgrade -y
🎮 Шаг 2: Устанавливаем ROCm внутри контейнера
⚠️ Ключевой момент: на хосте Proxmox драйверы AMD уже стоят, поэтому не используем DKMS!
Выполняем по порядку:
# Скачиваем установщик ROCm для Ubuntu 24.04 (noble)
wget https:
# Устанавливаем
sudo apt install ./amdgpu-install_6.2.60204-1_all.deb
# Запускаем установку ROCm без DKMS
amdgpu-install --usecase=rocm --no-dkms
🔧 Настраиваем переменные окружения
Некоторые видеокарты требуют «обмана» версии GPU. Добавь в ~/.bashrc или /etc/environment:
# Для RDNA 1 (RX 5000)
export HSA_OVERRIDE_GFX_VERSION=10.1.0
# Для RDNA 2 (RX 6000)
export HSA_OVERRIDE_GFX_VERSION=10.3.0
# Для RDNA 3 (RX 7000)
export HSA_OVERRIDE_GFX_VERSION=11.0.0
После этого примени изменения:
source ~/.bashrc
🔌 Шаг 3: «Пробрасываем» видеокарту в контейнер
3.1. Узнаём нужные GID внутри контейнера
cat /etc/group | grep -E 'render|video'
Запомни цифры после render: и video: (обычно это 109 и 44, но могут отличаться).
3.2. Находим путь к устройству на хосте
На хосте Proxmox выполни:
ls -l /sys/class/drm/renderD*/device/driver
Ты увидишь что-то вроде /dev/dri/renderD128 — это нам и нужно.
3.3. Настраиваем passthrough в Proxmox GUI
- Выбери контейнер → Options → Features → убедись, что включены
nesting=1 и keyctl=1 - Перейди в Resources → Add → Device Passthrough
- Добавь два устройства:
| Путь устройства | UID | GID |
|---|
/dev/dri/renderDXXX | 0 | GID render из контейнера |
/dev/kfd | 0 | GID video из контейнера |
- Перезагрузи контейнер
🤖 Шаг 4: Устанавливаем Ollama (или другой LLM-раннер)
Самый простой способ — официальный скрипт:
curl -fsSL https://ollama.com/install.sh | sh
После установки проверь, видит ли система видеокарту:
rocminfo | grep -i name
ollama run llama2
На хосте можно понаблюдать за загрузкой GPU:
radeontop
🛠️ Если что-то пошло не так: частые проблемы
❌ Ошибка: kfd driver not loaded / permission problems
Решение:
- Убедись, что пробросил оба устройства:
/dev/kfd и /dev/dri/renderD* - Проверь, что GID в Proxmox совпадают с теми, что внутри контейнера
- Перезагрузи контейнер после настройки
❌ Ошибка: broken packages при установке ROCm
Решение:
❌ PyTorch не видит GPU / torch.cuda.is_available() = False
Решение:
❌ ROCm не работает с конкретной видеокартой (например, RX 7800 XT)
Важно: Не все карты официально поддерживаются. Попробуй:
- Указать
HSA_OVERRIDE_GFX_VERSION=11.0.0 для RDNA3 - Убедиться, что на хосте установлен DKMS-модуль:
pveam download local amdgpu-dkms
🎯 Чек-лист перед стартом
- [ ] Контейнер Ubuntu 24.04 создан с запасом по ОЗУ и диску
- [ ] Внутри контейнера установлен ROCm с флагом
--no-dkms - [ ] Переменные окружения (
HSA_OVERRIDE_GFX_VERSION) заданы под твою карту - [ ] Устройства
/dev/kfd и /dev/dri/renderD* проброшены с правильными GID - [ ] Контейнер перезапущен после всех настроек
- [ ] Запущен
ollama или другой раннер, модель грузится без ошибок
🔚 Вместо заключения
Запуск LLM на AMD в Proxmox — задача не тривиальная, но вполне решаемая. Главное:
- Не торопиться
- Внимательно читать ошибки
- Помнить про
--no-dkms и правильные переменные окружения
Если всё сделал правильно — поздравляю! 🎉 Теперь у тебя есть своя локальная нейросеть, которая работает на твоем железе, без облаков и подписок.
💬 Есть вопросы? Заглядывай в оригинальную тему на форуме Proxmox:
https://forum.proxmox.com/threads/tutorial-run-llms-using-amd-gpu-and-rocm-in-unprivileged-lxc-container.157920/
Удачи в экспериментах! 🛠️✨