实战精选 | 如何在一台 Linux AI PC 上高效运行 OpenVINO™

点击蓝字

关注我们

作者:Adrian Boguszewski,英特尔 AI 软件布道师

           武卓博士,英特尔 AI 软件布道师

什么是 AI PC,为什么它有一个特殊的名字?

AI PC 是时下 PC 领域的一个热门话题。与普通 PC 不同,AI PC 配备了先进的硬件,例如强大的 GPU,可以超快地运行具有生成式AI或大语言模型等繁重计算要求的 AI 模型推理,更重要的是,它还具有称为神经处理单元 (NPU) 的专用 AI 芯片。NPU 针对低功耗进行了优化,同时保持了高计算性能,这使其在处理特定 AI 工作负载方面表现出色,例如背景模糊、噪声去除等运行连续推理而不会快速耗尽电池电量的AI推理任务。因此,基本上,如果您需要一台能够处理繁重的 AI 工作或能够更有效地管理复杂的多线程 AI 应用的计算机,那么配备了英特尔®酷睿™Ultra处理器的 AI PC  就是为您打造的。有关这款 AI PC 的更多信息,请参阅我们的文章 https://medium.com/openvino-toolkit/ai-is-coming-to-the-pc-ai-pc-essentials-ba2aa8686a59 。

9fc4b35fad4c675a9578c6aabbbaf40f.png

在 OpenVINO™ 中验证设备可用性

OpenVINO™ 是英特尔推出的一款针对AI模型进行优化、推理加速以及快速部署的开源 AI 工具套件。针对配备了英特尔®酷睿™Ultra 处理器的 AI PC ,可以帮助 AI 模型在 CPU、GPU 以及 NPU 上进行快速部署以及推理加速。接下来,我们将利用 OpenVINO™ 来验证AI PC 上这些硬件推理设备的的可用性。在本文中,我们将使用 Ubuntu 24.04,因为这是最新的 Ubuntu LTS 版本。

让我们从全新的 Ubuntu 安装开始。然后,创建一个虚拟环境,并使用以下命令安装 OpenVINO:

python3 -m venv venv
source venv/bin/activate
pip install openvino

在 Python 解释器中运行此代码,以验证哪些设备可供您在AI推理时使用。

import openvino as ov
core = ov.Core()
print(core.available_devices)

此时,你应该只能看到[‘CPU’]这个设备,意味着你目前只能访问 CPU。这个可不是什么好事!毕竟,你的笔记本电脑也有 GPU 和 NPU!那么,让我们解决这个问题。

如何在 Linux 上启用所有设备

