Intel® OpenVINO™ 工具包安装指南(支持 FPGA 2)
Intel® Distribution of OpenVINO™ 工具包可快速部署模拟人类视觉的应用程序和解决方案。
注释:
- Intel® Distribution of OpenVINO™ 工具包以前称为 Intel® 计算机视觉 SDK。
- 这些步骤适用于 Ubuntu*、CentOS* 和 Yocto*。如果您在 Windows* 操作系统上使用 Intel® Distribution of OpenVINO™ 工具包,请参阅 Windows* 安装指南。
- 对于不包含 FPGA 支持的 Intel® Distribution of OpenVINO™ 工具包,请参阅 为 Linux* 安装 Intel® Distribution of OpenVINO™ 工具包。
引言
Intel® Distribution of OpenVINO™ 工具包可快速部署模拟人类视觉的应用程序和解决方案。该工具包基于卷积神经网络 (CNN),可在 Intel® 硬件上扩展计算机视觉 (CV) 工作负载,从而最大化性能。Intel Distribution of OpenVINO 工具包包含 Intel® 深度学习部署工具包 (Intel® DLDT)。
支持 FPGA 的 Linux* 版 Intel® Distribution of OpenVINO™ 工具包
- 在边缘端启用基于 CNN 的深度学习推理
- 支持跨 Intel® CPU、Intel® 集成显卡、Intel® FPGA、Intel® Movidius™ 神经计算棒和 Intel® 神经计算棒 2 的异构执行
- 通过易于使用的计算机视觉功能库和预优化内核,加快产品上市时间
- 包含计算机视觉标准(包括 OpenCV*、OpenCL™ 和 OpenVX*)的优化调用
包含在安装程序中,默认安装
组件 (Component) | 描述 |
---|---|
模型优化器 | 此工具可将流行的框架中训练的模型导入、转换为 Intel 工具(特别是推理引擎)可用的格式,并进行优化。 流行的框架包括 Caffe*、TensorFlow* 和 MXNet*。 |
推理引擎 | 这是运行深度学习模型的引擎。它包含一组库,可轻松将推理集成到您的应用程序中。 |
OpenCL™ 2.1 版的驱动程序和运行时 | 为 Intel® 处理器上的 GPU/CPU 启用 OpenCL |
Intel® Media SDK | 提供对硬件加速视频编解码器和帧处理的访问 |
预编译的 FPGA 位流样本 | Intel® Arria® 10 GX FPGA 开发套件、带 Intel® Arria® 10 GX FPGA 的 Intel® 可编程加速卡以及(预览版)带 Intel® Arria 10 FPGA 的 Intel® 视觉加速器设计的预编译位流样本 |
用于 OpenCL™ 软件技术的 Intel® FPGA SDK | 用于 OpenCL™ 的 Intel® FPGA RTE 提供实用程序、主机运行时库、驱动程序以及 RTE 特定的库和文件 |
OpenCV 3.4.2 版 | 为 Intel® 硬件编译的 OpenCV* 社区版。包含用于计算机视觉的 PVL 库 |
OpenVX 1.1 版 | Intel 对 OpenVX* 1.1 的实现,针对在 Intel® 硬件(CPU、GPU、IPU)上运行进行了优化 |
预训练模型 | Intel 的一组预训练模型,用于学习和演示目的,或用于开发深度学习软件。 |
示例应用程序 | 一组简单的控制台应用程序,演示如何在您的应用程序中使用 Intel 的深度学习推理引擎。有关构建和运行示例的更多信息,请参阅 推理引擎开发者指南。 |
开发和目标平台
开发和目标平台有相同的要求,但您可以在安装过程中根据预期用途选择不同的组件。
硬件
- 第 6-8 代 Intel® Core™ 处理器
- Intel® Xeon® v5 系列
- Intel® Xeon® v6 系列
- Intel® Pentium® 处理器 N4200/5、N3350/5、N3450/5 和 Intel® HD Graphics
- Intel® Movidius™ 神经计算棒
- Intel® 神经计算棒 2
- Intel® Arria® 10 GX FPGA 开发套件或带 Intel® Arria® 10 GX FPGA 的 Intel® 可编程加速卡
- 带 Intel® Arria 10 FPGA 的 Intel® 视觉加速器设计(预览版)
处理器说明:
操作系统
- Ubuntu* 16.04.x 长期支持 (LTS),64 位
- CentOS* 7.4,64 位
- Yocto Project* Poky Jethro* v2.0.3,64 位(仅目标板)
概述
本指南提供有关如何安装支持 FPGA 的 Intel Distribution of OpenVINO 工具包的分步说明。这包括 FPGA 初始化和配置步骤。以下步骤将涵盖
- 配置 Intel® Arria® 10 GX FPGA 开发套件
- 编程 Intel® Arria® 10 GX FPGA 开发套件
- 安装 OpenVINO™ 工具包
- 配置模型优化器
- 完成 Intel® Arria® 10 GX FPGA 开发套件设置
- 运行演示以验证安装并编译示例
- 编程位流
- 运行示例
- 使用人脸检测教程
安装说明
- 首次安装时,请使用所有步骤。
- 仅在收到新 FPGA 卡后,才使用第 1 步和第 2 步。
- 安装新版本的 Intel Distribution of OpenVINO 工具包时,请重复第 3-6 步。
- 当 OpenVINO™ 应用程序使用的神经网络拓扑发生变化时,请使用第 7 步。
配置 Intel® Arria® 10 GX FPGA 开发套件
要配置 Intel® Arria® 10 GX FPGA 开发套件,请使用指南:为 Intel FPGA SDK for OpenCL 配置 Intel Arria 10 GX FPGA 开发套件。请勿遵循文档其余部分的步骤。完成指定部分后,请返回本文档。
编程 Intel® Arria® 10 GX FPGA 开发套件
注意:在设置好 FPGA 板后,您只需执行此操作一次。
- 根据您想要的 FPGA 版本,使用以下两个链接之一下载 Intel® Quartus® 软件
- 如果您有 Intel® Quartus® 许可证,请下载 QuartusProProgrammerSetup-17.1.0.240-linux。此软件大约占用 35 GB 的磁盘空间。
- 如果您没有许可证,请下载 QuartusPrimeLiteProgrammerSetup-17.1.0.590-linux。此软件大约占用 1.4 GB 的磁盘空间。
- 如果您有 Intel® Quartus® 许可证,请下载 QuartusProProgrammerSetup-17.1.0.240-linux。此软件大约占用 35 GB 的磁盘空间。
- 转到下载目录或下载 Intel® Quartus® 软件包的目录。本文档假定软件位于 Downloads 目录下
cd ~/Downloads
- 使用下载的软件包的命令
- 选项 1:Intel® Quartus® Pro
sudo chmod +x QuartusProProgrammerSetup-17.1.0.240-linux.run
- 选项 2:Intel® Quartus® Lite
chmod +x QuartusProgrammerSetup-17.1.0.590-linux.run
- 选项 1:Intel® Quartus® Pro
- 运行 Intel® Quartus® 安装程序
sudo ./Quartus.<version>.run
- 一直点击安装程序直到结束。在安装结束时,取消选中所有复选框。
默认情况下,软件安装在 /home/user 下。我们建议在安装过程中将此目录更改为 /opt/altera。在此目录下的一个子目录将被创建,其名称取决于您的 Intel® Quartus® 版本- Intel® Quartus® Pro:/opt/altera/intelFPGA_pro/17.1
- Intel® Quartus® Lite:/opt/altera/intelFPGA/17.1
- 从 Intel 资源中心下载 fpga_support_files.tgz。此 .tgz 中的文件对于确保 FPGA 卡和 OpenVINO™ 正确工作是必需的。
- 转到下载 fpga_support_files.tgz 的目录
- 解压 .tgz 文件。
tar -xvzf fpga_support_files.tgz
将创建一个名为 fpga_support_files 的目录。 - 进入 fpga_support_files 目录
cd fpga_support_files
- 将 setup_env.sh 复制到您的主目录
cp config/setup_env.sh /home/<user>
source /home/<user>/setup_env.sh
- 配置 FPGA 驱动程序黑名单
sudo mv config/blacklist-altera-cvp.conf /etc/modprobe.d
- 复制 USB 规则
sudo cp config/51-usbblaster.rules /etc/udev/rules.d/
- 加载 USB 规则
sudo udevadm control --reload-rules && udevadm trigger
- 拔下并重新插入 Intel Arria 10 GX 板的 Micro-USB 线缆进行 JTAG 连接
- [可选] 验证电缆是否连接
lsusb | grep Altera
您应该会看到类似以下的消息
Bus 001 Device 005: ID 09fb:6010 Altera - 运行 jtagconfig
jtagconfig
您的输出将类似于
USB-BlasterII [1-14]
02E660DD 10AX115H1(.|E2|ES)/10AX115H2/..
020A40DD 5M(1270ZF324|2210Z)/EPM2210 - 使用 jtagconfig 降低时钟频率
jtagconfig --setparam 1 JtagClock 6M
- (可选) 确认时钟设置为 6M
jtagconfig --getparam 1 JtagClock
您应该看到以下内容
6M - 转到 config 目录
cd config
- 使用 Intel® Quartus® 软件编程 top.sof 和 max5_150.pof。这些文件来自 fpga_support_files.tgz
quartus_pgm -c 1 -m JTAG -o "p;max5_150.pof@2"
quartus_pgm -c 1 -m JTAG -o "p;top.sof"
- 重新启动您的计算机
reboot
- 验证您是否成功编程了 top.sof
sudo lspci |grep Alt
如果成功,您会看到类似以下的回应
01:00.0 处理加速器:Altera Corporation Device 2494 (rev 01)
注意:在安装 Intel Distribution of OpenVINO 工具包后,您将完成卡的设置。
安装支持 FPGA 的 Linux* 版 Intel Distribution of OpenVINO 工具包核心组件
注意:完成这些步骤需要互联网连接。
如果您没有 Intel Distribution of OpenVINO 工具包的软件包,请从 支持 FPGA 的 Linux* 版 Intel® Distribution of OpenVINO™ 工具包 下载。
注意:您需要从下拉列表中选择支持 FPGA 的 Linux* 版 Intel Distribution of OpenVINO 工具包的软件包版本。
如果您之前安装过 Intel Distribution of OpenVINO 工具包,请重命名或删除两个目录
- 打开终端*或您喜欢的控制台应用程序
- 转到下载支持 FPGA 的 Linux* 版 Intel Distribution of OpenVINO 工具包软件包文件的位置。
如果您将软件包下载到当前用户的 Downloads 目录cd ~/Downloads/
默认情况下,文件保存为 l_openvino_toolkit_fpga_p_<version>.tgz - 解压 .tgz 文件
tar -xvzf l_openvino_toolkit_fpga_p_<version>.tgz
文件将被解压到 l_openvino_toolkit_fpga_p_<version> - 进入 l_openvino_toolkit_fpga_p_<version> 目录
cd l_openvino_toolkit_fpga_p_<version>
- /home/<user>/inference_engine_samples
- /home/<user>/openvino_models
安装说明
- 选择一个安装选项,并以 root 或普通用户权限运行相应的脚本。默认安装目录取决于您为安装选择的权限。
- 您可以使用图形用户界面安装向导或命令行说明。这两种选项唯一的区别是命令行说明是基于文本的。这意味着,您将通过文本屏幕上的命令行提示输入信息,而不是在 GUI 中点击选项。
- 选择您的安装选项
- 选项 1:GUI 安装向导
sudo ./install_GUI.sh
- 选项 2:命令行说明
sudo ./install.sh
- 选项 1:GUI 安装向导
-
按照屏幕上的说明进行操作。请注意以下信息性消息,以防您必须完成其他步骤
-
如果需要,更改您要安装的组件或安装目录。请注意安装目录。您稍后需要此信息。如果您选择了默认选项,安装摘要 GUI 屏幕将如下所示
-
如果您使用root 权限运行安装程序,它会将 Intel Distribution of OpenVINO 安装在此目录中:/opt/intel/computer_vision_sdk_fpga_<version>/
为了方便起见,还会创建一个指向最新安装的符号链接:/opt/intel/computer_vision_sdk/
-
如果您使用普通用户权限运行安装程序,它会将 Intel Distribution of OpenVINO 安装在此目录中:/home/<user>/intel/computer_vision_sdk_fpga_<version>/
为了方便起见,还会创建一个指向最新安装的符号链接:/home/<user>/intel/computer_vision_sdk/
-
-
完成屏幕会指示第一部分安装已完成。记下软件版本号,从年份开始
第一个核心组件已安装。继续下一部分安装其他依赖项。
安装外部软件依赖项
- 切换到安装依赖项目录
cd /Downloads/l_openvino_toolkit_fpga_p_
- 运行脚本以下载并安装外部软件依赖项
sudo -E ./install_cv_sdk_dependencies.sh
这些依赖项是必需的,用于:- Intel 优化的 OpenCV 3.4
- 深度学习推理引擎
- 深度学习模型优化器工具
配置模型优化器
模型优化器是一个基于 Python* 的命令行工具,用于从 Caffe*、TensorFlow* 和 Apache MXNet* 等流行深度学习框架导入已训练的模型。
模型优化器是 Intel Distribution of OpenVINO 工具包的关键组件。在运行模型通过模型优化器之前,您无法对已训练模型进行推理。当您通过模型优化器运行预训练模型时,您将输出网络的中间表示 (IR)。中间表示是一对文件,它们描述了整个模型
- .xml:描述网络拓扑
- .bin:包含权重和偏差的二进制数据
点击此处可阅读有关 模型优化器 的更多信息。
模型优化器配置步骤
您可以选择一次配置所有支持的框架,或一次配置一个框架。选择最适合您需求的选项。如果看到错误消息,请确保您已安装所有依赖项。
注意:如果您没有将 Intel Distribution of OpenVINO 安装到默认安装目录,请将 opt/intel/ 替换为您安装软件的目录。
注意:配置模型优化器需要互联网连接。
选项 1:同时配置所有支持的框架
- 转到模型优化器先决条件目录
cd /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites
- 运行脚本以配置 Caffe、TensorFlow、MXNet、Kaldi 和 ONNX 的模型优化器
sudo ./install_prerequisites.sh
选项 2:单独配置每个框架
- 转到模型优化器先决条件目录
cd /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites
- 为您使用的模型框架运行脚本。您可以运行多个脚本
- Caffe*
sudo ./install_prerequisites_caffe.sh
- Kaldi*
sudo ./install_prerequisites_kaldi.sh
- MXNet*
sudo ./install_prerequisites_mxnet.sh
- ONNX*
sudo ./install_prerequisites_onnx.sh
- TensorFlow*
sudo ./install_prerequisites_tf.sh
模型优化器已配置用于一个或多个框架。
- Caffe*
完成 Intel® Arria® 10 GX FPGA 开发套件设置
- 切换到超级用户
sudo su
- 使用 fpga_support_files.tgz 中的 setup_env.sh 脚本设置您的环境变量。
source /home/<user>/Downloads/fpga_support_files/setup_env.sh
- 更改目录到 Downloads/fpga_support_files/
cd /home/<user>/Downloads/fpga_support_files/
- 运行 fpga 依赖项脚本,该脚本允许 OpenCL 支持 Ubuntu 和最新的内核
./install_openvino_fpga_dependencies.sh
注意:如果您安装了 4.14 内核,则需要重新启动机器,并在 Ubuntu (grub) 引导菜单中选择新内核。您还需要重新执行第 1 步和第 2 步以重新设置您的环境变量。
- 安装 OpenCL 设备。提示安装时输入 Y
aocl install
- 运行 aocl diagnose
aocl diagnose
屏幕将显示 "DIAGNOSTIC_PASSED"。 - 退出超级用户
exit
您已完成 FPGA 的安装和配置。
注意:如果系统关闭,您必须重新配置、重新编程和重新设置 Intel® Arria® 10 GX FPGA 开发套件。为避免重复这些步骤,请使用 AOCL Flash 说明。
您可以开始运行演示脚本来验证安装。
运行演示以验证安装并编译示例
要检查安装是否成功,请使用以下说明在 CPU 上运行产品随附的演示应用程序。
- 转到推理引擎演示目录
cd /opt/intel/computer_vision_sdk/deployment_tools/demo
- 运行图像分类演示脚本。
此演示使用模型优化器将 SqueezeNet 模型转换为 .bin 和 .xml 中间表示 (IR) 文件。推理引擎需要此模型转换,以便它可以将 IR 作为输入,并在 Intel 硬件上实现最佳性能。
此演示还会构建 示例应用程序 包
./demo_squeezenet_download_convert_run.sh
此演示使用演示目录中的 cars.png 图像。演示完成后,您将获得前 10 个类别的标签和置信度。
-
运行推理管道演示脚本。
此演示使用演示目录中的 car.png 图像来展示使用三个预训练模型的推理管道。该演示使用车辆识别,其中车辆属性相互构建以缩小到特定属性。
首先,将一个对象识别为车辆。此识别结果用作下一个模型的输入,该模型识别特定的车辆属性,包括车牌。最后,将识别为车牌的属性用作第三个模型的输入,该模型识别车牌中的特定字符。
此演示还会构建包中包含的 示例应用程序。
./demo_security_barrier_camera.sh
演示完成后,您将看到一个图像,其中显示了结果帧,其中检测到的内容以边界框和文本形式呈现。
- 关闭图像查看器窗口以完成演示。
要了解更多关于演示应用程序的信息,请参阅 /opt/intel/computer_vision_sdk/deployment_tools/demo 中的 README.txt 文件。
有关软件包随附的 OpenVINO™ 预训练对象检测和对象识别模型的说明,请转到 /opt/intel/computer_vision_sdk/deployment_tools/intel_models/ 并打开 index.html。
在本节中,您看到了 OpenVINO™ 功能的预览。
您已完成了本指南中所有必需的安装、配置和构建步骤,以便使用 CPU 处理已训练的模型。
注意:如果您要从 Intel® Computer Vision SDK 2017 R3 Beta 版本迁移到 Intel Distribution of OpenVINO,请阅读 有关移植应用程序的信息。
编程位流
您编程的位流应与您要部署的拓扑相对应。在本节中,您将编程一个 Squeezenet 位流,并使用您在上述演示中通过模型优化器转换的 Squeezenet 模型部署分类示例。
重要:仅使用 OpenVINO™ 工具包已安装版本的位流。旧版本 OpenVINO™ 工具包的位流与新版本不兼容。例如,当 OpenVINO™ 工具包支持 2-0-1_A10DK_FP16_Generic 位流时,您不能使用 1-0-1_A10DK_FP16_Generic 位流。
OpenVINO 软件包中下载的每个 FPGA 卡类型都有不同的位流文件夹。
对于 Intel Arria 10GX DevKit FPGA,预训练位流位于 /opt/intel/computer_vision_sdk/a10_devkit_bitstreams。此演示使用低精度 Squeezenet 位流进行分类示例。
对于带 Intel® Arria® 10 FPGA 的 Intel® 视觉加速器设计,预训练位流位于 /opt/intel/computer_vision_sdk_2018.4.420/bitstreams/a10_vision_design_bitstreams。此演示使用低精度 Squeezenet 位流进行分类示例。
为了避免在断电后需要重新编程板卡,会将位流编程到 Intel® Arria® 10 GX FPGA 开发套件的永久内存中。这大约需要 20 分钟。
注意:以下说明 4-7 仅需对新的 Intel Arria 10 Dev Kit 执行一次
您的输出将类似于
USB-BlasterII [1-14] 02E660DD 10AX115H1(.|E2|ES)/10AX115H2/.. 020A40DD 5M(1270ZF324|2210Z)/EPM2210
- 重新运行环境设置脚本。
source /home/<user>/Downloads/fpga_support_files/setup_env.sh
- 切换到您的主目录
cd /home/<user>
- 为 Intel® Arria® 10 FPGA 编程位流
aocl program acl0 /opt/intel/computer_vision_sdk/a10_devkit_bitstreams/2-0-1_A10DK_FP11_SqueezeNet.aocx
- 为带 Intel® Arria® 10 FPGA 的 Intel® 视觉加速器设计编程位流
aocl program acl0 /opt/intel/computer_vision_sdk_2018.4.420/bitstreams/a10_vision_design_bitstreams/ 4-0_A10DK_FP11_SqueezeNet.aocx
- 将 Micro USB 线缆插入卡和您的主机系统。
- 运行
jtagconfig
以确保电缆正确插入jtagconfig
- 使用
jtagconfig
降低时钟频率jtagconfig --setparam 1 JtagClock 6M
- 将位流长期存储在板上
aocl flash acl0 /opt/intel/computer_vision_sdk/a10_devkit_bitstreams/2-0-1_A10DK_FP11_Sque
设置用于 FPGA 的神经网络模型
在本节中,您将创建一个适合硬件加速器的 FP16 模型。有关更多信息,请参阅推理引擎开发者指南中的 FPGA 插件信息。
- 为 FP16 SqueezeNet 模型创建一个目录
mkdir /home/<user>/squeezenet1.1_FP16
- 转到 /home/<user>/squeezenet1.1_FP16
cd /home/<user>/squeezenet1.1_FP16
- 使用模型优化器将 FP16 SqueezeNet Caffe 模型转换为优化的中间表示 (IR)
python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo.py --input_model /home/<user>/openvino_models/classification/squeezenet/1.1/caffe/squeezenet1.1.caffemodel --data_type FP16 --output_dir .
- squeezenet1.1.labels 文件包含 ImageNet 使用的类别。包含此文件是为了让推理结果显示文本而不是分类数字。将 squeezenet1.1.labels 复制到您的优化模型位置
cp /home/<user>/openvino_models/ir/squeezenet1.1/squeezenet1.1.labels .
- 将一个示例图像复制到 release 目录。您将此图像与优化后的模型一起使用
sudo cp /opt/intel/computer_vision_sdk/deployment_tools/demo/car.png ~/inference_engine_samples/intel64/Release
继续下一节以运行示例应用程序。
运行示例应用程序
1. 转到 samples 目录
cd /home/<user>/inference_engine_samples/intel64/Release
2. 使用推理引擎示例在 CPU 上运行示例应用程序
./classification_sample -i car.png -m ~/openvino_models/ir/squeezenet1.1/squeezenet1.1.xml
记下 CPU 的每秒帧数 (FPS) 吞吐量。这会告诉您推理在硬件上完成的速度有多快。现在使用 FPGA 运行推理。
3. 添加 -d 选项以定位 FPGA
./classification_sample -i car.png -m ~/squeezenet1.1_FP16/squeezenet1.1.xml -d HETERO:FPGA,CPU
FPGA 上的吞吐量已列出,并且可能显示较低的 FPS。这是由于初始化时间。为了解决这个问题,下一步将增加迭代次数,以便更好地了解 FPGA 运行推理的速度。
4. 使用 -ni 增加迭代次数,此选项可减少初始化影响
./classification_sample -i car.png -m ~/squeezenet1.1_FP16/squeezenet1.1.xml -d HETERO:FPGA,CPU -ni 100
您已完成 FPGA 的 OpenVINO 安装。继续下一步使用 Hello World 教程。
Hello World 人脸检测教程
使用 OpenVINO with FPGA Hello World Face Detection Exercise 了解软件和硬件如何协同工作。
额外资源
Intel® Distribution of OpenVINO™ 主页:https://software.intel.com/en-us/openvino-toolkit
Intel® Distribution of OpenVINO™ 工具包文档:https://software.intel.com/en-us/openvino-toolkit/documentation/featured
推理引擎 FPGA 插件文档:https://software.intel.com/en-us/articles/OpenVINO-InferEngine#fpga-plugin