Контейнеры можно использовать для выполнения операций логического вывода с ускорением на GPU или с виртуальными устройствами.
Необходимые условия:
Используйте ядро Linux с моделями GPU, поддерживаемыми вашим интегрированным или дискретным GPU. Проверьте документацию на https://dgpu-docs.intel.com/driver/kernel-driver-types.html. На хосте Linux убедитесь, что доступно символьное устройство /dev/dri.
В подсистеме Windows для Linux (WSL2) следуйте рекомендациям на https://docs.openvino.ai/nightly/openvino_docs_install_guides_configurations_for_intel_gpu.html#. Обратите внимание, что в WLS2 должно присутствовать символьное устройство /dev/drx
.
Образ Docker для контейнера должен включать драйверы среды выполнения GPU, как описано на https://docs.openvino.ai/nightly/openvino_docs_install_guides_configurations_for_intel_gpu.html# .
Пока хост и предварительно настроенный движок Docker работают, используйте параметры запуска docker, как описано ниже.
Приведённая ниже команда должна сообщать об устройствах CPU и GPU, доступных для выполнения логического вывода:
export IMAGE=openvino/ubuntu20_dev:2023.0.0
docker run -it --device /dev/dri --group-add=$(stat -c \"%g\" /dev/dri/render* ) $IMAGE ./samples/cpp/samples_bin/hello_query_device
--device /dev/dri
— передаёт устройство GPU в контейнер.
--group-add
— добавляет контекст безопасности к команде контейнера с разрешением на использование устройства GPU.
В WSL2 используйте команду для запуска контейнера:
export IMAGE=openvino/ubuntu20_dev:2023.0.0
docker run -it --device=/dev/dxg -v /usr/lib/wsl:/usr/lib/wsl $IMAGE ./samples/cpp/samples_bin/hello_query_device
--device /dev/dri
— передаёт виртуальное устройство GPU в контейнер.
-v /usr/lib/wsl:/usr/lib/wsl
— монтирует необходимые библиотеки WSL в контейнер.
Пример использования:
Запустите приложение для тестирования с использованием ускорителя GPU с параметром -use_device_mem
, демонстрирующим логический вывод без копирования между памятью CPU и GPU:
docker run --device /dev/dri --group-add=$(stat -c \"%g\" /dev/dri/render* ) $IMAGE bash -c " \
curl -O https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.xml && \
curl -O https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.bin && \
./samples/cpp/samples_bin/benchmark_app -m resnet50-binary-0001.xml -d GPU -use_device_mem -inference_only=false"
В приложении для тестирования параметр -use_device_mem
использует OV::RemoteTensor в качестве входного буфера. Он демонстрирует выигрыш без копирования данных между хостом и устройством GPU.
Запустите приложение для тестирования, используя как GPU, так и CPU. Загрузка будет распределена по обоим типам устройств:
docker run --device /dev/dri --group-add=$(stat -c \"%g\" /dev/dri/render* ) $IMAGE bash -c " \
curl -O https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.xml && \
curl -O https://storage.openvinotoolkit.org/repositories/open_model_zoo/2023.0/models_bin/1/resnet50-binary-0001/FP16-INT1/resnet50-binary-0001.bin && \
./samples/cpp/samples_bin/benchmark_app -m resnet50-binary-0001.xml -d MULTI:GPU,CPU"
Также проверьте:
Работа с контейнерами OpenVINO
Генерация файлов Dockerfile и сборка образов в инструментах Docker_CI
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )