# Проброс или шеринг GPU в LXC

**URL:** <https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232>\
**Category:** Железо\
**Created:** [03.Ноябрь.2025 15:11:07 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232 "2025-11-03T15:11:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![m0rtal](https://forum.samohosting.ru/letter_avatar_proxy/v4/letter/m/96bed5/32.png) [@m0rtal](https://forum.samohosting.ru/u/m0rtal)\
**Post date:** [03.Ноябрь.2025 15:11:07 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232/1 "2025-11-03T15:11:07Z")

</div>

Поднимаю ollama в LXC через helper scripts ([Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=ollama))  
В сервере торчит безхозная 1050Ti  
Как сделать так, чтобы она была доступна в контейнере для ускорения работы LLM?

---

<div class="post-metadata">

**Author:** ![KRom](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/krom/32/362_2.png) [@KRom](https://forum.samohosting.ru/u/KRom)\
**Post date:** [03.Ноябрь.2025 18:06:04 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232/2 "2025-11-03T18:06:04Z")

</div>

Недавно ставил оттуда openwebui и скрипт все сам сделал, подозреваю, что ollama это тоже должен делать

---

<div class="post-metadata">

**Author:** ![Burzhui34](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/burzhui34/32/31_2.png) [@Burzhui34](https://forum.samohosting.ru/u/Burzhui34)\
**Post date:** [04.Ноябрь.2025 02:11:43 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232/3 "2025-11-04T02:11:43Z")

</div>

Я свою 3060 прокинул по этому гайду: [https://www.youtube.com/watch?v=Met9pEfxsF8](https://www.youtube.com/watch?v=Met9pEfxsF8)

---

<div class="post-metadata">

**Author:** ![m0rtal](https://forum.samohosting.ru/letter_avatar_proxy/v4/letter/m/96bed5/32.png) [@m0rtal](https://forum.samohosting.ru/u/m0rtal)\
**Post date:** [09.Ноябрь.2025 08:09:28 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232/4 "2025-11-09T08:09:28Z")

</div>

Да, помогло. Единственное только не разобрался - это только в один LXC на хосте можно сделать? Просто в контейнере с ollama всё работает как часы, а в аналогичном с jupyter даже дрова не ставятся, вылетает по ошибке.

---

<div class="post-metadata">

**Author:** ![tinderbox](https://forum.samohosting.ru/user_avatar/forum.samohosting.ru/tinderbox/32/1307_2.png) [@tinderbox](https://forum.samohosting.ru/u/tinderbox)\
**Post date:** [11.Ноябрь.2025 13:09:45 UTC](https://forum.samohosting.ru/t/probros-ili-shering-gpu-v-lxc/1232/5 "2025-11-11T13:09:45Z")

</div>

Люди, которые работают с docker+gpu знают про nvidia-container-toolkit ([Overview — NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html)). Но если внимательно покопаться по докам выше, то можно найти примечательную картинку:

 ![image](https://forum.samohosting.ru/uploads/default/original/2X/3/358eacdd1b687529586d035a13e6f7ed9ec7537d.png)  
Лежит вот тут [Architecture Overview — NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/arch-overview.html)

Но нормальных инструкций по тому как скрестить lxc+nvidia container toolkit нет.

### Исправляем

Из базового пакета `lxc-pve` при установке Proxmox устанавливается файл `/usr/share/lxc/hooks/nvidia`:

```auto
ls -al /usr/share/lxc/hooks/nvidia
-rwxr-xr-x 1 root root 7379 сен 2 11:08 /usr/share/lxc/hooks/nvidia

```

который и творит всю магию по работе с карточками. Но его надо “включить”. Для этого смотрим какие конфиги заданы:

```auto
ls -al /usr/share/lxc/config/common.conf.d
итого 32
drwxr-xr-x 2 root root 4096 ноя 10 20:03 .
drwxr-xr-x 4 root root 12288 ноя 10 20:03 ..
-rw-r--r-- 1 root root 103 июн 10 11:44 00-lxcfs.conf
-rw-r--r-- 1 root root 190 сен 15 20:24 01-pve.conf

```

Смотрим номер последнего правила и делаем:

```auto
sudo tee /usr/share/lxc/config/common.conf.d/02-nvidia.conf <<< 'lxc.hook.mount = /usr/share/lxc/hooks/nvidia'

```

Данная конфигурация говорит о том, что при запуске контейнера необходимо запускать хук nvidia.

Далее начинается самое не приятное: надо в конфигурации необходимых контейнеров **руками** указать GPU и capabilites используемые карточкой.  
Например:

```auto
cat /etc/pve/lxc/135.conf
arch: amd64
.....
unprivileged: 1
lxc.environment: NVIDIA_VISIBLE_DEVICES=GPU-697224d8-d5cc-84e8-32c3-1133b6ca6a3b
lxc.environment: NVIDIA_DRIVER_CAPABILITIES=compute,utility

```

Необходимо задать две переменные окружения - `NVIDIA_VISIBLE_DEVICES` и `NVIDIA_DRIVER_CAPABILITIES` (также как и у `docker run -e NVIDIA_VISIBLE_DEVICES=...` ).  
Capabilities смотрим в документации [Specialized Configurations with Docker — NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/docker-specialized.html#driver-capabilities) (не смотрите что для докера - под капотом используется одно и тоже).  
Если несколько GPU, то можно посмотреть через `nvidia-container-cli info` UUID’ы и номера (индексы):

```auto
nvidia-container-cli info
NVRM version: 580.105.08
CUDA version: 13.0

Device Index: 0
Device Minor: 0
Model: NVIDIA GeForce RTX 3060
Brand: GeForce
GPU UUID: GPU-697224d8-d5cc-84e8-32c3-1133b6ca6a3b
Bus Location: 00000000:03:00.0
Architecture: 8.6

Device Index: 1
Device Minor: 1
Model: NVIDIA GeForce RTX 4060 Ti
Brand: GeForce
GPU UUID: GPU-6193d5fd-1fa7-f5de-26f9-b87bd9bc60e4
Bus Location: 00000000:04:00.0
Architecture: 8.9

```

и использовать их. Например прокидывать по индексам `NVIDIA_VISIBLE_DEVICES=0,3,6` или по UUID `NVIDIA_VISIBLE_DEVICES=GPU-6972....,GPU-4532324`. Если в наличии только один GPU, то можно просто `NVIDIA_VISIBLE_DEVICES=all`.

Примущество данного подхода - не надо внутри контейнера ставить драйвера как во всех инструкциях пишут (но на хостовой системе естественнно должны быть), при обновлении драйверов на хостовой системе не надо внутри контейнера ничего делать.  
Недостаток - правки переменных окружения - вручную.
