Для использования графического процессора (GPU) и создания пользовательских слоёв в интегрированной графике Intel®, необходимы компоненты драйвера Intel® Graphics Compute Runtime for OpenCL™.
Драйвер установлен в образе Docker OpenVINO™, но если у вас на хосте установлена Ubuntu 20.04, то его необходимо активировать в контейнере для пользователя без прав администратора.
Чтобы получить доступ к возможностям GPU, вам необходимо иметь правильные разрешения на хост-компьютере и в контейнере Docker. Выполните следующие команды, чтобы вывести список групп, которым принадлежат права на рендеринг на вашем хосте:
$ stat -c "group_name=%G group_id=%g" /dev/dri/render*
group_name=render group_id=134
В образах OpenVINO™ Docker нет группы рендеринга для пользователей openvino без прав администратора, поскольку группа рендеринга не имеет строгого идентификатора группы, в отличие от видеогруппы. Выберите один из следующих вариантов, чтобы настроить доступ к устройству GPU из контейнера.
Чтобы запустить контейнер OpenVINO с пользователем без прав администратора (openvino) с доступом к устройству GPU, необходимо создать пользователя без прав администратора с тем же идентификатором, что и у пользователя openvino внутри контейнера: По умолчанию пользователь openvino имеет идентификатор пользователя #1000. Создайте пользователя без прав администратора, например, host_openvino, на хосте с тем же идентификатором пользователя и доступом к группам video, render, docker:
$ useradd -u 1000 -G users,video,render,docker host_openvino
Теперь вы можете использовать контейнер OpenVINO с доступом к GPU под пользователем без прав администратора.
$ docker run -it --rm --device /dev/dri <image_name>
Чтобы запустить контейнер OpenVINO как пользователь без прав администратора с доступом к устройству GPU, укажите идентификатор группы рендеринга с вашего хоста:
$ docker run -it --rm --device /dev/dri --group-add=<render_group_id_on_host> <image_name>
Например, получите идентификатор группы рендеринга на своём хосте:
$ docker run -it --rm --device /dev/dri --group-add=$(stat -c "%g" /dev/dri/render*) <image_name>
Теперь вы можете использовать контейнер с доступом к GPU под пользователем без прав администратора.
Чтобы запустить контейнер OpenVINO от имени пользователя root с доступом к устройству GPU, используйте следующую команду:
$ docker run -it --rm --user root --device /dev/dri --name my_container <image_name>
Проверьте группы для устройства GPU в контейнере:
$ ls -l /dev/dri/
Вывод должен выглядеть следующим образом:
crw-rw---- 1 root video 226, 0 Feb 20 14:28 card0
crw-rw---- 1 root 134 226, 128 Feb 20 14:28 renderD128
Создайте группу render в контейнере с тем же идентификатором группы, что и на вашем хосте:
$ addgroup --gid 134 render
Проверьте группы для устройства GPU в контейнере:
$ ls -l /dev/dri/
Вывод должен выглядеть следующим образом:
crw-rw---- 1 root video 226, 0 Feb 20 14:28 card0
crw-rw---- 1 root render 226, 128 Feb 20 14:28 renderD128
Добавьте пользователя без прав администратора в группу render:
$ usermod -a -G render openvino
$ id openvino
Убедитесь, что теперь группа содержит пользователя:
uid=1000(openvino) gid=1000(openvino) groups=1000(openvino),44(video),100(users),134(render)
Затем выполните повторный вход от имени пользователя без прав администратора:
$ su openvino
Теперь вы можете использовать контейнер с доступом к GPU под пользователем без прав администратора или сохранить этот контейнер как образ и отправить его в свой реестр. Откройте другой терминал и выполните следующие команды:
$ docker commit my_container my_image
$ docker run -it --rm --device /dev/dri --user openvino my_image
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )