点击蓝字

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

作者 | 周兆靖

排版 | 李擎

如何在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.04与Ubuntu* 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 wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | \ sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo '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 update
sudo apt-get install gawk
sudo apt-get install  dkms  linux-headers-$(uname -r)  libc-dev
sudo 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 hwinfo
hwinfo --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_app –m “v3-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

文章这么精彩,你有没有“在看”?

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

  1. Linux系统非root下安装MPICH,【转载】如何在linux系统下安装MPICH?

    MPICH已经是一个比较成熟的软件了,按照安装说明操作即可.我安装它的时候就完全是按照其文档一步一步来做的. 首先,下载安装包,我使用的MPICH2,对MPICH是兼容的,但是注意MPI2的许多功能在 ...

  2. Linux系统下安装alsa-lib-1.1.8

    前言 本文介绍如何在Linux系统下安装最新版本的alsa音频驱动. alsa-lib 下载地址 2019年2月8日,当前alsa-lib最新版本为1.1.8. alsa-lib-1.1.8 下载地址 ...

  3. 如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程

    如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程 作者:张国军_Suger 开发工具与关键技术:VMware Workstation Pro.Linux系统( ...

  4. 联想打印机 linux驱动怎么安装步骤,如何在MAC系统下安装打印机驱动

    故障现象: 如何在MAC系统下安装打印机驱动?解决方案: 一.LJ2208安装苹果驱动步骤: 1.运行lenovo Lj2208 install: 2.点击"继续": 3.软件许可 ...

  5. Redis进阶实践之二如何在Linux系统上安装安装Redis

    2019独角兽企业重金招聘Python工程师标准>>> Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了"如何安装VMware Pr ...

  6. 【android开发】如何在Linux平台下安装JDK环境

    原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境. 进入网页: http://www.o ...

  7. 在linux系统下安装jdk

    如何在linux系统上安装jdk 1.本人是在win7系统上装的vmware 12虚拟机,虚拟机系统是centos 6.4版本的系统.安装jdk之前先在命令窗口输入 Java -version 查看当 ...

  8. 如何在Linux系统下更改系统语言?

    如何在Linux系统下更改系统语言? 先更改系统的更新服务器,选择国内的服务器网速更好一些. 选择「System Settings」打开设置 选择「Software & Updates」 下载 ...

  9. 如何在linux系统中安装虚拟机?

    在初学linux系统时,实验中使用虚拟机可以避免操作不当误删文件时,快速恢复. 在企业中,使用虚拟机可以降低占用空间并能节省资源. 下面我们将介绍如何在linux系统中安装虚拟机, 1.图形界面安装虚 ...

最新文章

  1. 使用JMeter进行性能测试
  2. 关于linux cp命令的一d参数
  3. Fedora-19安装texlive2013并配置中文
  4. 解决win2008下IIS7的HTTP500错误
  5. 首届(2017)中国·呼和浩特创新创业创意大赛·华东分站赛在乌镇成功举办
  6. 【java】静态代理 proxy
  7. python pickle模块的使用/将python数据对象序列化保存到文件中
  8. 【讨论】对技术的掌握到底应该又多深?
  9. 2022最新PHP开发的二级域名分发系统源码 附安装教程
  10. html特殊符号拉丁文,拉丁文字符号大全,罗马字母
  11. Rplidar A2 屏蔽固定角度
  12. rt3070网卡 linux驱动,Linux下的WIFI驱动RT3070的编译移植
  13. 【原创】企业级Linux环境部署(很全、很细)
  14. 华为海思总裁:压在保密柜里面的芯片可以拿出来了
  15. VPN --- (虚拟专用网) 详解
  16. re_mysql_20221210
  17. cisco 无线ap ME和LAP模式切换
  18. html flag属性,html5 的flag是什么意思?
  19. Matlab论文插图绘制模板第39期—阶梯图(Stairs)
  20. 补天SRC漏洞挖掘(一):主域名爬取

热门文章

  1. 区块链技术(一):Truffle开发入门
  2. word表格如何令文字上下居中
  3. Vscode C环境配置-转载
  4. String转Map方法
  5. 如何用python卡爆电脑
  6. Bootstrap文字颜色和背景颜色
  7. android 代码混淆打包 log过多,Android App 混淆、打包、错误日志追踪
  8. python给视频加背景音乐_python给视频添加背景音乐并改变音量的具体方法
  9. iAPP(08)智能手机呼吸灯控制
  10. 网页制作之HTML学习