在Meteor Lake上测试基于Stable Diffusion的AI应用
上个月刚刚推出的英特尔新一代Meteor Lake CPU,预示着AI PC的新时代到来。AI PC可以不依赖服务器直接在PC端处理AI推理工作负载,例如生成图像或转录音频。这些芯片的正式名称为Intel Core Ultra处理器,是首款配备专门用于处理人工智能任务的 NPU(神经处理单元)的芯片。
为了更好地了解Meteor Lake CPU,我们测试了英特尔适用于 Audacity 和 GIMP(开源音频和图像编辑器)的 OpenVINO 插件和其它相关的AI应用,包含仅 CPU 模式、NPU 模式和 GPU 模式下运行了所有测试。我们进行的测试有:
- OpenVINO Stable Diffusion:在 GIMP 中生成图像。
- OpenVINO Noise Reduction:消除 Audacity 中的背景噪音。
- OpenVINO Music Generation: Audacity 中的文本转音乐功能。
- OpenVINO Whisper Transcription:在 Audacity 中将音频转录为文本。

OpenVINO™是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。OpenVINO™工具包是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔®硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。OpenVINO 插件专门识别 Meteor Lake 笔记本电脑的 NPU 并将其作为设备选项呈现。值得注意的是,虽然 OpenVINO 软件/插件可以在任何 x86 硬件上运行,最新的几个版本甚至加入了对Arm平台的支持,但它们专门针对 Intel CPU 和 GPU 进行了优化所以会有更好的性能。
测试 1:基于Stable Diffusion的GIMP 图像生成

为 GIMP 安装英特尔的 OpenVINO 插件是一项相对复杂的任务,本文不包含如何在GIMP里安装OpenVINO插件,具体的安装过程我会再写另外一篇博文来阐述,也可参阅此Github项目。插件安装设置完成后,GIMP 将具有四个 OpenVINO 插件:Semantic-Segmentation、Style-Transfer、Super-Resolution和Stable-Diffusion。
Stable-Diffusion for GIMP 是一个图像生成器,需要 十几 秒到几分钟才能输出图像。在Stable-Diffusion里可以选择多种不同的模型,我们在测试中选择了 SD_1_5_square_int8,因为它是目前能支持Meteor Lake NPU 作为输出设备的模型之一。测试中发现SD_1_5_square_int8 的输出有点难看,因为它给你的看起来像是凌乱的手指画,而不是逼真的图像,但重点是看看它完成每项任务的速度有多快。
在使用Stable-Diffusion SD_1_5_square_int8 模型中,我们可以在Meteor Lake上选择四种不同的设备来处理输出的不同部分:Text部分使用GPU,Unet+使用GPU,Unet-使用NPU, VAE使用CPU。所有四个设备可以是相同的,也可以切换它们。

当我们同时使用GPU和NPU时,在Meteor Lake 笔记本电脑上生成图像仅花费 16 秒。当我们单独使用 GPU 时,这些时间增加了几秒,而当我们使用 NPU 时,这些时间几乎增加了一倍(31秒)。单独使用 CPU 的时间是最高的,分别为 59.5 秒和 61 秒。
下图是使用SD_1_5_square_int8 模型驾驶汽车的猫时,会得到下图这样的结果。如果想要更好看的输出,则需要使用SD_1_5_square 等模型,它可以生成逼真的图像,但是这个模型目前还没有NPU的支持。

测试 2:Whisper Transcription

Audacity OpenVINO Whisper Transcription 插件将使用您的 CPU、GPU 或 NPU将剪辑中的语音转换为带有时间戳的文本文件。我们在测试中使用 Open AI 的 Whisper AI基本转录模型,因为这是插件内置的模型。两台Meteor Lake测试平台完成的时间为48.8秒和52.1秒。考虑到源材料的长度是原来的 23 倍以上,这已经相当不错了。
测试 3:Audacity OpenVINO Noise Reduction

Audacity 插件 OpenVINO 噪声抑制可消除剪辑中的背景噪声。因此,我们选取了用于转录的23 分钟音频片段,并在其上运行了噪声抑制插件。运行噪声抑制插件时,可以选择 CPU、GPU 或 NPU 作为处理设备。但每次转录只能使用一个设备,因此不会混合 GPU 和 NPU 或 CPU 和 GPU。两台Meteor Lake测试机器的完成时间分别为934秒和1054秒。
这是一个相当 CPU 密集型的工作负载,因为我们看到处于 CPU 模式的笔记本电脑的工作负载最高。在 NPU 上运行并没有什么帮助。 Swift Go 和 IdeaPad Pro 5i 在 NPU 模式下运行速度都非常慢。
测试 4:OpenVINO Music Generation

Audacity 的其他有趣的 OpenVINO 插件之一使用 Stable Audio(Stability AI 的音乐模型)根据文本提示生成曲调。在我们的测试中,要求一首 30 秒的歌曲,提示为“爵士乐”,6 个插值步骤和 20 个推理步骤。这里有五种不同的设备设置:Text Encoder Device、Unet + Device、Unet – Device、VAE Decoder Device和 VAE Encoder Device。您可以选择 CPU、GPU 或(在 Unet + / – 上)NPU。 两台Meteor Lake的测试成绩分别为55秒和57秒。

NPU 减轻 CPU 负担
NPU还有另外一个更大的价值在我们前面的测试中并未体现出来,那就是它如何减轻 CPU 的负载。例如,当我们在 Acer Swift 14 Go 上运行 NPU 专用工作负载并打开任务管理器时,CPU 利用率仅为 2%,而 NPU 利用率为 100%。

但当我在 CPU 模式下运行相同的工作负载时,处理器在任务期间被固定在 60%。

由此可见,当把AI的工作负载放到NPU上执行时,能极大地释放CPU的工作量。如果我们不插电,依靠 NPU 可能会节省电量以延长电池寿命。此外,随着 NPU 承担 AI 工作负载,CPU 可以自由地做其他事情。

