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

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

3天内不再提示

AI编译器如何在传统开源框架中的工作中受益

星星科技指导员 来源:嵌入式计算设计 作者:Brandon Lewis 2022-06-02 11:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TensorFlow/TensorFlow Lite 相比,Glow 编译的输入表现出 3 倍帧/秒的性能提升,而该图显示了 AOT 编译与 JIT 编译器相比的效率。

创造智能需要大量数据。所有这些数据都需要能够支持它的技术。

人工智能AI) 而言,这些技术包括大量直接访问的高速内存;能够同时处理同一数据集的不同部分的并行计算架构;并且有点令人惊讶的是,与许多其他应用程序相比,计算精度更低。数据中心可以提供几乎无穷无尽的这种技术组合。

因此,人工智能开发工具是为互联网查询、语音搜索和在线面部识别等应用程序背后的数据中心基础设施而设计的。但随着人工智能技术的进步,在各种用例中利用它的愿望也在增加——包括那些在小型、资源受限、基于 MCU 的边缘平台上运行的用例。因此,例如,编译器等工具还必须能够针对占用空间更小的设备优化 AI 数据和算法,而不是仅仅关注运行基于云的推荐系统的高端硬件加速器。

Facebook 的开源机器学习编译器 Glow 就是这种工具演变的一个例子。它使用两阶段中间表示 (IR) “降低”神经网络图,该中间表示生成针对各种嵌入式和服务器级硬件目标的特性和内存进行专门调整的机器代码(图 1)。它还执行提前 (AOT) 编译,最大限度地减少运行时开销,以节省磁盘空间、内存、启动时间等。

pYYBAGKYNaKADG4lAAEW_YkElmY357.png

图 1. Glow 高级中间表示中的降低计算图表示 A 的回归,该回归由 Glow 自动区分。

“我们拥有这个非常高性能的运行时,但很多项目并不关心,因为它们不在数据中心内,”Facebook 的研究科学家 Jordan Fix 解释道。“他们需要做 AOT 编译,尽可能地缩小,使用量化和并行化,并且没有太多的依赖关系。

“AOT 编译在数据中心并不那么重要,但我们可以将 LLVM 后端连接到 Glow 并针对 x86、ArmRISC-V 和专用架构,”Fix 继续说道。“Glow 的工作方式是你有几个级别的 IR,它们使用高级优化和量化来限制内存。那时,编译器后端可以接受基于指令的 IR,并根据需要对其进行优化和编译。”

Glow 的另一大优势,特别是在多样化的嵌入式技术领域,是能够在简单的 C 包装器中编译模型。这意味着嵌入式 AI 工程师可以针对他们选择的编译器后端和架构优化 Glow。它本机支持来自流行 AI 框架和库(如 PyTorch 和 Arm 的 CMSIS-NN)的输入,还可以通过 ONNX 神经网络交换接受来自 TensorFlow 等环境的图形。

AI 编译器的竞争

当然,Glow 并不是唯一可用的神经网络编译器。Google 的多级中间表示 (MLIR) 是一种编译器基础架构,专注于张量处理器,已被 LLVM 吸收。Microsoft 的嵌入式学习库 (ELL) 是另一个用于资源受限的 AI 设备的交叉编译工具链。

然而,Glow 比任何一个都更成熟,已于 2018 年开源。它也比许多现有的 AI 编译器选项更高效。

在发布的 i.MX 跨界 MCU 的性能测试中,NXP 系统工程师使用 TensorFlow Lite 和 Glow 编译了 32 x 32 CIFAR-10 数据集,并将它们输入 RT1060、RT1170 和 RT685 设备。Glow 编译的输入表现出至少 3 倍帧/秒的性能提升,而图 2 让您了解 AOT 编译与 TensorFlow/TensorFlow Lite 框架中使用的即时 (JIT) 编译相比的效率如何。

poYBAGKYNayAWAp9AAB212uxoCo615.png

pYYBAGKYNbKAU1lmAAClOgEERas827.png

图 2a 和 2b。与 TensorFlow Lite 等即时 (JIT) 编译器相比,Glow 的提前 (AOT) 编译器可节省大量 RAM 和闪存,同时还具有显着的每秒帧数性能优势。

请记住,i.MX1060 具有高达 1 MB 的片上 RAM。NXP 的 eIQ 软件开发环境支持 Glow。

开源人工智能:看不到终点线

人工智能技术市场瞬息万变,这使得开发组织很难致力于任何技术。这可能是 Glow 最引人注目的方面之一,它甚至与技术没有直接关系。

作为一个拥有 130 多个活跃贡献者的开源项目,Facebook、英特尔等大型组织继续对 Glow 主线做出承诺,因为它们现在依赖于其通用基础设施来访问指令、操作符、内核等。

然后,很明显,开源具有内在价值。

“我们经常看到我们关心的外部用户的贡献,比如更通用的并行化框架,我们有很多他们正在运行的机器学习模型,”Fix 说。“所以也许它可以让他们在我们无需做任何事情的情况下获得对运营商的支持。“我认为您正在研究这个特定的计算机视觉模型”或者,“我认为这是您所说的操作员。” 他们只是审查它并移植它并登陆它。

“我们都可以从彼此在传统开源框架中的工作中受益,”他补充道。

