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

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

3天内不再提示

Arm NN:在移动和嵌入式设备上无缝构建和运行机器学习应用程序

电子工程师 来源:未知 作者:邓佳佳 2018-03-06 09:25 次阅读

Arm NN

最近,Arm宣布推出神经网络机器学习(ML) 软件 Arm NN。这项关键性技术,可在基于 Arm 的高能效平台上轻松构建和运行机器学习应用程序。

实际上,该软件桥接了现有神经网络框架(例如 TensorFlow 或 Caffe)与在嵌入式 Linux 平台上运行的底层处理硬件(例如 CPUGPU 或新型 Arm 机器学习处理器)。这样,开发人员能够继续使用他们首选的框架和工具,经 Arm NN 无缝转换结果后可在底层平台上运行。

机器学习需要一个训练阶段,也就是学习阶段(“这些是猫的图片”),另外还需要一个推理阶段,也就是应用所学的内容(“这是猫的图片吗?”)。训练目前通常在服务器或类似设备上发生,而推理则更多地转移到网络边缘,这正是新版本 Arm NN 的重点所在。

一切围绕平台

机器学习工作负载的特点是计算量大、需要大量存储器带宽,这正是移动设备和嵌入式设备面临的最大挑战之一。随着运行机器学习的需求日益增长,对这些工作负载进行分区变得越来越重要,以便充分利用可用计算资源。软件开发人员面临的可能是很多不同的平台,这就带来一个现实问题:CPU 通常包含多个内核(在 Arm DynamIQ big.LITTLE 中,甚至还有多种内核类型),还要考虑 GPU,以及许多其他类型的专用处理器,包括 Arm 机器学习处理器,这些都是整体解决方案的一部分。Arm NN 这时就能派上用场。

下图中可以看出,Arm NN 扮演了枢纽角色,既隐藏了底层硬件平台的复杂性,同时让开发人员能够继续使用他们的首选神经网络框架。

Arm NN SDK 概览(首次发布版本)

您可能已经注意到,Arm NN 的一个关键要求是Compute Library,它包含一系列低级别机器学习和计算机视觉函数,面向Arm Cortex-ACPU 和Arm Mali GPU。我们的目标是让这个库汇集针对这些函数的一流优化,近期的优化已经展示了显著的性能提升 – 比同等 OpenCV 函数提高了 15 倍甚至更多。如果您是Cortex-MCPU 的用户,现在还有一个机器学习原语库 – 也就是近期发布的CMSIS-NN。

CMSIS-NN 是一系列高效神经网络内核的集合,其开发目的是最大程度地提升神经网络的性能,减少神经网络在面向智能物联网边缘设备的 Arm Cortex-M 处理器内核上的内存占用。Arm开发这个库的目的是全力提升这些资源受限的 Cortex CPU 上的神经网络推理性能。借助基于 CMSIS-NN 内核的神经网络推理,运行时/吞吐量和能效可提升大约 5 倍。

主要优势

有了 Arm NN,开发人员可以即时获得一些关键优势:

更轻松地在嵌入式系统上运行 TensorFlow 和 Caffe

Compute Library 内部的一流优化函数,让用户轻松发挥底层平台的强大性能

无论面向何种内核类型,编程模式都是相同的

现有软件能够自动利用新硬件特性

与 Compute Library 相同,Arm NN 也是作为开源软件发布的,这意味着它能够相对简单地进行扩展,从而适应 Arm 合作伙伴的其他内核类型。

适用于 Android 的 Arm NN

在五月举行的 Google I/O 年会上,Google 发布了针对 Android 的 TensorFlow Lite,预示着主要新型 API 开始支持在基于 Arm 的 Android 平台上部署神经网络。表面上,这与 Android 下的 Arm NN SDK 解决方案非常相似。使用 NNAPI 时,机器学习工作负载默认在 CPU 上运行,但硬件抽象层 (HAL) 机制也支持在其他类型的处理器或加速器上运行这些工作负载。Google 发布以上消息的同时,我们的 Arm NN 计划也进展顺利,这是为使用 Arm NN 的 Mali GPU 提供 HAL。今年晚些时候,我们还将为 Arm 机器学习处理器提供硬件抽象层。

