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

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

3天内不再提示

在ZephyrOS添加NPU驱动支持加速AI应用

恩智浦MCU加油站 来源:恩智浦MCU加油站 2026-02-12 10:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

承接上文——小编就不再铺垫了,直接上重点!

在上一节中,我们已经成功完成模型训练,并获得了量化后的 TFLite 模型。
那模型到底“长”什么样?结构是否如预期?算子是否都被正确量化?

要回答这些问题,就必须请出我们的一位老朋友-Neutron工具(朋友们可自行下载)来对模型进行可视化与结构检查。通过它,我们能更直观地了解模型的内部构成,为后续移植到Zephyr做好扎实准备。

c261e8e2-07ac-11f1-90a1-92fbcf53809c.png

为了验证是否是量化好的模型,这里任意点击一个节点,在弹出的属性页面下,可以看到他的权重类型为int8,说明我们已经成功量化好了模型,就可以开始做模型转换的准备了。

1.下载适配MCXN947的SDK代码,这样就可以直接已SDK为基础进行改造了,无需额外工作,这里要注意的是:因为转换工具和SDK版本有深度的依赖,在转换前,需要提前决定好要使用的SDK版本https://mcuxpresso.nxp.com/zh/select,这里假设我们选择的是2.16.0版本的SDK包:

c2be04e2-07ac-11f1-90a1-92fbcf53809c.png

点击构建后,会跳转页面勾选中间件,因为是要移植到Zephyr上,这里直接选择MCUXPresso IDE作为工具链(采用的GCC工具链,和Zephyr原生工具链兼容),并勾选eIQ选项,等待构建完成:

c314e028-07ac-11f1-90a1-92fbcf53809c.png

2.下载eiq ToolKit,安装包中包含了我们所需要的转换工具https://www.nxp.com/design/design-center/software/eiq-ai-development-environment/eiq-toolkit-for-end-to-end-model-development-and-deployment:EIQ-TOOLKIT,并根据实际环境下载windows或是ubuntu版本的软件:

c36fabb6-07ac-11f1-90a1-92fbcf53809c.png

下载完成后等待安装完成,安装完成后,就要开始寻找我们需要的转换工具了,切换到安装目录C: xpeIQ_Toolkit_v1.14.0in eutron-converter,里面有不同版本的转换器,要根据刚才下载的SDK版本进行选择,刚才下载的SDK版本是2.16.0,那直接选择MCU_SDK_2.16.000目录下的转换工具:

c3c613ac-07ac-11f1-90a1-92fbcf53809c.png

c41f5098-07ac-11f1-90a1-92fbcf53809c.png

3.模型转换方法:准备好量化好的模型,并利用命令行方式进行转换:

c4793ac2-07ac-11f1-90a1-92fbcf53809c.png

转换成功后,模型会已saved_model_converted.tflite保存,如下图右边的就是转换好的模型,转换器已经将三个FullyConnected算子进行了融合,变成了一个统一的NeutronGraph算子,至此模型转换就成功了。

c4d62502-07ac-11f1-90a1-92fbcf53809c.png

4.将模型保存为C数组的形式:为了在程序中使用转换好的模型,需要将模型降解为C语言数组的形式,这里直接借用Linux所提供的工具,xxd来进行操作(可以借助WSL或是虚拟机实现):

# Install xxd if it is not available
!apt-get update && apt-get -qq install xxd
# Convert to a C source file, i.e, a TensorFlow Lite for Microcontrollers model
!xxd -i {MODEL_TFLITE} > {MODEL_TFLITE_MICRO}
# Update variable names
REPLACE_TEXT = MODEL_TFLITE.replace('/', '_').replace('.', '_')
!sed -i 's/'{REPLACE_TEXT}'/g_model/g' {MODEL_TFLITE_MICRO}

执行完成后会生成一个名为:model.cc的文件,里面就是已经降解为C语言数组形式的模型文件了:

c52c8dd4-07ac-11f1-90a1-92fbcf53809c.png

至此,本期所需的前期准备工作已全部就绪:
我们完成了模型训练、量化处理,并顺利生成了可用于部署的TFLite模型。这些步骤为真正的重点 ——在Zephyr 中集成NPU运行时环境,并将模型文件部署到实际系统—— 打下了坚实基础。

