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

    文章

    4840

    浏览量

    108142
  • python
    +关注

    关注

    58

    文章

    4882

    浏览量

    90290
  • 加速处理器
    +关注

    关注

    0

    文章

    8

    浏览量

    6553
  • NPU
    NPU
    +关注

    关注

    2

    文章

    384

    浏览量

    21339

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI模型微调企业项目实战课

    实战通常遵循严密的“三步走”战略: 第一:数据炼金——高质量SFT数据的构建 微调领域,“垃圾进,垃圾出”是铁律。实战课的核心首先是教企业如何“洗数据”。这包括从内部ERP、OA系统、知识图谱中提
    发表于 04-16 18:48

    NPU 上运行了 eIQ TensorFlow Lite 示例模型报错

    我们已经 NPU 上运行了 eIQ TensorFlow Lite 示例模型,但它们失败并出现以下错误: 信息:加载的模型 mobilenet_v1_1.0_224_quant.t
    发表于 03-18 06:52

    【瑞萨AI挑战赛】手写数字识别模型RA8P1 Titan Board上的部署

    手写数字识别模型RA8P1 Titan Board上的部署 手写数字识别是计算机视觉领域的经典入门任务,而瑞萨RA8P1 Titan Board开发板凭借其搭载的双内核架构与专用NPU
    发表于 03-15 20:42

    边缘AI算力临界点:深度解析176TOPS香橙派AI Station的产业价值

    。openEuler作为华为主导的服务器操作系统,ARM生态、内核优化和实时性方面有深厚积累,这对于将AI Station作为服务器或工业控制器使用至关重要。 真实的开发者案例:ACT模型
    发表于 03-10 14:19

    瑞芯微RKNPU开发全指南:从环境搭建到性能优化,一文搞定边缘AI部署

    边缘 AI 领域,瑞芯微(Rockchip)的 RKNPU 凭借高性能、低功耗的特性,成为很多嵌入式开发者的首选。无论是 RK3588 的 3 核 NPU(算力达 6TOPS),还是
    的头像 发表于 02-06 16:35 3512次阅读
    瑞芯微RKNPU开发全指南:从环境搭建到性能优化,一文搞定边缘<b class='flag-5'>AI</b><b class='flag-5'>部署</b>

    使用NORDIC AI的好处

    Nordic 的 Edge AI 主要有以下几个好处(基于官方资料总结): 极低功耗、延长电池寿命 本地运行 AI,减少无线传输次数,而无线收发是最耗电的部分。设备只需上传“结果/
    发表于 01-31 23:16

    【CIE全国RISC-V创新应用大赛】基于 K1 AI CPU 的大模型部署落地

    /Qwen2.5-Coder-14B-Instruct-GGUF Qwen2.5-Coder-14B-Instruct-Q2_K.gguf --local_dir . 第三步:编写测试脚本
    发表于 11-27 14:43

    如何利用NPU模型压缩技术优化边缘AI

    随着人工智能模型从设计阶段走向实际部署,工程师面临着双重挑战:计算能力和内存受限的嵌入式设备上实现实时性能。神经处理单元(NPU)作为强大的硬件解决方案,擅长处理
    的头像 发表于 11-07 15:26 1392次阅读
    如何利用<b class='flag-5'>NPU</b>与<b class='flag-5'>模型</b>压缩技术优化边缘<b class='flag-5'>AI</b>

    使用瑞萨RUHMI工具实现AI模型部署过程

    AI无处不在。你部署AI,你的竞争对手也部署AI
    的头像 发表于 10-17 10:00 2929次阅读
    使用瑞萨RUHMI工具实现<b class='flag-5'>AI</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>过程

    工业视觉网关:RK3576赋能多路检测与边缘AI

    。· 实时性与稳定性:漏检/误检带来返工与投诉风险,系统需长时稳定、低时延。· 质量追溯与合规:检测结果需与工单/MES/条码绑定,形成可回溯的证据链。· 成本与部署:希望以更低功耗/体积/成本替代传统
    发表于 10-16 17:56

    ALINX VD100低功耗端侧大模型部署方案,运行3B模型功耗仅5W?!

    模型能运行≠用户体验好。 IDC 预测,到 2026 年,全球超过 50% 的企业 AI 工作负载将部署边缘设备上。
    的头像 发表于 09-03 14:58 857次阅读
    ALINX VD100<b class='flag-5'>低功耗</b>端侧大<b class='flag-5'>模型</b><b class='flag-5'>部署</b>方案,运行3B<b class='flag-5'>模型</b><b class='flag-5'>功耗</b>仅5W?!

    基于米尔瑞芯微RK3576开发板的Qwen2-VL-3B模型NPU多模态部署评测

    关键词:瑞芯微 RK3576、NPU(神经网络处理器)、端侧小语言模型(SLM)、多模态 LLM、边缘 AI 部署、开发板、RKLLM随着大语言
    发表于 08-29 18:08

    AI的未来,属于那些既能写代码,又能焊电路的“双栖人才”

    AI模型MCU/NPU部署的文章互动量增长超300%;嵌入式AI相关问答数量翻倍;PCB+
    发表于 07-30 16:15

    ai_cube训练模型最后部署失败是什么原因?

    ai_cube训练模型最后部署失败是什么原因?文件保存路径里也没有中文 查看AICube/AI_Cube.log,看看报什么错?
    发表于 07-30 08:15

    无法NPU上推理OpenVINO™优化的 TinyLlama 模型怎么解决?

    NPU 上推断 OpenVINO™优化的 TinyLlama 模型。 遇到的错误: get_shape was called on a descriptor::Tensor with dynamic shape
    发表于 07-11 06:58