0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单三步在Windows上调用低功耗NPU部署AI模型

英特尔物联网 来源:英特尔物联网 2024-02-22 17:17 次阅读

相信很多小伙伴都已经知道,在最新一代的英特尔 酷睿 Ultra 移动端处理中已经集成了被称为 NPU 的神经网络加速处理器,以提供低功耗的 AI 算力,特别适合于 PC 端需要长时间稳定运行的 AI 辅助功能,例如会议聊天软件中的自动抠像,或是画面超分辨率等应用。而 OpenVINO 工具套件也在第一时间对 NPU 进行了适配,接下来就让我们一起看一下如何在英特尔 酷睿 Ultra 处理器上搭建基础环境,并调用 NPU 进行模型推理任务。

NPU 驱动安装

首先我们需要确保是否安装了最新版的 NPU 驱动,可以通过 Windows 任务管理调出当前 NPU 驱动版本信息

7f01b5f0-d162-11ee-a297-92fbcf53809c.jpg

图:NPU 在 Windows 任务管理器中显示驱动版本

查询当前最新的 NPU 驱动版本:

https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html

7f1ff6a0-d162-11ee-a297-92fbcf53809c.png

图:NPU 驱动下载页面

如果想更新或是重装 NPU 驱动,可以参考以下指引下载并安装驱动:

https://docs.openvino.ai/2023.3/openvino_docs_install_guides_configurations_for_intel_npu.html

OpenVINO 的下载和安装

由于目前 NPU Plugin 还没有被集成在 OpenVINO 的 PyPI 安装包中,因此我们需要通过下载 OpenVINO runtime 压缩包的方式进行安装。

7f35a298-d162-11ee-a297-92fbcf53809c.png

图:OpenVINO 下载页面

整个安装过程非常简单,只需将压缩包解压到在本地路径下即可。具体方法可以参考上图标红处的安装说明。

7f5bbdd4-d162-11ee-a297-92fbcf53809c.png

图:将压缩包解压至本地路径

Python 环境配置

通过执行压缩包中的 setupvars.bat 环境配置脚本,我们便可以直接在 Python 环境下加载 OpenVINO runtime 和 NPU Plugin 环境。同时利用 OpenVINO 的 Python API 指令,我们可以快速验证 NPU 是否可以被正常调用。

7fbe5232-d162-11ee-a297-92fbcf53809c.jpg

图:Python 环境中验证 NPU 调用

C++ 环境配置

不同于 Python,Windows 上的 C++ 应用需要依赖于 CMake 或者是 Visual Studio 的环境下调试,因此这里我们需要简单配置下 OpenVINO 库的路径。下面以 Visual Studio 中新建项目的属性配置页面为例。

7fd6349c-d162-11ee-a297-92fbcf53809c.png

图:配置 OpenVINO runtime 头文件路径

7ff36080-d162-11ee-a297-92fbcf53809c.png

图:配置 OpenVINO runtime 动态库路径

800aead4-d162-11ee-a297-92fbcf53809c.png

图:配置 OpenVINO runtime 及 frontednd 静态库路径

80332d0a-d162-11ee-a297-92fbcf53809c.png

图:在 Windows 本地添加 OpenVINO 环境变量路径

当完成 Visual Studio 项目属性配置后,我们可以通过调试以下示例代码,测试 NPU 是否可以被检测及调用。

#include 
#include 


int main(int argc, char* argv[]) {


  // -------- Get OpenVINO runtime version --------
  std::cout << ov::get_openvino_version() << std::endl;


    // -------- Step 1. Initialize OpenVINO Runtime Core --------
    ov::Core core;


    // -------- Step 2. Get list of available devices --------
    std::vector availableDevices = core.get_available_devices();


  // -------- Step 3. Query and print supported metrics and config keys --------
  std::cout << "available devices: " << std::endl;
    for (auto&& device : availableDevices) {
        std::cout << device << std::endl;
    }
}

805d6408-d162-11ee-a297-92fbcf53809c.png

图:VS 环境中验证 NPU 调用

测试效果

当完成 NPU 安装后,我们可以通过 OpenVINO notebooks 中提供的示例,简单测试下 NPU 的性能。这个示例会通过以下 Python 代码来将模型部署在 NPU 上。

compiled_model = core.compile_model("model.xml", "NPU")

8077ab42-d162-11ee-a297-92fbcf53809c.png

图:实时人体关键点演示效果

可以看到 NPU 在运行实时人体关键点检测模型时的效果和速度还是非常不错的,达到了 90FPS 的吞吐量,同时推理任务几乎也没有占用 CPU 额外的资源,真正做到了在提供高算力的同时,减轻 CPU 和 GPU 的任务负载。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98839
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83484
  • 加速处理器
    +关注

    关注

    0

    文章

    8

    浏览量

    6417
  • NPU
    NPU
    +关注

    关注

    2

    文章

    210

    浏览量

    18087

