如何从OpenVINO™的主分支构建Python wheel package?

目录

什么是wheel package?

如果有稳定版本,为什么我需要构建主分支?

如何编译OpenVINO™并构建Python包?分步演练

1. 设置Docker

2. 克隆存储库

3. 安装构建依赖项

4. 编译源代码

在目标计算机上使用新包

引用

资源


什么是wheel package

wheel是一个Python生态系统组件,可简化包安装。它在包分发过程中提供了更快的安装时间和更高的可靠性。该格式包含的文件和元数据只需移动到要安装的目标系统上的正确位置。如果你使用pip来安装一个Python包,它很可能是一个wheel package。我们想制作一个.whl文件以便于安装。

如果有稳定版本,为什么我需要构建主分支?

有时,出于以下原因,需要使用前沿构建:

  1. 即使在稳定版本中也存在错误。如果您需要这些修复并且不能等到下一个版本,唯一的解决方案是构建主分支。
  2. 你需要一个已经实现但正在等待正式版本的新功能——再次构建主分支。
  3. 你的资源是有限的。因此,您需要一个仅包含所需模块的自定义包—自定义编译并构建主分支。
  4. 因为它是开源的,你可以DYI。

如何编译OpenVINO™并构建Python包?分步演练

要构建OpenVINO™工具包,您可以使用干净的Ubuntu 20.04。为避免依赖项问题,我们建议将Docker与现有操作系统环境配合使用。

让我们开始吧。

1. 设置Docker

第一步是安装Docker。按照官方Docker文档适用于Linux的安装后中的说明解决权限问题。我们还建议您为8核计算机分配至少8GBRAM。如果运行编译错误,请增加RAM大小并重新运行脚本。安装和配置过程完成后,让我们检查Docker是否正常工作。

docker run hello-world

你已准备好下载并运行Ubuntu容器。您可以使用18.0420.04。但是,请注意,在不久的将来,对Ubuntu 18.04的支持将被放弃。

docker pull ubuntu:20.04
docker run -it ubuntu:20.04

您现在在新的Ubuntu 20.04容器中!此阶段的最后一步是在Docker中安装gitsudo,并将目录更改为/opt

apt update
apt install git sudo
cd /opt

以下所有步骤都应在您所在的容器中运行。

2. 克隆存储库

下一步是克隆存储库和子存储库。OpenVINO™使用 oneDNNOpenCV等软件包,在结帐期间,您将从中检索最新的源代码。有许多子模块,因此请确保使用--recurse-submodules标志运行。这可能需要一段时间,具体取决于您的互联网连接。

git clone --recurse-submodules --single-branch --branch=master https://github.com/openvinotoolkit/openvino.git

3. 安装构建依赖项

有一个有用的脚本,但它不安装Python的依赖项,因此需要额外的步骤。

cd openvino
./install_build_dependencies.sh
apt install cython3
pip3 install --upgrade pip
pip3 install -r src/bindings/python/wheel/requirements-dev.txt

如果要构建GPU插件(支持集成GPU),则必须为OpenCL安装计算运行时。如果您看到任何错误,请参阅此处的说明。

apt install intel-opencl-icd

4. 编译源代码

您的环境现已准备就绪,您可以在启用Python和轮子选项的情况下进行配置和运行cmake。这将创建轮子和可用于发布的所有其他C++二进制文件。

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DENABLE_SYSTEM_PUGIXML=OFF -DENABLE_WHEEL=ON ..

确保显示以下选项,指示将构建CPUGPUVPU的插件,以及Python支持(在本例中为Python 3.8.10)。要针对其他版本的Python进行编译,请使用其他选项-DPYTHON_EXECUTABLE-DPYTHON_LIBRARY-DPYTHON_INCLUDE_DIR选项。有关更多信息,请参阅此处

使用尽可能多的线程运行make,并等待1530分钟(具体取决于您的计算机)。

make --jobs=$(nproc --all)

极少数情况下,可能会出现操作系统终止编译的情况。如果您遇到这种情况(如下所示),请同时增加您的RAMmake减少作业。

一切准备就绪后,您可以在build文件夹下的wheels目录中找到wheel包。运行时包和开发包如下所示。

包位于容器中。您需要做的最后一件事是将它们复制到您的计算机。按Ctrl+P,然后按Ctrl+Q退出容器而不停止它。然后运行docker ps以获取容器的ID并将文件复制到主机。

docker ps -a
docker cp <container_id>:/opt/openvino/build/wheels/openvino_dev-2022.3.0–000-py3-none-any.whl .
docker cp <container_id>:/opt/openvino/build/wheels/openvino-2022.3.0–000-cp38-cp38-manylinux_2_31_x86_64.whl .

最后,您已准备好使用OpenVINO™前沿!

在目标计算机上使用新包

创建一个新的虚拟环境并在其中安装openvino-dev。您应该使用编译OpenVINO™的相同版本的PythonUbuntu OS

python3.8 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install openvino-2022.3.0–000-cp38-cp38-manylinux_2_31_x86_64.whl 
pip install openvino_dev-2022.3.0–000-py3-none-any.whl

让我们运行一个基准测试,看看是否一切正常。让它成为在CPU上运行的 Open Model Zoo 中的人员检测模型。您可能还需要使用apt进行libgl-dev安装。

omz_downloader --name person-detection-0200
benchmark_app -m intel/person-detection-0200/FP16-INT8/person-detection-0200.xml -d CPU -t 10

它有效!所以,现在你已经准备好导入OpenVINO™并在Python中运行你的代码(在本例中为Python 3.8.10)。

Python 3.8.10 (default, Jun 22 2022, 20:18:18) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import openvino
>>>

免责声明:虽然您能够构建和运行OpenVINO™的前沿,但请注意,主分支不稳定,可能存在未识别的错误。此编译是在000f5d8049fd45ddb8b070b0d7a892b2a14ebe11提交之上完成的。

引用

Solomon Brad,什么是Python轮子,你为什么要关心?可用地址:What Are Python Wheels and Why Should You Care? – Real Python

Docker团队,在Ubuntu上安装Docker引擎。可用地址: Install Docker Engine on Ubuntu 

Docker TeamLinux的安装后步骤。可用地址: Linux post-installation steps for Docker Engine 

Docker团队,具有内存、CPUGPU的运行时选项。可用地址:Runtime options with Memory, CPUs, and GPUs

英特尔,GPGPU安装Ubuntu 20.04指南。可用地址:https://dgpu-docs.intel.com/installation-guides/ubuntu/ubuntu-focal.html

OpenVINO团队,为Linux构建。可用地址:BuildingForLinux · openvinotoolkit/openvino Wiki · GitHub

OpenVINO团队,Open Model Zoo。可用地址:GitHub - openvinotoolkit/open_model_zoo: Pre-trained Deep Learning models and demos (high quality and extremely fast)

资源

本文最初发表于 https://medium.com/openvino-toolkit/how-to-build-a-python-wheel-package-from-the-main-branch-of-openvino-e2acede2bcce

https://www.codeproject.com/Articles/5341636/How-to-build-a-Python-wheel-package-from-the-main

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值