Arm 对 Google NNAPI 的支持概览

Arm NN 的未来发展

这只是 Arm NN 的第一步:我们还计划添加其他高级神经网络作为输入,对 Arm NN 调试程序执行进一步的图形级别优化,覆盖其他类型的处理器或加速器……请密切关注今年的发展!

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

    关注

    0

    文章

    149

    浏览量

    34639
  • 机器学习
    +关注

    关注

    66

    文章

    8405

    浏览量

    132546
收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    操作 实践是学习嵌入式技术的关键。你可以购买一些低成本的嵌入式开发板,如 Arduino 或 Raspberry Pi。这些开发板具有丰富的资源和简单易懂的文档,非常适合初学者。通过
    发表于 12-12 10:51

    嵌入式学习建议

    动手做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。 ④至于嵌入
    发表于 10-22 11:41

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    Hypervisor是一种嵌入式系统中实现虚拟化技术的关键组件,它能够同一硬件平台上并行运行多个操作系统或应用程序,提供资源隔离、管理和
    发表于 10-09 19:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8章学习心得

    嵌入式Hypervisor也发挥着重要作用,它用于管理和隔离不同设备之间的应用程序,确保安全性和可靠性。 此外,我还对嵌入式Hypervisor的未来发展有了更为清晰的认识。随着物联
    发表于 10-09 18:50

    嵌入式系统的未来趋势有哪些?

    (ML)技术的快速发展,嵌入式系统将更多地整合这些先进技术,以支持智能决策和自动化。设备直接运行AI和ML模型,进行图像识别、自然语言处
    发表于 09-12 15:42

    嵌入式系统中的实时操作系统

    嵌入式RTOS是嵌入式应用程序运行、相互交互和与外界通信的底层软件机制。本节中,您将了解嵌入式
    的头像 发表于 08-20 11:28 479次阅读

    嵌入式QT常见开发方式有哪些?

    嵌入式QT常见开发方式有哪些? 嵌入式工程师在学习和使用Qt进行开发时,常见的几种开发方式包括: 1.Qt Widgets编程: 通过C++代码直接编写GUI应用程序,利用QtWi
    发表于 08-12 10:05

    深度学习算法嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从
    的头像 发表于 07-15 10:03 1316次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?

    计算机视觉和深度学习领域,NCNN(Netural Network Computer Vision)是一个轻量级的神经网络计算框架,被广泛应用于各类嵌入式设备
    发表于 05-29 17:24

    深度详解嵌入式系统专用轻量级框架设计

    MR 框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统资源和性能方面的需求。通过提供标准化的设备管理接口,极大简化了嵌入式应用开
    发表于 04-27 02:32 980次阅读
    深度详解<b class='flag-5'>嵌入式</b>系统专用轻量级框架设计

    嵌入式系统和ARM哪个更好

    嵌入式系统和ARM各有其优势,难以直接比较哪个更好,因为它们不同的应用场景和需求下都有各自的价值。
    的头像 发表于 03-28 15:14 511次阅读

    嵌入式系统发展前景?

    、舒适的生活体验。 工业自动化和智能制造是嵌入式系统的重要应用领域。未来,随着工业4.0的推进,嵌入式系统将更为广泛地应用于生产设备机器人、自动化流水线等,从而提高生产效率和质量。
    发表于 02-22 14:09

    嵌入式软件开发应该掌握哪些知识?

    两个部分组成,其中嵌入式软件是指在嵌入式系统中运行程序,用于控制硬件并提供特定的功能和服务。嵌入式软件应用广泛,包括汽车、医疗
    发表于 02-19 11:23

    嵌入式学习步骤

    开发板测试固件以及实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能化、网络化、自动化的目标。同时,随着人工智能和
    发表于 02-02 15:24

    用C语言构建高效的嵌入式程序

    嵌入式工程师在编写C语言程序时,需要注重效率和清晰的思路。本文将通过解析经典问题“猴子选大王”来展示如何用C语言思维方式构建高效、清晰的程序
    的头像 发表于 12-21 09:27 624次阅读