溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何從Docker映像安裝適用于Linux*的OpenVINO?工具套件

發(fā)布時間:2021-11-26 13:45:34 來源:億速云 閱讀:157 作者:小新 欄目:云計算

這篇文章主要為大家展示了“如何從Docker映像安裝適用于Linux*的OpenVINO?工具套件”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何從Docker映像安裝適用于Linux*的OpenVINO?工具套件”這篇文章吧。

英特爾? Distribution of OpenVINO? 工具套件可以快速部署可媲美人類視覺的應用程序和解決方案。該工具套件基于復雜神經網絡(CNN),通過英特爾? 硬件擴展了計算機視覺 (CV) 工作負載,從而最大化性能。英特爾? Distribution of OpenVINO? 工具套件中包含了英特爾? Deep Learning Deployment Toolkit。

本指南提供了通過適用于 Linux* 的英特爾? Distribution of OpenVINO? 工具套件創(chuàng)建 Docker* 映像,以及進一步進行安裝的步驟。

系統要求

目標操作系統

  • Ubuntu* 18.04 長期支持 (LTS),64 位

主機操作系統

  • 已安裝 GPU 驅動程序和受 GPU 驅動程序支持的 Linux 內核的 Linux

將 Docker* 映像用于 CPU

  • 內核向所有容器報告與本地應用程序一樣的信息,如 CPU 和內存信息。

  • 所有主機進程可用的指令對于容器中的進程均可用,包括 AVX2、AVX512 等。不存在限制。

  • Docker* 不使用虛擬化或仿真。Docker* 中的進程只是一種常規(guī) Linux 進程,但它在內核水平上與其外部世界隔離。性能損失很小。

為 CPU 構建 Docker* 映像

如要構建 Docker 映像,請創(chuàng)建一個包含為創(chuàng)建 OpenVINO 工具套件安裝映像所必需的定義變量和命令的Dockerfile。

請使用以下樣本作為模板創(chuàng)建您的Dockerfile

單擊以展開/折疊

注意:請將package_url自變量中通往英特爾? Distribution of OpenVINO? 工具套件的直接鏈接替換為最新版本。您可以在完成注冊后,從英特爾? Distribution of OpenVINO? 工具套件下載頁面復制該鏈接。請在您的瀏覽器中右鍵單擊 Linux 版已下載頁面中的離線安裝程序按鈕,然后按下復制鏈接地址。

您可以通過修改silent.cfg文件中的COMPONENTS參數來選擇將安裝哪些 OpenVINO 組件。例如,如果只準備為推斷引擎安裝 CPU 運行時,請在silent.cfg中設置COMPONENTS=intel-openvino-ie-rt-cpu__x86_64。

要獲得可安裝組件的完整列表,請從已解壓的 OpenVINO? 工具套件包中運行./install.sh --list_components命令。

要為 CPU 構建 Docker* 映像,請運行以下命令:

docker build . -t <image_name> \

--build-arg HTTP_PROXY=<http://your_proxy_server.com:port> \

--build-arg HTTPS_PROXY=<https://your_proxy_server.com:port>

為 CPU 運行 Docker* 映像

使用以下命令運行映像:

docker run -it <image_name>

將 Docker* 映像用于 GPU

為 GPU 構建 Docker* 映像

先決條件:

  • 默認情況下 GPU 在容器中不可用,您必須先將其附加至容器。

  • 內核驅動程序必須已安裝在主機上。

  • 英特爾? OpenCL? 運行時包必須被包含在容器中。

  • 在容器中,用戶必須位于video組中。

在 GPU 上構建 Docker* 映像之前,請先將以下命令添加到上述 CPU Dockerfile示例中:

WORKDIR /tmp/opencl

RUN usermod -aG video openvino

RUN apt-get update && \

apt-get install -y --no-install-recommends ocl-icd-libopencl1 && \

rm -rf /var/lib/apt/lists/* && \

curl -L "https://github.com/intel/compute-runtime/releases/download/19.41.14441/intel-gmmlib_19.3.2_amd64.deb" --output "intel-gmmlib_19.3.2_amd64.deb" && \

curl -L "https://github.com/intel/compute-runtime/releases/download/19.41.14441/intel-igc-core_1.0.2597_amd64.deb" --output "intel-igc-core_1.0.2597_amd64.deb" && \

curl -L "https://github.com/intel/compute-runtime/releases/download/19.41.14441/intel-igc-opencl_1.0.2597_amd64.deb" --output "intel-igc-opencl_1.0.2597_amd64.deb" && \

curl -L "https://github.com/intel/compute-runtime/releases/download/19.41.14441/intel-opencl_19.41.14441_amd64.deb" --output "intel-opencl_19.41.14441_amd64.deb" && \

curl -L "https://github.com/intel/compute-runtime/releases/download/19.41.14441/intel-ocloc_19.04.12237_amd64.deb" --output "intel-ocloc_19.04.12237_amd64.deb" && \

dpkg -i /tmp/opencl/*.deb && \

ldconfig && \

rm /tmp/opencl

要為 GPU 構建 Docker* 映像,請運行以下命令:

docker build . -t <image_name> \

--build-arg HTTP_PROXY=<http://your_proxy_server.com:port> \

--build-arg HTTPS_PROXY=<https://your_proxy_server.com:port>

為 GPU 運行 Docker* 映像

如要使 GPU 在容器中可用,請使用--device /dev/dri選項將 GPU 附加到容器,然后運行容器:

docker run -it --device /dev/dri <image_name>

將 Docker* 映像用于英特爾? Movidius? 神經電腦棒和英特爾? 神經電腦棒 2 的步驟

為英特爾? Movidius? 神經電腦棒和英特爾? 神經電腦棒 2 構建 Docker* 映像的步驟

使用與 CPU 相同的步驟構建 Docker 映像。

為英特爾? Movidius? 神經電腦棒和英特爾? 神經電腦棒 2 運行 Docker* 映像的步驟

已知的限制:

  • 英特爾? Movidius? 神經電腦棒設備在執(zhí)行期間會改變 VendorID 和 DeviceID,并且每一次都會將主機系統作為全新設備來查找。這意味著它無法像往常一樣被載入。

  • UDEV 事件在默認情況下無法被向前傳送到容器,它不了解設備的重新連接。

  • 僅支持每個主機一臺設備。

使用以下選項之一來運行適用于英特爾 Movidius 神經電腦棒的可能的解決方案:

  • 解決方案 #1

    1. 通過重新構建在 Docker* 映像中無需 UDEV 支持的libusb,來去除 UDEV(將以下命令添加到上述適用于 CPU 的Dockerfile示例中):

      RUN usermod -aG users openvino

      WORKDIR /opt

      RUN curl -L https://github.com/libusb/libusb/archive/v1.0.22.zip --output v1.0.22.zip && \

      unzip v1.0.22.zip

       

      WORKDIR /opt/libusb-1.0.22

      RUN ./bootstrap.sh && \

      ./configure --disable-udev --enable-shared && \

      make -j4

      RUN apt-get update && \

      apt-get install -y --no-install-recommends libusb-1.0-0-dev=2:1.0.21-2 && \

      rm -rf /var/lib/apt/lists/*

       

      WORKDIR /opt/libusb-1.0.22/libusb

      RUN /bin/mkdir -p '/usr/local/lib' && \

      /bin/bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' && \

      /bin/mkdir -p '/usr/local/include/libusb-1.0' && \

      /usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' && \

      /bin/mkdir -p '/usr/local/lib/pkgconfig'

       

      WORKDIR /opt/libusb-1.0.22/

      RUN /usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig' && \

      ldconfig

    2. 運行 Docker* 映像:

  • 解決方案 #2:在特權模式下運行容器,以主機身份啟用 Docker 網絡配置,并將所有設備載入容器:

    docker run --privileged -v /dev:/dev --network=host <image_name>

注意

  • 它不安全

  • 與 Kubernetes* 和其他使用編排和私有網絡的工具發(fā)生沖突

docker run --device-cgroup-rule='c 189:* rmw' -v /dev/bus/usb:/dev/bus/usb <image_name>

將 Docker* 映像用于采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design

為采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 構建 Docker* 映像

如要在采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 上將 Docker 容器用于推斷:

  1. 在主機上設置環(huán)境,這將用于運行 Docker*。需要執(zhí)行hddldaemon,它負責 HDDL 插件和主板之間的通信。如要了解如何設置環(huán)境(OpenVINO 包必須已預先安裝),請參見采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 配置指南。

  2. 準備 Docker* 映像。作為基礎映像,您可以使用為 CPU 構建 Docker 映像一節(jié)中的映像。如要將其用于采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 上的推斷,您需要通過添加以下依賴項來重建映像:

    RUN apt-get update && \

    apt-get install -y --no-install-recommends \

    libboost-filesystem1.65-dev=1.65.1+dfsg-0ubuntu5 \

    libboost-thread1.65-dev=1.65.1+dfsg-0ubuntu5 \

    libjson-c3=0.12.1-1.3 libxxf86vm-dev=1:1.1.4-1 && \

    rm -rf /var/lib/apt/lists/*

  3. 使用以下命令在主機上用一個單獨的終端進程運行hddldaemon

    $HDDL_INSTALL_DIR/hddldaemon

為采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 運行 Docker* 映像

要為采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 運行已構建好的 Docker* 映像,請使用以下命令:

docker run --device=/dev/ion:/dev/ion -v /var/tmp:/var/tmp -ti <image_name>

注意

  • 設備/dev/ion需要先被共享,才能在插件、hddldaemon和內核中使用離子緩沖器。

  • 由于獨立的推斷任務共享相同的 HDDL 服務通信接口(該服務會在/var/tmp中創(chuàng)建 mutexes 和插槽文件),因此需要載入/var/tmp并在它們中共享。

在某些案例中,離子驅動程序未啟用(例如,因為更新的內核版本或 iommu 不兼容)。lsmod | grep myd_ion返回的輸出為空。要解決該問題,請使用以下命令:

docker run --rm --net=host -v /var/tmp:/var/tmp –ipc=host -ti <image_name>

注意

  • 在構建 Docker 映像時,在請在 docker 文件中創(chuàng)建用戶,使其 UID 和 GID 與在主機上運行 hddldaemon 的用戶相同。

  • 以該用戶的身份在 Docker 中運行應用程序。

  • 或者,您可以在主機上以根用戶的身份啟動 hddlaemon,但我們不推薦這種方法。

將 Docker* 映像用于 FPGA

為 FPGA 構建 Docker* 映像

默認情況下 FPGA 卡在容器中不可用,但它可以在以下先決條件下被載入其中:

  • FPGA 設備已為運行推斷準備就緒。

  • FPGA 比特流已通過 PCIe 推送至設備。

如要為 FPGA 構建 Docker* 映像:

  1. 在以下Dockerfile中設置額外的環(huán)境變量:

    ENV CL_CONTEXT_COMPILER_MODE_INTELFPGA=3

    ENV DLA_AOCX=/opt/intel/openvino/a10_devkit_bitstreams/2-0-1_RC_FP11_Generic.aocx

    ENV PATH=/opt/altera/aocl-pro-rte/aclrte-linux64/bin:$PATH

  2. 安裝以下 UDEV 規(guī)則:

    cat <<EOF > fpga.rules

    KERNEL=="acla10_ref*",GROUP="users",MODE="0660"

    EOF

    sudo cp fpga.rules /etc/udev/rules.d/

    sudo udevadm control --reload-rules

    sudo udevadm trigger

    sudo ldconfig

    確保容器用戶已被添加到與主機 GID 相同的“用戶”組中。

為 FPGA 運行 Docker* 容器

如要為 FPGA 運行已構建的 Docker* 容器,請使用以下命令:

docker run --rm -it \

--mount type=bind,source=/opt/intel/intelFPGA_pro,destination=/opt/intel/intelFPGA_pro \

--mount type=bind,source=/opt/altera,destination=/opt/altera \

--mount type=bind,source=/etc/OpenCL/vendors,destination=/etc/OpenCL/vendors \

--mount type=bind,source=/opt/Intel/OpenCL/Boards,destination=/opt/Intel/OpenCL/Boards \

--device /dev/acla10_ref0:/dev/acla10_ref0 \

<image_name>

示例

  • ubuntu18_runtime dockerfile - 可以用于構建 OpenVINO? 運行時映像,其中包含的將 OpenVINO? 用于生產環(huán)境中時所必需的依賴項最少。

  • ubuntu18_dev dockerfile - 可以用于構建 OpenVINO? 開發(fā)人員映像,其中包含完整的 OpenVINO? 包,以便在開發(fā)環(huán)境中使用。

以上是“如何從Docker映像安裝適用于Linux*的OpenVINO?工具套件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI