在Ubuntu 20.04上从源码编译OpenVINO 2021.4:一份给爱折腾开发者的避坑实录

张开发
2026/4/21 11:30:41 15 分钟阅读

分享文章

在Ubuntu 20.04上从源码编译OpenVINO 2021.4:一份给爱折腾开发者的避坑实录
在Ubuntu 20.04上从源码编译OpenVINO 2021.4一份给爱折腾开发者的避坑实录如果你已经厌倦了预编译包的千篇一律或者遇到了官方二进制版本与你的硬件环境不兼容的问题那么从源码编译OpenVINO可能是你最好的选择。本文将带你深入OpenVINO的构建过程分享那些官方文档中没有明确说明的细节和陷阱。1. 准备工作与环境配置在开始编译之前我们需要确保系统环境已经准备就绪。Ubuntu 20.04虽然是一个相对稳定的平台但仍有一些依赖需要特别注意。首先更新系统并安装基础开发工具sudo apt update sudo apt upgrade -y sudo apt install -y build-essential cmake git接下来是OpenVINO编译所需的核心依赖sudo apt install -y libprotobuf-dev protobuf-compiler \ libtbb-dev libgflags-dev libgoogle-glog-dev \ python3-dev python3-pip注意protobuf的版本需要特别注意OpenVINO 2021.4要求protobuf 3.6.1或更高版本但某些新版本可能不兼容。2. 获取源码与子模块管理OpenVINO的源码仓库结构相对复杂包含多个子模块。正确的获取方式是git clone --recurse-submodules https://github.com/openvinotoolkit/openvino.git cd openvino git checkout tags/2021.4如果已经克隆了仓库但没有包含子模块可以运行git submodule update --init --recursive这里有几个常见问题需要注意网络问题某些子模块托管在GitHub上国内开发者可能会遇到下载失败的情况版本冲突确保所有子模块都切换到与主仓库匹配的版本磁盘空间完整源码和子模块需要约5GB空间3. 构建配置与关键选项OpenVINO使用CMake作为构建系统提供了丰富的配置选项。以下是一个推荐的配置命令mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease \ -DENABLE_CLDNNOFF \ -DENABLE_MKL_DNNON \ -DENABLE_OPENCVON \ -DENABLE_PYTHONON \ -DPYTHON_EXECUTABLE$(which python3) \ ..关键选项说明选项默认值推荐值说明ENABLE_CLDNNONOFF关闭Intel GPU支持如需GPU支持则保持ONENABLE_MKL_DNNONON启用Intel数学核心库支持ENABLE_OPENCVONON启用OpenCV集成BUILD_TESTSOFFOFF除非需要测试否则建议关闭提示如果你不确定某个选项的作用可以使用ccmake ..命令进入交互式配置界面查看详细说明。4. 编译与安装配置完成后就可以开始编译了。为了充分利用多核CPU建议使用并行编译make -j$(nproc)编译过程可能会持续30分钟到数小时不等取决于你的硬件配置。在这个过程中你可能会遇到以下问题内存不足如果系统内存较小8GB可以减少并行任务数如make -j4依赖缺失某些特定功能可能需要额外依赖根据错误提示安装即可Python版本冲突确保系统中Python3是默认Python版本编译成功后可以安装到系统目录sudo make install或者指定安装目录cmake -DCMAKE_INSTALL_PREFIX/path/to/install .. make install5. 验证与问题排查安装完成后我们需要验证OpenVINO是否正常工作。首先设置环境变量source /path/to/install/setupvars.sh然后运行基准测试cd /path/to/install/deployment_tools/demo ./demo_squeezenet_download_convert_run.sh常见问题及解决方案模型转换失败检查protobuf版本是否兼容推理性能差确认是否正确启用了CPU优化指令集Python导入错误检查PYTHONPATH是否包含OpenVINO的Python模块路径6. 高级定制与优化对于有特殊需求的开发者OpenVINO的源码编译还支持更多高级选项自定义插件开发可以通过修改inference-engine/ie_bridges目录下的代码添加自定义插件性能调优在CMake配置中调整-DTHREADING选项如TBB或OMP精简构建通过-DBUILD_SHARED_LIBSOFF构建静态库减少依赖# 性能调优示例 cmake -DTHREADINGTBB -DENABLE_AVX512ON ..7. 维护与更新从源码安装的OpenVINO需要手动维护。当需要更新时cd /path/to/openvino git pull git submodule update rm -rf build mkdir build cd build # 重新配置和编译如果你在编译过程中遇到了本文未提及的问题可以尝试以下方法检查build/CMakeCache.txt中的配置查看build/CMakeFiles/CMakeError.log和CMakeOutput.log在OpenVINO的GitHub仓库中搜索类似问题

更多文章