原文标题:简单三步在 Windows 上调用低功耗 NPU 部署 AI 模型 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开发者手机 AI - 目标识别 demo

    。 NNRt host 实现了NNRt HDI接口功能,通过对接底层AI芯片接口为上层应用提供NPU硬件推理的能力。 功能实现 JS从相机数据流获取一张图片,调用Native的接口进行目标识别的处理
    发表于 04-11 16:14

    简单三步使用OpenVINO™搞定ChatGLM3的本地部署

    英特尔 OpenVINO™ 工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模型、计算机视觉和自然语言处理等 AI 工作负
    的头像 发表于 04-03 18:18 1146次阅读
    <b class='flag-5'>简单</b><b class='flag-5'>三步</b>使用OpenVINO™搞定ChatGLM3的本地<b class='flag-5'>部署</b>

    使用CUBEAI部署tflite模型到STM32F0中,模型创建失败怎么解决?

    看到CUBE_AI已经支持到STM32F0系列芯片,就想拿来入门嵌入式AI。 生成的模型很小,是可以部署到F0上的,但是一直无法创建成功。 查阅CUBE
    发表于 03-15 08:10

    【爱芯派 Pro 开发板试用体验】爱芯派部署ChatGLM3(一)

    模型公开 benchmark 上与 ChatGLM2-6B 模型性能接近。这一创新为自然语言处理应用在移动设备上的部署提供了便捷的方式,进一
    发表于 12-17 22:54

    【爱芯派 Pro 开发板试用体验】模型部署(以mobilenetV2为例)

    格式,如这里就是axmodel 3、移动端的linux系统安装好推理引擎 4、使用推理引擎运行 下面一步步的细说,并会挑一些觉得有意思的细节说说。以一个简单的mobilenetV2为例. 2、训练
    发表于 12-10 16:34

    AI模型接入手机,行业迎来新一轮竞赛

    选择端侧部署,看上去最划算 当前,AI模型接入手机存在两种选择:云端部署和端侧部署。 目前,大多数厂商选择在端侧
    发表于 12-05 10:11 401次阅读
    <b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>接入手机,行业迎来新一轮竞赛

    python调用windows命令

    Python是一种强大的编程语言,可以用于开发各种不同类型的应用程序。其中一个常见的用途是使用Python调用Windows命令来执行特定的任务。在本文中,我们将详细讨论如何使用Python调用
    的头像 发表于 11-29 14:34 486次阅读

    与GPU能效齐平,低功耗AI公司的转型

    ,硬件成本已经成了AI发展的最大瓶颈。 为了训练高质量的AI模型,堆硬件数量几乎是避无可避的。为此,越来越多的AI芯片厂商看到了这个缺口,力求以自己的高性能硬件产品来填补竞品造成的缺口
    的头像 发表于 10-23 09:03 1029次阅读
    与GPU能效齐平,<b class='flag-5'>低功耗</b><b class='flag-5'>AI</b>公司的转型

    【KV260视觉入门套件试用体验】Vitis AI 构建开发环境,并使用inspector检查模型

    推断开发平台,它可以帮助开发者赛灵思的 FPGA 和自适应 SoC 上实现高效的 AI 应用部署。它是一个强大而灵活的 AI 开发平台,它可以让您充分利用赛灵思硬件平台的优势,实现
    发表于 10-14 15:34

    NPU跑起来iTOP_RK3588开发板Linux系统中使用NPU

    (buildroot 系统)上运行为例,来讲解如何快速上手运行。整体思路分为三步: 1 虚拟机Ubuntu20.04上交叉编译 demo程序 rknn_yolov5_demo(demo已经默认是rknn
    发表于 09-12 10:05

    npu是什么意思?npu芯片是什么意思?npu到底有什么用?

    。正如CPU和GPU一样,NPU也是一种专门的处理器芯片,但不同于前二者,NPU被用于深度学习领域。NPU在深度学习领域的应用可以提高运算速度,降低功耗,加速推理流程等。
    的头像 发表于 08-27 17:03 2.6w次阅读

    边缘AI应用越来越普遍,AI模型在边缘端如何部署

    电子发烧友网报道(文/李弯弯)在人工智能时代,越来越多的AI应用需要从云端扩展到边缘端,比如智能耳机、智能摄像机、智能手环、物流机器人等,在边缘端部署AI已经成为趋势。如今AI
    的头像 发表于 07-04 00:11 1954次阅读
    边缘<b class='flag-5'>AI</b>应用越来越普遍,<b class='flag-5'>AI</b><b class='flag-5'>模型</b>在边缘端如何<b class='flag-5'>部署</b>?

    i.MX93 EVKCM上的EthosU NPU上推断AI模型时遇到错误怎么解决?

    尝试 i.MX93 EVKCM 上的 EthosU NPU 上推断 AI 模型时遇到错误。 使用的 BSP:Linux imx93evk 6.1.1+g29549c7073bf 首先
    发表于 06-05 11:36

    【EASY EAI Nano人工智能开发套件试用体验】RKNN YOLOV5 例程测试及横向对比

    Rockchip 的 SoC 上调用芯片内部的npu加速单元。它提供了两个工具:RKNN-Toolkits 和 RKNPU。 RKNPU 工具提供了运行时和一些demo,其中包含一些已经转化为.rknn
    发表于 05-31 21:49

    RK3399pro实现安全帽识别

    就开始训练了。这太简单了吧   第三步:导出模型与SDK   训练差不多的时候就可以导出模型。   点击“导出模型/SDK”按钮   
    发表于 05-11 16:09