作者的个人Blog(HY's Blog):https://blog.yanghong.dev
相关文章:

在Meteor Lake上测试基于Stable Diffusion的AI应用
上个月刚刚推出的英特尔新一代Meteor Lake CPU,预示着AI PC的新时代到来。AI PC可以不依赖服务器直接在PC端处理AI推理工作负载,例如生成图像或转录音频。这些芯片的正式名称为Intel Core Ultra处理器,是首款配备专门用于处理人工智能任务的 …...

情人节心动礼物:共度情人节美好时刻的礼物推荐
情人节,这个充满浪漫与爱意的特殊日子,总是让人心跳加速,期待着与爱人共享甜蜜时光。在这一天,送出一份精心挑选的礼物,不仅能够表达你对另一半无尽的爱意,更能让这份爱升华,成为你们爱情故事中…...

远程手机搭建Termux环境,并通过ssh连接Termux
背景 Termux只能通过鼠标点击,无法使用电脑键盘,输入速度很慢,你想通过ssh 连接Termux,获得友好体验搞了个云手机,想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…...

基于EdgeWorkers的边缘应用如何进行单元测试?
随着各行各业数字化转型的持续深入,越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行,借此降低延迟,提高应用程序响应速度,打造更出色的用户体验。 相比传统集中部署和运行的方式,这种边缘应…...

【linux】校招中的“熟悉linux操作系统”一般是指达到什么程度?
这样,你先在网上找一套完整openssh升级方案(不是yum或apt的,要源码安装的),然后在虚拟机上反复安装测试,直到把他理解了、背下来。 面试的时候让你简单说说linux命令什么的,你就直接把这个方案…...
【CSS系列】常用容易忽略的css
user-select user-select 是一个 CSS 属性,用于控制用户是否可以选择文本。通过设置 user-select 的值,可以决定用户是否可以选择元素中的文本,以及如何选择文本。 auto:默认值。浏览器可以选择文本。none:用户不能选…...

Java 数据结构 二叉树(二)红黑树
目录 数据结构图-树 简介 规则 旋转 重新着色 红黑树构建过程 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步…...
React18-完成弹窗封装
弹框封装 用法 // 创建 userRef.current?.open(create) // 修改 userRef.current?.open(edit,values){/* 创建用户 */} <CreateUser mRef{userRef} update{} />组件暴露open方法 文档地址:https://react.dev/reference/react/useImperativeHandle useIm…...
蓝桥杯2024/1/31-----底层测试模板
和之前一样建好工程文件夹,里边包含User(放工程文件,mian.c)、Driver(存放底层文件如Led.c,Led.h等) 新建的工程先搭建框架,可以先书写底层函数(此次书写了四个函数并包含…...
蓝桥杯备战(AcWing算法基础课)-高精度-乘-低精度
目录 前言 1 题目描述 2 分析 2.1 关键代码 2.2 关键代码分析 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个非负整数(不含前导 00) A 和 B,请你计算 AB 的值。 输入格式 共两行,第一行包含整数 A&a…...
C++设计模式-里氏替换原则
里氏替换原则定义了继承规范。(封装、继承、多态) 定义1:类型S对象o1,类型T对象o2,o1换成o2时程序意图不变,那么S是T的子类。 定义2:使用子类不破坏父类的意图。 注意:如果子类不…...
compose LazyColumn + items没有自动刷新问题
val dataLists by remember { mutableStateOf(datas) } 数据更改后列表不刷新问题。 val dataLists by remember { mutableStateOf(datas) } LazyColumn(modifier Modifier.padding(top 5.dp)) {items(dataLists) {....}} 可以将mutableStateOf 改为mutableStateListOf解决…...

Java八大常用排序算法
1冒泡排序 对于冒泡排序相信我们都比较熟悉了,其核心思想就是相邻元素两两比较,把较大的元素放到后面,在一轮比较完成之后,最大的元素就位于最后一个位置了,就好像是气泡,慢慢的浮出了水面一样 Jave 实现 …...
编程笔记 html5cssjs 075 Javascript 常量和变量
编程笔记 html5&css&js 075 Javascript 常量和变量 一、JavaScript 变量二、JavaScript 常量三、示例:小结: 在JavaScript中,变量和常量是用来存储数据的占位符。它们的主要区别在于可变性:变量的值可以改变,而…...
题目 1159: 偶数求和
题目描述: 有一个长度为n(n<100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序…...

呼吸灯--FPGA
目录 1.breath_led.v 2.tb_breath_led.v 呼吸灯就是从完全熄灭到完全点亮,再从完全点亮到完全熄灭。具体就是通过控制PWM的占空比控制亮灭程度。 绘制PWM波的步骤就是,首先灯是在第一个时钟周期保持高电平熄灭状态,在第二个时钟周期保持1/1…...

MySQL数据库①_MySQL入门(概念+使用)
目录 1. 数据库的概念 1.1 数据库的存储介质 1.2 主流数据库 2. MySQL的基本使用 2.1 链接数据库 2.2 服务器管理 2.3 数据库,服务器和表关系 2.4 简单MySQL语句 3. MySQL架构 4. SQL分类 5. 存储引擎 本篇完。 1. 数据库的概念 数据库是按照数据结构来…...

虚幻UE 特效-Niagara特效实战-魔法阵
回顾Niagara特效基础知识:虚幻UE 特效-Niagara特效初识 其他四篇实战:UE 特效-Niagara特效实战-烟雾、喷泉、 虚幻UE 特效-Niagara特效实战-火焰、烛火、 虚幻UE 特效-Niagara特效实战-雨天、 虚幻UE 特效-Niagara特效实战-眩晕。 本篇笔记记录了使用空模…...

Qt多语言翻译
Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制,其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中,然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…...

Latex学习记录
目录 1.Latex各种箭头符号总结 2.[Latex]公式编辑,编号、对齐 3.Latex公式编号: 多行公式多编号,多行公式单编号 4.LaTex中输入空格以及换行 1.Latex各种箭头符号总结 箭头符号 - ➚ (piliapp.com)https://cn.piliapp.com/symbol/arrow/Latex各种箭头…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...