真正的“硬仗”,从下一期正式开始。
敬请期待,我们将在Zephyr上让NPU“跑”起来!

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

    关注

    91

    文章

    41273

    浏览量

    302658
  • 模型
    +关注

    关注

    1

    文章

    3829

    浏览量

    52280
  • NPU
    NPU
    +关注

    关注

    2

    文章

    387

    浏览量

    21350

原文标题:为Zephyr AI加速做好准备:模型转换

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NXP推出集成NPU的MCU,支持AI边缘设备!MCU实现AI功能的多种方式

    旨在显著节省功耗,可在边缘端提供高达172倍的AI加速。   MCU 集成NPU 支持AI 功能   恩智浦推出的这款i.MX RT700内
    的头像 发表于 09-29 01:11 6843次阅读

    使用NORDIC AI的好处

    ; 自定义 Neuton 模型博客] Axon NPU :集成 nRF54LM20B 等高端 SoC 中的专用 AI 加速器,对 TensorFlow Lite 模型可实现最高约 1
    发表于 01-31 23:16

    请问NPU到底是什么?

    目前手机市场中,AI已成为标配,但手机里的AI够不够聪明,还得看手机芯片里的NPU是否够强大。那么,NPU到底是什么呢?
    发表于 12-08 07:00

    基于RKNN程序开发和模型转换的NPU简要说明

    使用 “PCIE连接的NPU” 会比使用 “USB3.0方式连接的NPU实际推理速度上慢很多。为了解决这个问题,我们制作了相关PCIE-NPU
    发表于 05-31 11:10

    AIO-3399ProC NPU开发相关资料推荐

    传输。所以导致使用 “PCIE连接的NPU” 会比使用 “USB3.0方式连接的NPU实际推理速度上慢很多。为了解决这个问题,我们制作了相关 PCIE-NPU
    发表于 07-01 17:38

    NPU驱动与mini驱动的区别在哪

    RKNPU本工程主要为瑞芯微NPU提供驱动、示例等。适用平台RK1808/RK1806RV1109/RV1126注意:RK3399Pro用户状态的库和RK1808是不一样的RKNN 工具包​
    发表于 08-19 17:12

    恩智浦最新的应用处理器 i.MX 95采用专有NPU IP进行片上AI加速

    恩智浦最新的应用处理器 i.MX 95 使用恩智浦专有的 NPU IP 进行片上 AI 加速,这与之前使用第三方 IP 的 i.MX 系列产品有所不同。实际上,越来越多的嵌入式处理器公司正在使用自己
    发表于 02-16 11:20

    tensorflow-lite可以通过NPU加速运行吗?

    你能帮我确定构建/安装所需的最小包,以便 tensorflow-lite 可以通过 NPU 加速运行吗?我知道 NPX 将它捆绑为 packagegroup-imx-ml - 但它包含的内容远远
    发表于 04-14 08:17

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

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

    【书籍评测活动NO.18】 AI加速器架构设计与实现

    经验总结图解NPU算法、架构与实现,从零设计产品级加速器当前,ChatGPT和自动驾驶等技术正在为人类社会带来巨大的生产力变革,其中基于深度学习和增强学习的AI计算扮演着至关重要的角色。新的计算范式需要
    发表于 07-28 10:50

    骁龙720加入NPU神经网络计算单元 专注AI加速

    目前还没有骁龙720的具体规格资料,只知道它是骁龙710的加强版,据说重点会加入NPU神经网络计算单元(类似华为麒麟970),专用于AI加速
    的头像 发表于 07-25 16:39 3793次阅读

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

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

    什么是NPU?什么场景需要配置NPU

    人工智能(AI)技术如火如荼的今天,NPU神经处理单元(Neural Processing Unit)作为一种新兴的硬件加速器,正在成为ARM主板配置中的新宠。与传统的CPU和GPU
    的头像 发表于 10-11 10:13 1.7w次阅读
    什么是<b class='flag-5'>NPU</b>?什么场景需要配置<b class='flag-5'>NPU</b>?

    NPU深度学习中的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度学习
    的头像 发表于 11-14 15:17 3590次阅读

    NPU技术如何提升AI性能

    随着人工智能技术的飞速发展,深度学习作为AI领域的核心驱动力,对计算能力的需求日益增长。NPU技术应运而生,为AI性能的提升提供了强大的硬件支持
    的头像 发表于 11-15 09:11 2929次阅读