审核编辑:郭婷

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

    关注

    61

    文章

    1410

    浏览量

    199088
  • 人工智能
    +关注

    关注

    1819

    文章

    50298

    浏览量

    266844
  • 编译器
    +关注

    关注

    1

    文章

    1672

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机开发功能安全编译器

    期间显示的防御代码。仅仅因为在单元测试期间已经实现了防御性代码的覆盖范围,因此并不能保证其已存在于完整的系统。 在功能安全这个陌生的领域,编译器可能超出了其要素。这就是为什么目标代码验证(OCV
    发表于 12-01 06:44

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    在万物智联的时代背景下,操作系统底层能力的构建离不开编程语言与编译器的关键支撑。作为开源鸿蒙生态的核心技术,语言设计与编译器、虚拟机实现的进步直接关系到开发效率、运行性能与系统安全。本次分论坛聚焦
    的头像 发表于 11-20 17:24 1140次阅读
    <b class='flag-5'>开源</b>鸿蒙技术大会2025丨<b class='flag-5'>编译器</b>与编程语言分论坛:语言驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    取之于开源,贡献于开源:进迭时空AI计算生态开源贡献

    开放创新是进迭时空的企业价值观之一,公司的软硬件技术栈构建在开源之上,同时也积极在操作系统、编译器AI计算生态等领域为开源做贡献。opencvopencv是最具影响力的机器视觉
    的头像 发表于 10-21 09:03 5980次阅读
    取之于<b class='flag-5'>开源</b>,贡献于<b class='flag-5'>开源</b>:进迭时空<b class='flag-5'>AI</b>计算生态<b class='flag-5'>开源</b>贡献

    GCC编译器,怎么才能实现c文件未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的函数想留在代码里,但不想被编译
    发表于 09-28 12:25

    开源鸿蒙MNN AI应用开发与MNN移植经验

    本期内容由AI Model SIG提供,介绍了在开源鸿蒙,利用MNN开源框架开发AI应用以及基
    的头像 发表于 09-04 11:31 4954次阅读
    <b class='flag-5'>开源</b>鸿蒙MNN <b class='flag-5'>AI</b>应用开发与MNN移植经验

    请问如何在keil μVision 5上进行ARM编译器的代码优化?

    何在keil μVision 5上进行ARM编译器的代码优化?
    发表于 08-20 07:37

    何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6?

    在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6!
    发表于 08-20 06:29

    何在裸机环境运行KleidiAI微内核

    探索如何在裸机环境运行 KleidiAI 内核,并通过测试多款 C/C++ 编译器,以确定如何能更高效地生成代码。
    的头像 发表于 08-08 15:16 3993次阅读
    如<b class='flag-5'>何在</b>裸机环境<b class='flag-5'>中</b>运行KleidiAI微内核

    求助,关于NanoEdge AI Studio生成的库交叉编译器版本疑问求解

    我使用的是NanoEdge AI Studio v4.3.1,跟着官方交教程生成了库libneai.a,我通过metadata.json文件得知生成这个库的交叉编译器版本是\"
    发表于 08-08 07:25

    进迭时空同构融合RISC-V AI CPU的Triton算子编译器实践

    Triton是由OpenAI开发的一个开源编程语言和编译器,旨在简化高性能GPU内核的编写。它提供了类似Python的语法,并通过高级抽象降低了GPU编程的复杂性,同时保持了高性能。目前
    的头像 发表于 07-15 09:04 2179次阅读
    进迭时空同构融合RISC-V <b class='flag-5'>AI</b> CPU的Triton算子<b class='flag-5'>编译器</b>实践

    边缘设备AI部署:编译器如何实现轻量化与高性能?

    、ASIC等)上高效执行的机器代码。AI编译器AI模型的部署和优化扮演着关键角色,能够显著提升模型的运行效率和性能。   AI
    的头像 发表于 07-06 05:49 6912次阅读

    编译器功能安全验证的关键要素

    在汽车、工业、医疗等安全关键型应用,确保功能安全合规性需要严格的工具链验证。开发安全关键型软件的企业必须遵守ISO 26262、IEC 61508、ISO 62304等国际标准对编译器工具链进行全面的验证。
    的头像 发表于 07-05 13:37 1685次阅读

    RISC-V架构下的编译器自动向量化

    进迭时空专注于研发基于RISC-V的高性能新AICPU,对于充分发挥CPU核的性能而言,编译器是不可或缺的一环,而在AI时代,毫无疑问向量算力将发挥越来越重要的作用。进迭时空非常重视RISC-V
    的头像 发表于 06-06 16:59 1428次阅读
    RISC-V架构下的<b class='flag-5'>编译器</b>自动向量化

    滚珠丝杆在工作中损耗会影响什么?

    滚珠丝杆在工作中的损耗会对设备的性能、精度、寿命和运行稳定性产生多方面的影响。
    的头像 发表于 05-10 17:54 626次阅读
    滚珠丝杆在<b class='flag-5'>工作中</b>损耗会影响什么?

    RVCT编译器是否比GNU的编译器的代码执行速度更快?

    使用FX3S遇到了RVCT编译器的问题。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的设置没有找到RVCT的选项, 请问支持的具体版本
    发表于 05-08 07:49