Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Учебник: Запуск LLM с использованием GPU AMD и ROCm в не привилегированном LXC контейнере.

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Учебник: Запуск LLM с использованием GPU AMD и ROCm в не привилегированном LXC контейнере., Proxmox Виртуальная Среда
     
    spiralsugarcane
    Guest
    #1
    0
    24.11.2024 00:24:00
    Создайте контейнер Ubuntu 24.04 LXC. Я использовал отличный скрипт tteck, но можно использовать любой другой метод, который вам удобен. Выделите ему приличное количество ресурсов по объему хранилища, ОЗУ и процессору (согласно рекомендациям Ollama). Я выбрал 32 ГБ и все доступные ядра. Выделите достаточно места для хранения ваших моделей (можно расширить через GUI). Я выбрал 60 ГБ для начала. ROCm занимает около 30 ГБ. Внутри контейнера LXC: установите ROCm согласно официальным инструкциям, но не используйте DKMS, так как драйверы уже установлены по умолчанию в Proxmox. Это назначение флага `--no-dkms`. Код: wget https://repo.radeon.com/amdgpu-install/6.2.4/ubuntu/noble/amdgpu-install_6.2.60204-1_all.deb
    sudo apt install ./amdgpu-install_6.2.60204-1_all.deb
    amdgpu-install --usecase=rocm --no-dkms Установите переменные окружения, как обсуждалось в этой теме: Проверьте, какие идентификаторы групп отвечают за render и video внутри контейнера. Код: cat /etc/group | grep -w 'render\|\video' На Proxmox хосте: Найдите путь к устройству render вашей AMD GPU, чтобы использовать его на следующем шаге: Код: ls -l /sys/class/drm/renderD*/device/driver В GUI Proxmox, перейдите в Options и настройте Device Passthrough. Код: /dev/kbd Используйте GID контейнера для группы render внутри контейнера, а uid оставьте равным 0. Код: /dev/dri/renderD*** Используйте GID для видео группы и оставьте uid равным 0. Перезапустите контейнер и переходите к установке ollama согласно инструкциям на репозитории Github. Вы можете проверить на хосте с помощью radeontop, если ваша GPU работает и используется. Код: apt update && apt install radeontop
     
     
     
    rocketpants
    Guest
    #2
    0
    27.11.2024 02:27:00
    Спасибо за заметки, мне тоже пришлось предпринять дополнительные шаги на Proxmox v8.3. При установке ROCm изменил стандартные инструкции с Code: sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)" на Code: sudo apt install "proxmox-default-headers" "proxmox-headers-6.5". Также пришлось добавить переменные окружения Code: Environment="ROCR_VISIBLE_DEVICES=0" Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0" в Code: /etc/systemd/system/ollama.service.
     
     
     
    NureddinDev
    Guest
    #3
    0
    29.11.2024 20:09:00
    У меня RX 7800XT
    root@docker:~# amdgpu-install --usecase=rocm --no-dkms
    Hit:1 http://deb.debian.org/debian bookworm InRelease
    Hit:2 http://security.debian.org bookworm-security InRelease
    Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
    Hit:4 https://download.docker.com/linux/debian bookworm InRelease
    Hit:5 https://repo.radeon.com/amdgpu/6.2.4/ubuntu noble InRelease
    Hit:6 https://repo.radeon.com/rocm/apt/6.2.4 noble InRelease
    Reading package lists... Done
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Не удалось установить некоторые пакеты. Возможно, вы запросили невозможную ситуацию, либо, если вы используете нестабильную версию дистрибутива, некоторые необходимые пакеты ещё не созданы или были перемещены из Incoming.
    Следующая информация может помочь в разрешении ситуации:

    Следующие пакеты имеют неудовлетворённые зависимости:
    hipsolver : Зависит: libcholmod5, но он не устанавливается
    Зависит: libsuitesparseconfig7, но он не устанавливается
    mesa-amdgpu-va-drivers : Зависит: libc6 (>= 2.38), но устанавливается 2.36-9+deb12u9
    Зависит: libdrm-amdgpu-amdgpu1, но он не устанавливается
    Зависит: libdrm-amdgpu-radeon1, но он не будет установлен
    Зависит: libdrm2-amdgpu, но он не устанавливается
    Зависит: libelf1t64 (>= 0.142), но он не устанавливается
    Зависит: libllvm18.1-amdgpu, но он не будет установлен
    Зависит: libx11-xcb1 (>= 2:1.8.7), но устанавливается 2:1.8.4-2+deb12u2
    Зависит: libzstd1 (>= 1.5.5), но устанавливается 1.5.4+dfsg2-5
    rccl : Зависит: libc6 (>= 2.38), но устанавливается 2.36-9+deb12u9
    Зависит: libstdc++6 (>= 13.1), но устанавливается 12.2.0-14
    rocm-gdb : Зависит: libc6 (>= 2.38), но устанавливается 2.36-9+deb12u9
    Зависит: libgmp10 (>= 2:6.3.0+dfsg), но устанавливается 2:6.2.1+dfsg1-1.1
    Зависит: libpython3.12t64 (>= 3.12.1), но он не устанавливается
    Зависит: libzstd1 (>= 1.5.5), но устанавливается 1.5.4+dfsg2-5
    rocprofiler-register : Зависит: libc6 (>= 2.38), но устанавливается 2.36-9+deb12u9
    Зависит: libstdc++6 (>= 13.1), но устанавливается 12.2.0-14
    E: Unable to correct problems, you have held broken packages.

    Стоит ли устанавливать какие-нибудь зависимости или моя видеокарта не поддерживается ROCm?
     
     
     
    spiralsugarcane
    Guest
    #4
    0
    29.11.2024 21:52:00
    Ты установил ROCm на хост? Странно. Я это сделал в новом контейнере Ubuntu 24.04, и таких сообщений у меня не было. Возможно, проблема в каком-то софте, который ты установил раньше. Ты используешь "noble" ссылку. Ты на 24.04, а не на 22.04? Мне ничего не пришлось делать, кроме как следовать инструкциям, которые у меня тут.
     
     
     
    NureddinDev
    Guest
    #5
    0
    29.11.2024 22:49:00
    Я использовал этот скрипт, а потом запустил это внутри контейнера:

    Код: `wget https://repo.radeon.com/amdgpu-install/6.2.4/ubuntu/noble/amdgpu-install_6.2.60204-1_all.deb`
    `sudo apt install ./amdgpu-install_6.2.60204-1_all.deb`
    `amdgpu-install --usecase=rocm --no-dkms`

    После этого возникла эта ошибка во время установки:

    Код: `The following packages have unmet dependencies:`
    ` hipsolver : Depends: libcholmod5 but it is not installable`
    `             Depends: libsuitesparseconfig7 but it is not installable`
    ` mesa-amdgpu-va-drivers : Depends: libva2 (>= 2.16.0) but 2.14.0-1 is to be installed or`
    `                                   libva2-amdgpu but it is not installable`
    `                          Depends: libva-drm2 (>= 2.16.0) but 2.14.0-1 is to be installed or`
    `                                   libva-amdgpu-drm2 but it is not installable`
    `                          Depends: libva-wayland2 (>= 2.16.0) but 2.14.0-1 is to be installed or`
    `                                   libva-amdgpu-wayland2 but it is not installable`
    `                          Depends: libva-x11-2 (>= 2.16.0) but 2.14.0-1 is to be installed or`
    `                                   libva-amdgpu-x11-2 but it is not installable`
    `                          Depends: libc6 (>= 2.38) but 2.35-0ubuntu3.8 is to be installed`
    `                          Depends: libdrm-amdgpu-amdgpu1 but it is not installable`
    `                          Depends: libdrm-amdgpu-radeon1 but it is not going to be installed`
    `                          Depends: libdrm2-amdgpu but it is not installable`
    `                          Depends: libelf1t64 (>= 0.142) but it is not installable`
    `                          Depends: libllvm18.1-amdgpu but it is not going to be installed`
    `                          Depends: libx11-xcb1 (>= 2:1.8.7) but 2:1.7.5-1ubuntu0.3 is to be installed`
    `                          Depends: libzstd1 (>= 1.5.5) but 1.4.8+dfsg-3build1 is to be installed`
    ` rccl : Depends: libc6 (>= 2.38) but 2.35-0ubuntu3.8 is to be installed`
    `        Depends: libstdc++6 (>= 13.1) but 12.3.0-1ubuntu1~22.04 is to be installed`
    ` rocm-gdb : Depends: libc6 (>= 2.38) but 2.35-0ubuntu3.8 is to be installed`
    `            Depends: libgmp10 (>= 2:6.3.0+dfsg) but 2:6.2.1+dfsg-3ubuntu1 is to be installed`
    `            Depends: libpython3.12t64 (>= 3.12.1) but it is not installable`
    `            Depends: libzstd1 (>= 1.5.5) but 1.4.8+dfsg-3build1 is to be installed`
    ` rocprofiler-register : Depends: libc6 (>= 2.38) but 2.35-0ubuntu3.8 is to be installed`
    `                        Depends: libstdc++6 (>= 13.1) but 12.3.0-1ubuntu1~22.04 is to be installed`
    `E: Unable to correct problems, you have held broken packages.`
     
     
     
    NureddinDev
    Guest
    #6
    0
    29.11.2024 23:24:00
    Понял, скрипт tteck – Ubuntu 22, а не 24. Я просто клонировал shell-скрипт и изменил версию на 24.4.
     
     
     
    rocketpants
    Guest
    #7
    0
    29.11.2024 23:58:00
    Не-а. Просто в контейнере.
     
     
     
    muyue
    Guest
    #8
    0
    18.12.2024 04:28:00
    Привет, spiralsugarcane, спасибо, что показал, что rocm можно использовать внутри контейнера! После твоего поста я успешно установил rocm 6.3 в контейнере Ubuntu 24.04 на хосте с Proxmox 8.3. Однако, когда я запустил rocminfo в контейнере, получил ошибку HSA_STATUS_ERROR_OUT_OF_RESOURCES. Также PyTorch не мог использовать GPU, так как torch.cuda.is_available() вернул FALSE, даже с установленной переменной окружения HSA_OVERRIDE_GFX_VERSION, установленной в 11.0.0. Не знаю, связано ли это с моей RX 7800XT, так как она не официально поддерживается в rocm. Не мог бы ты рассказать, какую GPU ты используешь?

    Редактирование 1: Я только что заметил, что ты упомянул "установить ROCm согласно официальным инструкциям, но не использовать DKMS, так как драйверы уже установлены на Proxmox по умолчанию". Это значит, что мне нужно установить amdgpu-dkms на хосте?

    Редактирование 2: Мне удалось запустить PyTorch с rocm внутри контейнера. Хост должен иметь установленный модуль DKMS.
     
     
     
    spiralsugarcane
    Guest
    #9
    0
    18.12.2024 23:41:00
    Интересно, спасибо за обновление. Пользователь rocketpants выше тоже имел такую же GPU, возможно, там есть одинаковое решение. Похоже, предустановленные драйвера в Proxmox несовместимы с твоей картой. У меня немного устаревшая Radeon VII 16GB, и драйвера в Proxmox работали прекрасно. Кстати, и ROCm, и Ollama работают без проблем, но довольно медленно, как и ожидалось для такой старой карты.
     
     
     
    yuri.karadzhov
    Guest
    #10
    0
    25.12.2024 00:08:00
    Привет, @spiralsugarcane, спасибо, что поделился своим опытом. Не мог бы ты, пожалуйста, предоставить более подробные инструкции по установке ROCm? Установил ли ты что-то конкретное для хост-машины? Что было установлено в контейнер? Какие репозитории были добавлены? Пошаговая инструкция будет очень полезной для многих людей. Спасибо заранее!
     
     
     
    yuri.karadzhov
    Guest
    #11
    0
    25.12.2024 02:35:00
    Поиграл с контейнером, но вылезла такая ошибка при попытке запуска Ollama: Код: amdgpu устройства обнаружены, но проблемы с разрешениями блокируют доступ: драйвер kfd не загружен. Если запускаешь в контейнере, не забудь добавить '--device /dev/kfd --device /dev/dri'.
     
     
     
    spiralsugarcane
    Guest
    #12
    0
    25.12.2024 10:54:00
    Привет! Я ничего не устанавливал на хост, так как драйвер amdgpu и модуль ядра уже были загружены и включены вместе с Proxmox. Если у тебя GPU, для которого по какой-то причине нужно установить конкретный драйвер, возможно, тебе потребуется использовать DKMS на хосте. Раз это контейнер, то ядро с ним разделяется, и контейнер не имеет никаких привилегий (если он непривилегированный) для установки каких-либо модулей ядра. В контейнере я установил rocm, а затем Docker. Потом запустил ollama и openwebui в Docker. Что касается проблем с правами доступа. Тебе сначала нужно передать /dev/dri/renderD*** и /dev/kfd в LXC контейнер, указав правильный uid и gid в Proxmox, как описано выше. Тебе также нужно передать те же пути к устройствам в Docker контейнер ollama. Если ты запускаешь ollama без Docker, то ничего делать не нужно. Вот мой lxc config файл, расположенный в /etc/pve/lxc:

    ```
    arch: amd64
    cores: 8
    dev0: /dev/kfd,gid=993,uid=0
    dev1: /dev/dri/renderD129,gid=44
    features: keyctl=1,nesting=1
    hostname: ollama
    memory: 32768
    net0: name=eth0,bridge=vmbr0,hwaddr=*******,ip=dhcp,type=veth
    onboot: 1
    ostype: ubuntu
    parent: start1
    rootfs: local-zfs:vm-310-disk-0,size=100G
    swap: 512
    unprivileged: 1
    ```

    Вот мой docker compose файл (мелочь, используй только docker compose, а не docker-compose):

    ```
    services:
     openWebUI:
       image: ghcr.io/open-webui/open-webui:main
       restart: always
       ports:
         - "3000:8080"
       extra_hosts:
         - "host.docker.internal:host-gateway"
       volumes:
         - /opt/docker/open-webui:/app/backend/data

     ollama:
       image: ollama/ollama:rocm
       restart: always
       devices:
         - /dev/kfd
         - /dev/dri
       ports:
         - "11434:11434"
       volumes:
         - /opt/docker/ollama:/root/.ollama
    ```
     
     
     
    yuri.karadzhov
    Guest
    #13
    0
    25.12.2024 11:25:00
    Я удалил dkms в контейнере и настроил проброс устройств. Работает! Огромное спасибо за поддержку!
     
     
     
    spiralsugarcane
    Guest
    #14
    0
    25.12.2024 11:26:00
    Отлично! Рад помочь!
     
     
     
    mr44er
    Guest
    #15
    0
    14.02.2025 10:58:00
    Подтверждаю, что инструкции работают и ollama корректно распознает GPU при запуске. Это был просто мой быстрый тест, я не копался в этом дальше и не знаю, что такое ollama на самом деле. Моя цель — запустить Stable Diffusion. Однако, мне неясно, нужно ли и почему /dev/dri/cardX (у меня их несколько, card1<->renderD128, card2<->renderD129). Я тестировал на Arch, Debian и Ubuntu, с передачей card1 и без, предварительный тест с rocminfo всегда падает: Код: Модуль ROCk загружен
    Ошибка вызова API hsa на: /long_pathname_so_that_rpms_can_package_the_debug_info/src/r­ocminfo/rocminfo.cc:1282
    Вызов вернул HSA_STATUS_ERROR_OUT_OF_RESOURCES: Runtime не смог выделить необходимые ресурсы. Эта ошибка также может возникать, когда основной runtime требует создания потоков или внутренних OS-специфических событий. Передача этой GPU (Vega64) в VM работает (и SD тоже), так что эта GPU в целом способна, но у неё, ёлки-палки, этот баг с перезагрузкой, который я надеюсь обойти с помощью LXC.
     
     
     
    spiralsugarcane
    Guest
    #16
    0
    14.02.2025 20:14:00
    Круто. Пришлось пройти только /dev/kbd и /dev/dri/renderD12*, а не /dev/dri/card*. Ты установил правильную переменную окружения в контейнере? Vega64 – это GFX9 карта https://llvm.org/docs/AMDGPUUsage.html#processors Код: echo "export HSA_OVERRIDE_GFX_VERSION=9.0.0" >> .profile
     
     
     
    mr44er
    Guest
    #17
    0
    14.02.2025 21:27:00
    Да. Пытался даже экспортировать HSA_OVERRIDE_GFX_VERSION= "9.0.0". Работает ли rocminfo в твоём LXC?
     
     
     
    spiralsugarcane
    Guest
    #18
    0
    14.02.2025 21:38:00
    Странно! Там ещё была какая-то переменная в треде, ты пробовал эти? Да, rocminfo работает. Твоя GPU поддерживается ROCm?
     
     
     
    mr44er
    Guest
    #19
    0
    14.02.2025 21:49:00
    Да, попробовал также экспортировать HSA_ENABLE_SDMA=0. Помню, что в работающей VM у меня была rocm5.7, но поверх нее ZLUDA. Так что короткий ответ — да. Возможно, мешает более новая версия или вторая GPU. Код: lspci | grep VGA
    07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c1)
    0e:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raphael (rev c1) Стоит попробовать их по отдельности...
     
     
     
    mr44er
    Guest
    #20
    0
    14.02.2025 23:44:00
    Нет, нужно и то, и другое одновременно, и это работает!
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры