如何在Linux系统下安装英特尔® Arc™系列独立显卡驱动以及进行AI推理性能测试

04/26 08:00
阅读数 431

点击蓝字

关注我们,让开发变得更有趣

作者 | 周兆靖

排版 | 李擎

如何在Linux系统下安装英特尔® Arc™系列

独立显卡驱动以及进行AI推理性能测试




目录

1.本文目的

2.Linux 系统下英特尔®独立显卡的驱动安装

2.1驱动安装前的准备工作

2.1.1 Resizable Base  Address Register (RBAR)功能

2.1.2检查系统配置并开启RBAR功能

2.2通过Ubuntu 终端安装Intel® ARC™系列独立显卡驱动

2.2.1安装gpg-agent和wget

2.2.2安装特定版本的Linux OEM kernel 

2.2.3安装DKMS模块

2.2.4安装run-time组件

2.2.5将user添加至render组中,以获取访问独立显卡的权限

2.2.6验证驱动成功安装

3.同时使用独立显卡(discrete GPU )和集成显卡(integrated GPU)

3.1如何通过BIOS激活系统中的集成显卡

3.2如何检查系统中显卡硬件是否可用

4.安装OpenVINO™ 工具套件并测试ARC™系列独立显卡的推理性能

5.总结


1.本文目的

目前,英特尔®推出了包括了Arc™家族A770,A750在内的多个桌面版本的独立显卡(discrete Graphic Processing Unit,简称dGPU)供玩家与开发者进行选择。鉴于很多消费者都是初次体验Intel®的独立显卡,在Linux*系统下对于显卡驱动的下载与安装并不熟悉,并且Arc™系列的显卡驱动需要手动安装,所以本文提供了Linux系统下Intel®独立显卡驱动的安装指南以及驱动安装成功的验证方法,并测试了dGPU的推理性能。

注: * 文中涉及的其它名称及商标属于各自所有者资产。



2.Linux 系统下英特尔®独立显卡的驱动安装

目前,Arc™系列独立显卡只支持Linux系统下的 Ubuntu* 20.04Ubuntu* 22.04两个版本,你需要确保当前系统版本符合要求。
本节以Intel® Arc™A770 16GB 为例,在Ubuntu 20.04 LTS下安装独立显卡驱动。硬件环境为:CPU i7-11700T,dGPU A770(16GB), 内存 32GB,技嘉*主板Z590。


  

2.1驱动安装前的准备工作

2.1.1 Resizable Base Address Register (RBAR)功能

RBAR的中文名称是可调整大小的基址寄存器,是一项标准化的 PCI Express 接口技术,可在许多最新的 CPU 和主板平台中看见其身影。它也被广泛用于嵌入式系统中,并且通常与外设控制器相关联。通过更改RBAR中的值,可以动态地更改内存访问地址,从而使CPU能够直接读取或写入外设的寄存器或缓冲区。
当电脑运行游戏时,GPU 显存 (VRAM) 借助CPU 到 GPU 之间的传输通道,不断地传输游戏世界里的纹理、着色器和几何形状等大量信息。在 RBAR 的助力下,系统可以按需请求资源并以整体方式将其进行传送,因此 CPU 便能有效访问整个帧缓存。过去,CPU 单次向 GPU 存取的内容被限制在 256 MB。大型游戏引擎在传统的设计下,若资料量超过这个大小,数据会频繁地在 CPU 和 GPU 之间来回沟通,导致整体运算效率低,影响游戏FPS呈现。AI计算也是同理,频繁的资料拷贝势必会浪费计算资源与带宽。在RBAR技术的帮助下,CPU可以完全存取整个VRAM,而不必通过共享内存作为缓冲区进行协作,减少了与GPU的沟通次数,极大地提高了CPU和GPU之间的运算效率。
同等硬件条件下,开启与关闭RBAR功能得到的推理性能如下:


测试设备:CPU i7-11700T dGPU:A770(16GB) Memory: 32GB Ubuntu 20.04 LTS
测试软件: benchmark_app from OpenVINO™ Toolkit
模型地址:https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/001-hello-world/model


2.1.2检查系统配置并开启RBAR功能

a.检查当前系统是否开启了RBAR功能:
lspci -v |grep -A8 VGA


得到以上的信息中,黄色方块里代表当前PCIE通道内存存取内容的体积大小。可以看到图中,“size=16G“ 说明CPU向GPU可访问数据的最大值为16GB,且等同于当前显卡的16GB显存,则证明主板BIOS中的RBAR功能已经开启。若RBAR功能没有开启,此处一般情况下显示为 “size=256MB”,这种情况下就需要去到主板BIOS中开启RBAR功能。
b.开启系统中的RBAR功能
由于市面主板型号众多,此处以技嘉* Z590主板为例,BIOS版本为“F7”,BIOS日期为“11/03/2021”,BIOS ID为“BARKL012”。
电脑开机,使用键盘按下“DEL”键进入主板BIOS界面:



点击“setting“进入设置页面:



点击“IO Ports“:



点击”Above 4G Decoding”,将其设置为“Enable“激活状态:



这个时候会”Above 4G Decoding”下方会出现“Re-Size BAR Support”选项,将其设置为“Auto”即可激活RBAR功能。



然后,保存BIOS设置并重启电脑:



进入Linux系统桌面使用“lspci”命令再次验证Memory那一行的“Size”是否等于当前显卡的显存容量。由于市售的主板型号众多且不同品牌的BIOS界面会略有不同,请在安装Intel® ARC™系列独立显卡后根据各型号主板BIOS的操作手册开启RBAR功能。
备注:RBAR功能目前只支持大多数10代酷睿™以及10代以后的CPU平台。



2.2通过Ubuntu 终端安装Intel® ARC™系列独立显卡驱动

2.2.1安装gpg-agent和wget

首先确保你的系统已经安装了gpg-agent和wget,然后它将下载并安装用于验证软件包仓库完整性的公钥。在apt的下载库中添加Intel®显卡驱动下载库,这样可以在安装显卡时从Intel®的资源库中拉去相应的驱动资源。最后,将repositories.intel.com/graphics 库添加至当前系统中。
sudo apt-get install -y gpg-agent wgetwget -qO - https://repositories.intel.com/graphics/intel-graphics.key | \ sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpgecho 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal-devel main' | \ sudo tee /etc/apt/sources.list.d/intel.gpu.focal.list



2.2.2安装特定版本的Linux OEM kernel

Dynamic Kernel Module Support(DKMS)指的是一种用于在Linux系统中管理动态内核模块的框架。它允许第三方驱动程序开发人员将自己的驱动程序打包成DKMS格式,并与Linux内核进行集成。
使用DKMS,当系统升级到新版本的内核时,所有已安装的第三方驱动程序都会自动重新构建和安装,从而保持其与新内核的兼容性。这避免了手动重新编译和安装驱动程序的繁琐过程,简化了Linux系统中动态内核模块的管理和部署过程,并提高了系统稳定性和可靠性,为用户带来了便利,。
当前DKMS只支持Linux 5.14.0-1047 oem kernel,所以通过如下命令安装Linux 5.14.0-1047 oem kernel:
sudo apt-get install linux-image-5.14.0-1047-oem
安装完成之后,使用如下命令更改GRUB设置为默认载入oem kernel:
sudo sed -i "s/GRUB_DEFAULT=.*/GRUB_DEFAULT=\"1> $(echo $(($(awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg \| grep -no '5.14.0-1047' | sed 's/:/\n/g' | head -n 1)-2)))\"/" /etc/default/grub
sudo sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"$(echo $(awk -F'="' '$1  == "GRUB_CMDLINE_LINUX_DEFAULT" {print $2}'  \/etc/default/grub | tr -d '"') | sed 's/pci=realloc=off//g') pci=realloc=off\"/" /etc/default/grub
重启计算机,使kernel生效:
sudo reboot
使用如下的命令来获取当前kernel的信息,确保kernel已被更改为Linux 5.14.0-1047 oem kernel:
uname -r
若成功安装Linux 5.14.0-1047 oem kernel,应该收到如下的返回信息:



注意,如果你在BIOS中设置了安全启动, 你会在重启的时候收到提示,请选择 Enroll MOK 选项来使新kernel发挥作用。
可选项:若你的旧kernel不需要同时被编译的话,你可以选择将其卸载:
sudo apt-get remove (previous kernel’s name)


2.2.3安装DKMS模块

安装独立显卡特定的DKMS模块使得驱动得以生效
sudo apt-get updatesudo apt-get install gawksudo apt-get install  dkms  linux-headers-$(uname -r)  libc-devsudo apt-get install intel-i915-dkms intel-platform-cse-dkms pmt



2.2.4安装run-time组件

使用apt-get命令安装一些使用Intel®独立显卡进行渲染,编解码,运算等操作所需的必要组件:
sudo apt-get install intel-opencl-icd intel-level-zero-gpu level-zero \ intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \ libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm11 libxatracker2 mesa-va-drivers \mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all
重启使其生效:
sudo reboot


2.2.5将user添加至render组中,以获取访问独立显卡的权限

查看当前所有显卡驱动所属组的名称:
stat -c "%G" /dev/dri/render*
你将会收到:



使用如下命令查看当前用户,所在组的详情:
groups ${USER}



若返回的信息中没有“render”组的话,你需要将当前user添加render组的权限,使用如下命令:
sudo gpasswd -a ${USER} render
激活组的更改:
newgrp render


2.2.6验证驱动成功安装

若以上六步全部完成,请使用如下命令验证驱动是否正确安装:
sudo apt-get install hwinfohwinfo --display
若正确安装,你将会收到如图所示的信息:



鉴于安装步骤细节与文字较多,你也可以参考官方的驱动安装手册进行Arc™系列显卡驱动的安装。若有开发者使用的OS版本为Ubuntu 2022.04 LTS ,也可以在官方的手册中,找到该系统下独立显卡驱动安装的步骤指引,安装手册参考:https://dgpu-docs.intel.com/installation-guides/index.html  



3.同时使用独立显卡(discrete GPU )和集成显卡(integrated GPU)

一般情况下,当你插入dGPU之后,一些品牌的主板会自动屏蔽iGPU的渲染和计算功能,此时需要进入重启进入主板的BIOS界面将使用iGPU的运行开关打开。
本节以技嘉的Z590的BIOS为例,向你展示如何通过修改BIOS设置让iGPU设备可用。



3.1如何通过BIOS激活系统中的集成显卡

进入BIOS界面,点击“Setting”页面:



点击“IO Ports“:



找到“Internal Graphics”将此选项设置为“Enable”:



保存BIOS更改并重启之后,完成iGPU的激活流程。

3.2如何检查系统中显卡硬件是否可用
在BIOS中完成iGPU的激活后,进入系统,使用如下命令检查显卡硬件信息:
hwinfo --display
如果你看到的信息如图所示,说明你的iGPU和dGPU都可以正常工作了:



当你成功安装了Intel® ARC™独立显卡的驱动之后,你就可以选择使用dGPU进行图像渲染显示输出,这时候显示器的数据线接在dGPU的输出接口中。
此时,深度学习计算可以选择使用dGPU,iGPU单独进行计算或dGPU与iGPU同时参与计算。
若你把显示器的数据线插在主板的显示输出接口中,这时候iGPU负责图像渲染显示输出。
此时,你可以单独选择使用iGPU或者dGPU进行深度学习计算,当然你也可以同时使用iGPU和dGPU进行深度学习计算。



4.安装OpenVINO™ 工具套件并测试ARC™系列独立显卡的推理性能

OpenVINO™工具套件是Intel®发布的一款开源且商用免费、主要应用于计算机视觉、实现神经网络模型优化和推理计算加速的软件工具套件。该工具也可以帮助开发者在Intel®的推理硬件上(CPU,dPGU,iGPU)快速部署AI应用程序和解决方案。了解更多:https://www.intel.cn/content/www/cn/zh/developer/tools/openvino-toolkit/overview.html
本节以ARC™系列A770(16G)显卡为例,在Ubuntu 20.04 LTS系统下进行OpenVINO™工具套件安装和独立显卡的推理性能测试:

步骤 1: 

创建虚拟运行环境

python -m venv openvino_env

步骤 2: 

激活OpenVINO™ 工作环境

. openvino_env\scripts\activate

步骤 3:

升级pip版本

python -m pip install --upgrade pip

步骤 4: 

下载并安装OpenVINO™ 开发工具套件

pip install openvino-dev[ONNX,tensorflow2,caffe,kaldi,pytorch,mxnet]==2022.3.0

步骤 5:

下载OpenVINO™  示例代码集

git clone https://github.com/openvinotoolkit/openvino.git

步骤 6:

查看本地支持OpenVINO™ 的推理硬件列表:

python3 /openvino/samples/python/hello_query_device.py



将模型下载至当前文件夹中,使用OpenVINO™提供的模型性能评估工具(benchmark_app)运行模型推理,部署至A770独立显卡中进行性能测试,测试命令如下:
     
     
     
benchmark_appmv3-small_224_1.0_float.xml” –d GPU.1
模型地址:https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/001-hello-world/model
OpenVINO™工具套件可以通过不同的插件(Plugin)来调用当前系统下的推理硬件,比如: CPU, dGPU和iGPU,进行硬件推理的性能测试。以及MULTI插件可以很轻松地协同调用任意多个推理硬件同时推理,AUTO插件则可以自动选择当前系统下最优硬件进行推理。当前系统下,各推理硬件推理性能的测试如下图所示:



  • Ubuntu 20.04 LTS i7-11700T with A770(16GB)

  • Command:benchmark_app–m“v3-small_224_1.0_float.xml” –d



  • Ubuntu 20.04 LTS i7-11700T with A770(16GB)

  • Command: benchmark_app –m “yolov7-tiny.xml” –d<Plugin_Name>



5.总结:

相比起可以直接使用驱动安装包的Windows*系统,Linux系统在dGPU的驱动安装上会稍微复杂一些。用户在插入dGPU之后,可以根据本文在Ubuntu系统下安装所需要的驱动。驱动安装完成之后,按照文内方法,检查驱动是否已经正确安装并启用了。驱动完成安装之后,dGPU方可进行高分辨率的图像渲染输出,同时你也可以使用dGPU进行编解码,AI模型的训练与推理,OpenVINO™ 的应用部署等等一系列操作。
从OpenVINO™ 提供的性能测试工具得到的数据来看,dGPU(A770)的AI推理性能相较于Tiger Lake的CPU强劲非常多,并且dGPU与其他推理硬件例如iGPU,CPU的协同推理都十分易于实现且稳定。在“MULTI”插件的帮助下,协同CPU与dGPU能够获得相较于单独使用某一设备更好的推理性能数据,并且部署至多设备协同推理时十分易用。“AUTO” 插件也可以快速选择到当前系统中的最优硬件进行推理。开发者可以很方便地将前期基于OpenVINO™ 在CPU或者iGPU开发的AI应用快速迁移至dGPU中进行实现,同时也推荐开发者尝试联合推理硬件进行AI推理以获得更好的性能。


注: * 文中涉及的其它名称及商标属于各自所有者资产。


--END--

             
             
             
你也许想了解(点击蓝字查看)⬇️
➡️  以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
➡️  还不知道如何用OpenVINO™作画?点击了解教程。
➡️  如何给开源项目做贡献? | 开发者节日福利
➡️   几行代码轻松实现对于PaddleOCR的实时推理,快来get!
➡️   使用OpenVINO 在“端—边—云”快速实现高性能人工智能推理
➡️  图片提取文字很神奇?试试三步实现OCR!
➡️ 【Notebook系列第六期】基于Pytorch预训练模型,实现语义分割任务
➡️ 使用OpenVINO™ 预处理API进一步提升YOLOv5推理性能


            
            
            

扫描下方二维码立即体验 

OpenVINO™ 工具套件 2022.3



                     
                     
                     


点击 阅读原文 立即体验OpenVINO 2022.3
文章这么精彩,你有没有“在看”?

本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部