本文将介绍如何使用EIV 用5行指令在快速搭建含英特尔显卡及OpenVINO的AI开发环境, 并简洁说明如何使用OpenVINO 及英特尔显卡优化文生图模型Stable Diffusion 的速度。
EIV (Edge Insight Vision) 具有一组预集成组件,专为边缘应用的计算机视觉和深度学习推理而设计,并针对英特尔®架构进行了优化。它作为容器化架构或独立运行时实现。
此软件包包含用于在英特尔处理器和英特尔显卡设备上安装英特尔®显卡驱动程序和为 OpenVINO™ 推理设置环境的脚本。
工作原理
EIV是一组预先验证的模块,作为容器化架构或独立运行时实现,用于在边缘部署计算机视觉和深度学习工作负载。该软件包包含面向针对英特尔®架构优化的计算机视觉和深度学习应用的英特尔®发行版 OpenVINO™ 工具套件。
EIV 安装三大模块
- Docker
- Intel® GPU drivers
- The Intel® Distribution of OpenVINO™ toolkit (OpenVINO™) Docker image 2023.0
入门指南
按照此分步指南在 Linux* 上为您的目标系统安装英特尔® EIV。完成本指南后,您就可以在英特尔®处理器、iGPU 和英特尔®锐炫™显卡上试用示例应用程序了。
建议的系统要求
- 处理器
第 10代 – 第 13 代智能英特尔®酷睿™处理器
英特尔®处理器 N 系列
英特尔®酷睿™ i3 处理器 N 系列
英特尔®锐炫™ A 系列显卡
- 至少 8GB 内存
- 至少 64GB 硬盘
- 互联网连接
- Ubuntu* 20.04 英特尔物联网或 Ubuntu* 22.04 英特尔物联网
准备目标系统
注意:如果主显示器设置为 dGPU,Ubuntu 22.04 安装将冻结。某些设备,例如ASUS IoT PE3000G具有默认的dGPU作为主显示器。在 BIOS 菜单中,选择高级 -> 图形配置 -> 主显示器,然后选择“IGFX”。保存更改并重新启动系统。接下来,继续安装 Ubuntu 22.04 和 EIV。EIV安装完成后,如果您希望使用dGPU作为主显示器,请转到BIOS并切换回“PEG插槽”。
确保目标系统具有全新的操作系统安装。请按照以下步骤安装 Ubuntu 操作系统:
将适用于英特尔硬件的 Ubuntu v20.04-IoT or Ubuntu v22.04-IoT Desktop ISO file下载到开发人员工作站。
- 使用映像应用程序(如 balenaEtcher 应用程序)创建可启动闪存驱动器。
- 刷新 USB 闪存驱动器后,关闭目标系统的电源,插入 USB 闪存驱动器,然后打开目标系统的电源。如果目标系统未从 USB 闪存驱动器启动,请在系统 BIOS 中更改启动优先级。
- 按照提示安装具有默认配置的操作系统。有关详细说明,请参阅本指南。
- 在代理环境中,请确保已在 /etc/环境中设置代理。
显卡驱动安装含EVI (如已安装Ubuntu 22.04 请直接从此处安装)。
在目标系统上运行以下命令以安装 EIV。
1. 安装 git 和 git 将 EIV 存储库克隆到 Ubuntu 系统中。
sudo apt -y install gitGit clone https://github.com/intel/edge-insights-vision.git
2. 更新系统上的软件包。
sudo apt-get update
3. 安装 python3-pip。
sudo apt-get -y install python3-pip
4. 将目录更改为edge-insights-vision并安装需求包。
cd edge-insights-visionpip3 install -r requirements.txt
5. 安装 EIV。
如果您的系统具有 dGPU,它会将您的内核升级到 6.2.8,并且您的系统将在安装过程中重新启动。重新启动后如果没有跑到100%, 请重复执行此命令 (由于需要重启,请在开始安装之前保存您的工作。)
python3 eiv_install.py
PS. 中国区用户请将eiv_install.py 档第·25行
def connect(host='http://google.com'):
改成
def connect(host='https://baidu.com'):
6. 安装完成后重新启动系统。
如果 GPU 驱动程序未显示版本,请重新启动系统并运行此命令以查看驱动程序版本。
clinfo | grep 'Driver Version'
运行 Jupyter 笔记本教程
按照以下步骤启动 Jupyter 笔记本并运行基本教程以验证目标系统是否正常工作。
1. 成功安装后,将launch_notebooks.sh脚本更改为可执行文件并运行启动器脚本,如下所示:
cd edge-insights-vision
chmod +x launch_notebooks.sh
./launch_notebooks.sh
2. 打开浏览器并粘贴下面突出显示的 URL 以打开 Jupyter 笔记本。
3. 如果您在浏览器中看到以下页面代表所有 OpenVINO notebooks都可以用了。
4. 如果打开“notebooks”文件夹,则可以看到所有可用笔记本的列表。
5. 选择 notebook 236-stable-diffusion-v2/236-stable-diffusion-v2-optimum-demo-comparison.ipynb
6. 它允许从文字描述生成图像,并有助于比较在 CPU 和独立 GPU 上运行不同管道时的性能。
7. 在“显示可用设备信息”步骤中,您可以看到所有设备,这些设备可用于在此PC上进行推理。由于我的电脑中安装了独立的 GPU,因此列表中有 GPU.1 Intel (R) Arc (TM) Pro A40/A50。
8. 在此notebook中执行的第一个模型是托管在 Hugging Face 上的预训练 Pytorch 模型。https://huggingface.co/stabilityai/stable-diffusion-2-1 在此单元中,使用standard Stable Diffusion Pipeline在CPU上执行。
9. 它通过文本描述生成图像,如下所示,在我的电脑上推理大约需要 2 分钟。
10. 下一步使用OpenVINO进行稳定扩散 为此,将同一模型转换为 OpenVINO IR(Intermediate Representation)格式,并使用 OpenVINO 稳定扩散管道。CPU 用于推理。
对比于使用前已有了显着速度的改进,只需 1 分 16 秒。因此,仅应用 OpenVINO Stable Diffusion Pipeline,性能就提高了近 2 倍。
11. 最后一个实验是在刚装好的显卡上运行Stable Diffusion。将 GPU 设置为推理设备并运行这几行代码
可以在森林中看到新的红色汽车和进一步的性能改进!这次只需要43秒, 对比于原来的2分钟有了60%以上的提升
总 结
本文介绍如何使用EIV 用5行指令在快速搭建含英特尔显卡及OpenVINO的AI开发环境。并借由文生图模型Stable Diffusion说明了OpenVINO如何优化其推理速度。
如果您有兴趣生成更多图像,学习OpenVINO并评估设备上生成AI的性能,我鼓励您访问 https://github.com/intel/edge-insights-vision 并尝试自己运行OpenVINO!