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

测试 1:基于Stable Diffusion的GIMP 图像生成

图片来源:Tom’s Hardware

为 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。所有四个设备可以是相同的,也可以切换它们。

图片来源:Tom’s Hardware

当我们同时使用GPU和NPU时,在Meteor Lake 笔记本电脑上生成图像仅花费 16 秒。当我们单独使用 GPU 时,这些时间增加了几秒,而当我们使用 NPU 时,这些时间几乎增加了一倍(31秒)。单独使用 CPU 的时间是最高的,分别为 59.5 秒和 61 秒。

下图是使用SD_1_5_square_int8 模型驾驶汽车的猫时,会得到下图这样的结果。如果想要更好看的输出,则需要使用SD_1_5_square 等模型,它可以生成逼真的图像,但是这个模型目前还没有NPU的支持。

图片来源:Tom’s Hardware

测试 2:Whisper Transcription

图片来源:Tom’s Hardware

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

测试 3:Audacity OpenVINO Noise Reduction

图片来源:Tom’s Hardware

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

图片来源:Tom’s Hardware

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秒。

图片来源:Tom’s Hardware

NPU 减轻 CPU 负担

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

图片来源:Tom’s Hardware

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

图片来源:Tom’s Hardware

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

Meteor Lake

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

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

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

相关文章

LeetCode —— 43. 字符串相乘

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

【国产MCU】-CH32V307-GPIO控制:输入与输出

GPIO控制:输入与输出 文章目录 GPIO控制:输入与输出1、GPIO简单介绍2、驱动API介绍3、GPIO配置代码实现3.1 GPIO配置为输出3.2 GPIO配置为输入CH32V307的GPIO口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO口还可以复用成其他…

Java面试架构篇【一览众山小】

文章目录 🚡 简介☀️ Spring🐥 体系结构🐠 生命周期 🍁 SpringMVC🌰 执行流程 🌜 SpringBoot🌍 核心组件🎍 自动装配🎑 3.0升级 🔅 spring Cloud Alibaba&am…

Redis缓存穿透、缓存击穿、缓存雪崩的解决方案

一、背景 不管是实际工作还是面试,这3个问题都是非常常见的,今天我们就好好探讨一下这个三个问题的解决方案 三者的区别: 缓存穿透:查询缓存和数据库都不存在的数据,缓存没有,数据库也没有 缓存击穿&#…

系统架构设计师-22年-下午题目

系统架构设计师-22年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答,二、三、四、五题中任选两题作答 试题一 (25分) 说明 某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。…

redis 极简分布式锁实现

写在前面 工作中遇到,整理 reids 做简单分布式锁的思考博文适合刚接触 redis 的小伙伴理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是…

(一)PySpark3:安装教程及RDD编程(非常详细)

目录 一、pyspark介绍 二、PySpark安装 三、RDD编程 1、创建RDD 2、常用Action操作 ①collect ②take ③takeSample ④first ⑤count ⑥reduce ⑦foreach ⑧countByKey ⑨saveAsTextFile 3、常用Transformation操作 ①map ②filter ③flatMap ④sample ⑤d…

从比亚迪的整车智能战略,看王传福的前瞻市场布局

众所周知,作为中国新能源汽车的代表企业,比亚迪在中国乃至全球的新能源汽车市场一直都扮演着引领者的角色。2024年新年伊始,比亚迪又为新能源汽车带来了一项重磅发布。 整车智能才是真智能 近日,在“2024比亚迪梦想日”上&#xf…

webassembly003 TTS BARK.CPP-02-bark_tokenize_input(ctx, text);

bark_tokenize_input函数 bark是没有语言控制选项的,但是官方的版本无法运行中文bark_tokenize_input会调用bert_tokenize函数,bark_tokenize_input函数对中文分词失效,也就是导致不支持中文的原因。 void bark_tokenize_input(struct bark_…

jenkins部署(docker)

docker部署,避免安装tomcat 1.拉镜像 docker pull jenkins/jenkins2.宿主机创建文件夹 mkdir -p /lzp/jenkins_home chmod 777 /lzp/jenkins_home/3.启动容器 docker run -d -p 49001:8080 -p 49000:50000 --privilegedtrue -v /lzp/jenkins_home:/var/jenkins_…

2401Idea用GradleKotlin编译Java控制台中文出乱码解决

解决方法 解决方法1 在项目 build.gradle.kts 文件中加入 tasks.withType<JavaCompile> {options.encoding "UTF-8" } tasks.withType<JavaExec> {systemProperty("file.encoding", "utf-8") }经测试, 只加 tasks.withType<…

Physically Based Area Lights

11.1 概括 本章介绍了由 Guerrilla Games 公司在 PS4 开发的基于物理的区域照明系统&#xff08;见图11.1&#xff09;。 我们提出了一种新颖、实时的区域照明分析模型&#xff0c;能够支持多种照明形状。每种形状都可以用平面上简单的三维或二维函数来表示。讨论的应用包括以下…