作者:周兆靖https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
英特尔® 锐炫™ 系列独立显卡已上市,有A770、A750等多款不同型号,定位不同应用场景的高性能显卡。除桌面端显卡外,英特尔NUC系列产品也搭载了多款移动端独立显卡,有A550M、A730M、A770M等。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
考虑到有部分用户是初次体验英特尔的独立显卡,尤其是在Linux系统环境下对显卡驱动的下载与安装并不熟悉。本次我们就着重介绍如何在Linux系统环境下安装英特尔显卡的驱动,并且也测试了显卡的AI推理性能。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
显卡驱动安装教程https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
英特尔® 锐炫™ 系列独立显卡仅支持Linux系统环境下的Ubuntu 20.04与Ubuntu 22.04两个版本,安装前一定要确保当前系统版本符合要求。本次教程使用A770(16GB)显卡,在Ubuntu 20.04 LTS系统版本下安装驱动。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
驱动安装前的准备工作https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
1、了解Resizable Base Address Register (RBAR) 功能https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
RBAR的中文名称是可调整大小的基址寄存器,是一项标准化的PCI Express接口技术,在许多最新的CPU和主板平台中能看见,被广泛用于嵌入式系统中,通常与外设控制器相关联。通过更改RBAR的值,可以动态更改内存访问地址,让CPU能直接读取或写入外设的寄存器或缓冲区。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
当电脑运行游戏时,GPU显存(VRAM)借助CPU到 GPU之间的传输通道,不断传输游戏内纹理、着色器和几何形状等大量数据。通过RBAR帮助,系统可以按需请求资源并以整体方式传输,因此 CPU便能有效访问整个帧缓存。以前CPU单次向 GPU存取的内容被限制在 256 MB。而大型游戏引擎在传统设计下,若数据超过256MB,便会频繁在 CPU和GPU之间来回传输,导致整体运算效率低,从而影响游戏帧数(FPS)。当然,AI计算也是同理,频繁拷贝数据势必会浪费计算资源与带宽。有了RBAR技术,CPU可以完全存取整个GPU显存 (VRAM),不通过共享内存作为缓冲区进行协作,减少与GPU沟通次数,极大提高了CPU和GPU之间的运算效率。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
同等硬件条件下,开启与关闭RBAR功能得到的推理性能如下:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
本次以锐炫™ 系列A770(16GB)显卡为例,在Ubuntu 20.04 LTS系统下进行OpenVINO™ 工具套件安装和独立显卡的推理性能测试:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
1:创建虚拟运行环境https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
python -m venv openvino_envhttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
2:激活OpenVINO™ 工作环境https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
. openvino_env\scripts\activatehttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
3:升级pip版本https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
python -m pip install --upgrade piphttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
4:下载OpenVINO™ 开发工具套件https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
5:下载OpenVINO™ 示例代码集https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
git clonehttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
https://github.com/openvinotoolkit/openvino.githttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
6:查看本地支持OpenVINO™ 的推理硬件列表:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
python3 /openvino/samples/python/hello_query_device.pyhttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
iGPUhttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
dGPUhttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
将模型下载至当前文件夹中,使用OpenVINO™ 提供的模型性能评估工具(benchmark_app)运行模型推理,部署至A770独立显卡中进行性能测试。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
测试命令如下:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
模型地址:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/001-hello-world/modelhttps://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
OpenVINO™ 工具套件可以通过不同的插件(Plugin)来调用当前系统下的推理硬件。比如:CPU、dGPU和iGPU,进行硬件推理的性能测试。以及MULTI插件可以协同调用任意多个推理硬件同时推理,AUTO插件可以自动选择当前系统下最优硬件进行推理。当前系统下,各推理硬件推理性能的测试如下图所示:https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2> Ubuntu 20.04 LTS i7-11700T with A770(16GB)Command: benchmark_app –m “yolov7-tiny.xml” –d
总结https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
相比可以直接使用驱动安装包的Windows系统,Linux系统在dGPU 的驱动安装上会稍微复杂一些。用户插入dGPU之后,可以根据本文在Ubuntu系统下安装所需要的驱动。驱动安装完成后,按照本文步骤方法,检查驱动是否已正确安装并启用。完成安装后,dGPU才能进行高分辨率图像渲染输出,同时也可以使用dGPU进行编解码,AI 模型的训练与推理,以及OpenVINO™ 的应用部署等一系列操作。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
从OpenVINO™ 提供的性能测试工具得到的数据来看, dGPU(A770)的AI推理性能相较于Tiger-Lake的CPU强劲非常多,并且dGPU与其他推理硬件,例如iGPU、CPU的协同推理都十分易于实现且稳定。在MULTI插件帮助下,协同CPU与dGPU能够获得相较于单独使用某一设备更好的推理性能数据,并且部署至多设备协同推理时十分易用。AUTO插件也可以快速选择到当前系统中的最优硬件进行推理。开发者可以将前期基于OpenVINO™ 在CPU或iGPU开发的AI应用快速迁移至dGPU中实现,推荐开发者尝试联合推理硬件进行AI推理以获得更强性能。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>
注:文中涉及的其它名称及商标属于各自所有者资产。https://www.dnzp.com/uploads/allimg/230817/w5xjmkiucp2>