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

    文章

    1376

    浏览量

    194683
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261474
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

    什么样的代码会被编译器优化

    现在的编译器有多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 929次阅读

    EE-88:使用21xx编译器在C初始化变量

    电子发烧友网站提供《EE-88:使用21xx编译器在C初始化变量.pdf》资料免费下载
    发表于 01-13 15:54 0次下载
    EE-88:使用21xx<b class='flag-5'>编译器</b>在C<b class='flag-5'>中</b>初始化变量

    Triton编译器与GPU编程的结合应用

    Triton编译器简介 Triton编译器是一种针对并行计算优化的编译器,它能够自动将高级语言代码转换为针对特定硬件优化的低级代码。Triton编译器的核心优势在于其能够识别并行模式,
    的头像 发表于 12-25 09:13 1313次阅读

    Triton编译器如何提升编程效率

    在现代软件开发编译器扮演着至关重要的角色。它们不仅将高级语言代码转换为机器可执行的代码,还通过各种优化技术提升程序的性能。Triton 编译器作为一种先进的编译器,通过多种方式提升
    的头像 发表于 12-25 09:12 1191次阅读

    Triton编译器在高性能计算的应用

    先进的编译技术,为高性能计算提供了强大的支持。 Triton编译器简介 Triton编译器是一种开源编译器
    的头像 发表于 12-25 09:11 1560次阅读

    Triton编译器的优化技巧

    在现代计算环境编译器的性能对于软件的运行效率至关重要。Triton 编译器作为一个先进的编译器框架,提供了一系列的优化技术,以确保生成的
    的头像 发表于 12-25 09:09 1826次阅读

    Triton编译器的优势与劣势分析

    据流分析技术,能够自动识别并优化深度学习模型的计算瓶颈,从而提高模型的整体性能。 它支持多种硬件平台的优化,包括CPU、GPU、FPGA等,为深度学习模型的部署提供了更广泛的选择。 灵活可扩展 : Triton编译器采用了模块化的设计思想,开发者可以根据需要自定
    的头像 发表于 12-25 09:07 1863次阅读

    Triton编译器在机器学习的应用

    多种深度学习框架,如TensorFlow、PyTorch、ONNX等,使得开发者能够轻松地将不同框架下训练的模型部署到GPU上。 2. Triton编译器工作原理 Triton
    的头像 发表于 12-24 18:13 1627次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言和编译器的访问,使得用户可以在Python环境
    的头像 发表于 12-24 17:33 1452次阅读

    Triton编译器与其他编译器的比较

    的GPU编程框架,使开发者能够编写出接近手工优化的高性能GPU内核。 其他编译器 (如GCC、Clang、MSVC等): 定位:通用编译器,支持多种编程语言,广泛应用于各种软件开发场景。 目标:提供稳定、高效的
    的头像 发表于 12-24 17:25 1580次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源编译器前端,它支持多种编程语言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的编译器框架,允许开发者添加新的编程语言
    的头像 发表于 12-24 17:23 2686次阅读