我们将从 GPU 开始。第一步是安装所有驱动程序和必要的软件包。为此,您应该添加一个使用 GPG 密钥签名的 Intel 软件包存储库。还有其他方法(您可以在https://dgpu-docs.intel.com/driver/client/overview.html查看它们),但这种方法对于安装和未来更新来说是最简单的。

sudo apt update
sudo apt install -y gpg-agent wget
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt update

好的,是时候安装 GPU 推理所需的一切了。

sudo apt install -y \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 libigdgmm12 libxatracker2 mesa-va-drivers \mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo

完成此步骤后重新启动。

sudo reboot

让我们再次运行下面的 Python 代码。

import openvino as ov
core = ov.Core()
print(core.available_devices)

您现在应该看到的是 CPU 和 GPU。因此,唯一缺少的设备是 NPU。oneTBB 是 intel-driver-compiler-npu 的依赖项,因此必须先安装。

sudo apt install libtbb12

之后,我们需要下载并安装 NPU 驱动程序和所有相关软件包。

wget https://github.com/intel/linux-npu-driver/releases/download/v1.5.0/intel-driver-compiler-npu_1.5.0.20240619-9582784383_ubuntu22.04_amd64.deb
wget https://github.com/intel/linux-npu-driver/releases/download/v1.5.0/intel-fw-npu_1.5.0.20240619-9582784383_ubuntu22.04_amd64.deb
wget https://github.com/intel/linux-npu-driver/releases/download/v1.5.0/intel-level-zero-npu_1.5.0.20240619-9582784383_ubuntu22.04_amd64.deb
wget https://github.com/oneapi-src/level-zero/releases/download/v1.17.2/level-zero_1.17.2+u22.04_amd64.deb

sudo dpkg -i *.deb

我们还需要为我们的加速器(NPU)分配正确的组和权限,并将我们的用户添加到渲染组中(请将<your-user-name>替换为您的用户名)。

sudo bash -c "echo 'SUBSYSTEM==\"accel\", KERNEL==\"accel*\", GROUP=\"render\", MODE=\"0660\"' > /etc/udev/rules.d/10-intel-vpu.rules"
sudo usermod -a -G render <your-user-name>

最后一次重新启动以应用所有更改...

sudo reboot

让我们再次检查可用的设备。

import openvino as ov
core = ov.Core()
print(core.available_devices)

CPU、GPU 和 NPU 现在应该可见了!可以开始愉快地用所有设备运行AI推理了!

如果对 NPU 可见性有任何问题,请访问此https://github.com/intel/linux-npu-driver/releases/tag/v1.5.0.

通知及免责声明

性能因使用情况、配置和其它因素而异。如需了解详情,请访问https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/。

性能结果基于截至配置中显示的日期的测试,可能无法反映所有公开可用的更新。有关配置详细信息,请参阅备份。没有任何产品或组件可以绝对安全。您的成本和结果可能会有所不同。英特尔技术可能需要支持的硬件、软件或服务激活。

© 英特尔公司。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。

---------------------------------------

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.

-----------------------------

 OpenVINO 中文社区 

微信号 : openvinodev

B站:OpenVINO中文社区

“开放、开源、共创”

致力于通过定期举办线上与线下的沙龙、动手实践及开发者交流大会等活动,促进人工智能开发者之间的交流学习。

○ 点击 “ 在看 ”,让更多人看见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI绘画Stable Diffusion超现实风格电商场景,五个电商专用LoRA分享,制作电商场景变现教程!

前言 本次教程将使用AI绘画工具 Stable Diffusion 进行讲解&#xff0c;如还未安装SD的小伙伴可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程&#xff0c;一键教你本地部署&#xff01;&#xff0c;安装包请扫描免费获取哦https://blog.csdn.net/z199…

如何利用python进行统计显著性检验

在统计学中,显著性差异检验是用来决定两组或多组数据之间是否存在统计学上的差异。若存在显著性差异,则说明数据集之间不是来自于同一个分布。在Python中,可以使用多种方法来进行显著性差异检验,如t检验、KS检验、Wilcoxon符号秩检验等。下面将详细介绍如何使用Python来判断…

初阶数据结构(顺序表的实现)

1. 线性表 线性表是&#xff08;linear list&#xff09;n个具有相同特性的数据元素的有限队列。线性表是一种在实际广泛应用的的数据结构&#xff0c;常见的线性表&#xff1a;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;字符串。。。 线性表在逻辑结…

招采全流程电子化优势及重要功能环节(数智化招采系统)

招投标全流程电子化&#xff0c;是加速招标采购领域数字化转型、创新招标采购交易机制的重要举措。它在构建高效规范、公平竞争、充分开放的大市场环境中起着至关重要的作用。 招采电子化历史沿革 2013年2月&#xff0c;国家发展改革委等八部门发布了《电子招标投标办法》&am…

【git命令大全】

一个练习git命令的平台&#xff1a;Learn Git Branching 1. git status -s --查看仓库状态 2. git add 文件名 --添加需要提交的文件名&#xff08;加路径--参考git status 打印出来的文件路径&#xff09; 3. git stash -u -k --忽略其他文件&#xff0c;把现修改的隐藏…

python杨辉三角的两种书写方式

第一种&#xff08;设置二维列表设置每个元素为0进行替换元素&#xff09; 代码演示&#xff1a; n eval(input("请输入想要的行数")) lst[[0 for j in range(n)] for i in range(n)] # lst2[[0]*n]*n for i in range(n):for j in range(i1):if j0 or ji:lst[i][j…

七款好用的电脑监控软件推荐|电脑屏幕监控软件最新整理!

电脑监控软件在家庭和企业环境中变得越来越重要。它们帮助父母监督孩子的在线活动&#xff0c;也帮助企业确保员工在工作时间内的生产力和数据安全。以下是七款优秀的电脑监控软件推荐&#xff0c;希望能帮助您选择。 固信软件https://www.gooxion.com/ 固信软件 固信软件提供…

极狐GitLab 17.0 重磅发布,100+ DevSecOps功能更新来啦~【七】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

数据库中的数据视图(View):深入理解与应用

引言 编程梦想家&#xff08;大学生版&#xff09;-CSDN博客 在数据库管理中&#xff0c;数据视图&#xff08;View&#xff09;是一个非常重要的概念&#xff0c;它提供了一种虚拟的表结构&#xff0c;其内容由查询定义。数据视图对于简化复杂查询、增强数据安全性以及逻辑数…

Java基础-组件及事件处理(下)

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 面板组件 说明 常见组件 JScrollPane常用构造方法 JScrollPane设置面板滚动策略的方法 JScrollPane滚…

为什么广告需要教育视频

教育视频作为一种广告工具越来越受欢迎&#xff0c;因为它们能够有效地传达信息并吸引观众的注意力。以下是需要此类视频的几个关键原因&#xff1a; 提高参与度 互动性&#xff1a;教育视频吸引注意力&#xff0c;让观众长时间参与&#xff0c;并让他们参与学习过程。产品演…

测试用例设计思路与常用方法

作为测试人员&#xff0c;测试用例设计在工作中的占比是很高的&#xff0c;而且是非常重要的一步&#xff0c;测试用例设计的好坏关系到测试执行过程中的场景覆盖是否完全&#xff0c;最后体现到测试质量是否有保障&#xff0c;所以在这一步做好了不仅能够提高测试效率&#xf…

车床编程x轴怎么编程:深入剖析与实用指南

车床编程x轴怎么编程&#xff1a;深入剖析与实用指南 车床编程是数控加工中至关重要的一环&#xff0c;其中X轴的编程更是核心所在。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入剖析车床编程中X轴的编程方法&#xff0c;帮助你更好地掌握这一技能。 四个…

数据清洗:现代数据分析师的必备技能

在数据驱动的时代&#xff0c;数据分析师作为连接数据与洞察的桥梁&#xff0c;扮演着至关重要的角色。而数据清洗&#xff0c;作为数据分析流程中的首要任务&#xff0c;更是现代数据分析师不可或缺的一项核心技能。本文将从数据清洗的重要性、技能要求、实践方法以及其对数据…

Windows中安装部署MinIo文件系统,在Spring Boot中引入MinIo依赖实现上传文件到MinIo文件系统中

minio安装部署可以看这篇教程&#xff1a;https://blog.csdn.net/qq_43108153/article/details/134016896 创建桶 将私有设置成公开 导入依赖 <!-- minio --> <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId>…

【Unity】RPG2D龙城纷争(十)战斗系统之角色战斗

更新日期:2024年7月10日。 项目源码:第五章发布(正式开始游戏逻辑的章节) 索引 简介一、战斗逻辑公式1.回合制逻辑2.二反机制3.命中率计算公式4.暴击率计算公式5.伤害计算公式6.治疗计算公式二、角色自身总属性三、角色战斗1.角色攻击另一角色2.角色治疗另一角色3.播放攻击…

前端字体商用问题

如果字体被用于商业用途而未经版权所有者的许可,可能会构成著作权侵权。根据《中华人民共和国著作权法》的相关规定,这种侵权行为可能会产生以下后果: 民事责任:侵权者可能需要承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任。这可能包括支付版权所有者因其侵…

element的下拉框封装

<!-- 仓位 --> <template><el-selectclearable:value"value || []"class"ele-fluid":filterable"true"placeholder"仓位"input"updateValue"><el-optionv-for"item in data":key"item.…

煤矿前行的指南(防回水防回气装置)

孙悟空等唐僧500年&#xff0c;白素贞等许仙1000年&#xff0c;易小川等玉濑2000年&#xff0c;夜华等白浅三生三世&#xff0c;苏州信科宣防回水防回气装置在等你&#xff0c;只要你来&#xff0c; 一年四季我都在。 150防回水防回气介绍 包括&#xff1a;锥筒体、过滤芯、中…

【后端开发实习】用Nodejs操作mongodb结合Mongoose实现数据库操作

用Nodejs操作mongodb结合Schema实现数据库操作 Mongoose创建Schema定义Schema对象并映射到数据库Model的使用创建文档内容删除文档内容修改文档内容查询文档内容 Document的使用创建并保存将文档对象转换为JSON对象 模块化数据库连接模型初始化 项目部署路由定义后端操作定义启…