From 9d4b778234011eaa0fffc076a6b960fac31a414b Mon Sep 17 00:00:00 2001 From: Kate Generalova Date: Wed, 9 Dec 2020 16:04:12 +0300 Subject: [PATCH] [DOC] add Docker on Windows GPU infer instruction (#3492) (#3531) * odc: add Docker on Windows GPU infer instruction * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Kate Generalova * Removed an extra colon * Update docs/install_guides/installing-openvino-docker-windows.md Co-authored-by: Alina Alborova Co-authored-by: Alina Alborova --- .../installing-openvino-docker-windows.md | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/docs/install_guides/installing-openvino-docker-windows.md b/docs/install_guides/installing-openvino-docker-windows.md index 04295a90159..c87015cfa89 100644 --- a/docs/install_guides/installing-openvino-docker-windows.md +++ b/docs/install_guides/installing-openvino-docker-windows.md @@ -66,7 +66,7 @@ In case of proxy issues, please use an offline installer for Build Tools (follow ## Run the Docker* Image for CPU -To install the OpenVINO toolkit from the prepared Docker image, run the image with the following command (currently support only CPU target): +To install the OpenVINO toolkit from the prepared Docker image, run the image with the following command: ~~~ docker run -it --rm ~~~ @@ -76,6 +76,64 @@ If you want to try some demos then run image with the root privileges (some addi docker run -itu ContainerAdministrator --rm cmd /S /C "cd deployment_tools\demo && demo_security_barrier_camera.bat -d CPU -sample-options -no_show" ~~~ +## Build and Run the Docker* Image for GPU + +GPU Acceleration in Windows containers feature requires to meet Windows host, OpenVINO toolkit and Docker* requirements: +* [Windows requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/gpu-acceleration): + * The container host must be running Windows Server 2019 or Windows 10 of version 1809 or higher. + * The container base image must be `mcr.microsoft.com/windows:1809` or higher. Windows Server Core and Nano Server container images are not currently supported. + * The container host must be running Docker Engine 19.03 or higher. + * The container host must have GPU running display drivers of version WDDM 2.5 or higher. +* [OpenVINO™ GPU requirement](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html#Install-GPU): + * Intel Graphics Driver for Windows of version 15.65 or higher. +* [Docker isolation mode requirement](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container): + * Windows host and container version tags must match. + * [Windows host and container isolation process support](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) + +## Build a Docker* Image for Your Host System + +1. Reuse one of [available Dockerfiles](https://github.com/openvinotoolkit/docker_ci/tree/master/dockerfiles). You can also use your own Dockerfile. +2. Check your [Windows host and container isolation process compatibility](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility). +3. Find the appropriate Windows container base image on [DockerHub*](https://hub.docker.com/_/microsoft-windows) and set up your host/container version in the `FROM` Dockerfile instruction. + For example, in [openvino_c_dev_2021.dockerfile](https://github.com/openvinotoolkit/docker_ci/blob/master/dockerfiles/winserver2019/openvino_c_dev_2021.dockerfile), change: + ~~~ + FROM mcr.microsoft.com/windows/servercore:ltsc2019 AS ov_base + ~~~ + to + ~~~ + FROM mcr.microsoft.com/windows:20H2 + ~~~ +4. Build the Docker image + ~~~ + docker build --build-arg package_url= -f -t . + ~~~ +5. Copy `OpenCL.dll` from your `C:\Windows\System32` host folder to any `temp` directory: + ~~~ + mkdir C:\tmp + copy C:\Windows\System32\OpenCL.dll C:\tmp + ~~~ + +## Run the Docker* Image for GPU + +1. To try inference on a GPU, run the image with the following command: + ~~~ + docker run -it --rm -u ContainerAdministrator --isolation process --device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599 -v C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_518f2921ba495409:C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_518f2921ba495409 -v C:\tmp:C:\tmp + ~~~ + where + * `--device class/5B45201D-F2F2-4F3B-85BB-30FF1F953599` is a reserved interface class GUID for a GPU device. + * `C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_518f2921ba495409` is the path to OpenCL driver home directory. To find it on your PC, run the `C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_*` regular expression. + * `C:\tmp` is the folder with the copy of `OpenCL.dll` from your `C:\Windows\System32` host folder. + +2. Copy `OpenCL.dll` to the `C:\Windows\System32` folder inside the container and set appropriate registry entry. Now you can run inference on a GPU device: + ~~~ + copy C:\tmp\OpenCL.dll C:\Windows\System32\ && reg add "HKLM\SOFTWARE\Khronos\OpenCL\Vendors" /v "C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_518f2921ba495409\ocl\bin\x64\intelocl64.dll" /t REG_DWORD /d 0 + ~~~ +3. For example, run the `demo_security_barrier_camera` demo with the command below: + ~~~ + cd bin && setupvars.bat && cd ../ && cd deployment_tools\demo && demo_security_barrier_camera.bat -d GPU -sample-options -no_show + ~~~ + > **NOTE**: Addittional third-party dependencies will be installed. + ## Troubleshooting If you got proxy issues, please setup proxy settings for Docker. See the Proxy section in the [Install the DL Workbench from Docker Hub* ](@ref workbench_docs_Workbench_DG_Install_from_Docker_Hub) topic.