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

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

3天内不再提示

高效打包边缘人工智能神经网络模型

CEVA 来源:未知 2023-11-09 10:15 次阅读

嵌入式设计中常常需要将应用程序打包到有限的片上内存中,现在,将人工智能神经网络模型压缩到有限的存储器中也是如此。对于传统软件,就某些方面而言,做到这一点可谓更具挑战,因为基于神经网络的系统中的工作内存都是“内部循环”的,要求换出到DDR内存,可能会降低性能。另外,在推理过程中重复访问DDR也会增加边缘设备的典型低功耗预算,这一点也同样很难令人满意。更大的片上存储器是解决问题方法之一,但是会增加产品成本。综上所述,最佳解决方案是尽可能高效地将模型打包到可用内存中。

众所周知,在编译人工智能神经网络模型以便在边缘设备上运行时,有一些量化技术可以缩小此模型的大小,如将浮点数据和权重值转换为定点,然后进一步缩小为INT8或更小的值。想象一下,如果还能更进一步会怎样。在本文中,我将介绍几种图优化技术,助您在2MB的二级缓存中安装更多量化模型,但仅仅量化是无法完成安装的。

优化人工智能神经网络图中的缓冲区分配

wKgaomVMQdOAfJPPAACmlCKXd8g725.png

▲图1.一个简单的人工智能图

(Op代表运算符;E代表外部输入;

C代表常数(权重);V代表变量;T代表张量)

人工智能神经网络模型表示为图形并作为图形来管理,其中的运算是通过缓冲区相互连接的节点进行的。这些缓冲区固定分配在内存中,大小在编译图时确定,用于保存图中的中间计算结果或输入和输出。在所有图中,流水关系图是最基本的一种,但更典型的简单图如图1所示。

我们的目标是让编译器优化缓冲区内存总需求。想想简单的人工智能神经网络图中可能的分配序列(图2中的左图)。首先要明白,图中的不同运算需要不同大小的缓冲区,并且在进行下一波处理之前,将不再需要已完成运算的输入缓冲区。读取缓冲区A(此处分配有800K字节),就可以在后续运算中重复使用了,缓冲区B也是如此,依此类推。在左图出现分支时,先将缓冲区A和B分配给了右侧分支,之后则必须为左侧分支分配一个新的缓冲区C。

wKgaomVMQdOAMcq5AABxXZ4kfzw357.jpg

▲图2.说明缓冲区分配的简单图

(右图在左图的基础上,将缓冲区B和C互换

并增加了缓冲区B的大小,得到了改善)

从这个例子中不难看出,一开始就将缓冲区B的大小增加到1000K,稍后再在左侧分支中重复使用B的全部大小,右侧分支中缓冲区C就只需要额外10K内存,如右图所示。左/右内存需求差异明显。左图需要2.5MB (800K+700K+1000K),而修改顺序后的右图只需要 1.81MB(800K+1000K+10K)。

在一般人工智能神经网络图中找出最优排序就是众所周知的0-1背包问题。我们展开了初步测试,研究这种优化如何改善打包到固定大小L2缓存的效果。即使是当下初步阶段,结果也相当不错。我们测试了几种常见网络在2MB和4MB L2缓存中的安装效果。优化前,只有13%的模型可以安装在2MB内存中,38%的模型可以安装在4MB内存中。优化后,66%的模型可以安装在2MB内存中,83%的模型可以安装在4MB内存中。仅这一项优化就值得我们努力,我们的目标是确保更多模型可以完全在片上内存中运行。

通过合并缓冲区优化人工智能神经网络模型

在卷积人工智能神经网络模型中,经过前几层处理后,缓冲区大小通常会缩小。这种结果表明,一开始分配的大缓冲区可以通过与稍后需要的较小缓冲区共享空间得到更高效的利用。图3说明了这种可能性。

wKgaomVMQdSAckvDAABjXjMxhDI560.jpg

▲图3.不同的简单图

(最初为缓冲区A分配的大小可以稍后由左右分支共享,

此处的C缓冲区源自最初的A缓冲区)

我们试着进行优化,看看这种合并对内存总需求有何影响。在一系列无比熟悉的网络中,我们发现缓冲区总大小减小了15%到35%。再次重申一遍,这些改进非常具有吸引力。

要点

我们通过这些优化,运行各种主流卷积人工智能神经网络模型,从检测到分类到细分,再到RNN模型不一而足。大多数情况下,模型完全迁移至了4MB二级缓存,某些情况下,模型迁移至了二级缓存中,只有一部分还留在DDR内存中。几乎所有模型都在打包方面呈现出巨大改进。

即使你的人工智能神经网络模型无法安装在片上内存,也并非无法优化。在人工智能编译器阶段可以对缓冲区进行优化,大幅压缩模型总大小。在CEVA,我们很乐意与你讨论以上问题和其他想法,以便进一步优化人工智能神经网络模型的内存使用。

识别右侧二维码

立即了解CEVA

更多信息

wKgaomVMQdSAUrT4AAFqtfxSXaM346.png  

本文作者:Rami Drucker, Machine Learning SW Architect, CEVA


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

    关注

    1

    文章

    175

    浏览量

    75540

原文标题:高效打包边缘人工智能神经网络模型

文章出处:【微信号:CEVA-IP,微信公众号:CEVA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工智能模型、应用场景、应用部署教程超详细资料

    人工智能是IC行业近几年的热词,目前此技术已经有很多成熟的模型和落地案例。在此跟大家做个分享,更多详细资料,请自行搜索:【展锐坦克邦】,坦克邦-智算天地集算法模型、部署说明于一体,为广大客户提供了
    发表于 11-13 14:49

    人工神经网络相关资料

    以冯·诺依曼型计算机为中心的信息处理技术的高速发展,使得计算机在当今的信息化社会中起着十分重要的作用。但是,当用它来解决某些人工智能问题时却遇到了很大的困难。 例如,一个人可以很容易地识别他人的脸孔
    发表于 09-27 06:13

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)

    神经网络的设计基础。神经元是以生物的神经系统的神经细胞为基础的生物模型。在人们对生物神经系统进行
    发表于 09-13 16:41

    基于IDE构建用于STM32微处理器的完整人工智能项目

    本用户手册指导了基于 IDE 逐步构建用于 STM32 微处理器的完整人工智能(AI)项目,自动转换预训练好的神经网络(NN)并集成所生成的优化库。本手册还介绍了 X-CUBE-AI 扩展包,该扩展
    发表于 09-07 06:15

    构建神经网络模型的常用方法 神经网络模型的常用算法介绍

    神经网络模型是一种通过模拟生物神经元间相互作用的方式实现信息处理和学习的计算机模型。它能够对输入数据进行分类、回归、预测和聚类等任务,已经广泛应用于计算机视觉、自然语言处理、语音处理等
    发表于 08-28 18:25 625次阅读

    神经网络模型的工作原理和作用

    神经网络模型是一种计算模型,基于人类神经系统的处理和学习机制,模仿大脑神经元的工作方式,对输入数据进行分析处理,实现分类、识别和预测等任务。
    发表于 08-28 18:21 927次阅读

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑
    的头像 发表于 08-22 16:45 3434次阅读

    卷积神经网络模型的优缺点

    卷积神经网络模型的优缺点  卷积神经网络(Convolutional Neural Network,CNN)是一种从图像、视频、声音和一系列多维信号中进行学习的深度学习模型。它在计算机
    的头像 发表于 08-21 17:15 2342次阅读

    卷积神经网络模型搭建

    卷积神经网络模型搭建 卷积神经网络模型是一种深度学习算法。它已经成为了计算机视觉和自然语言处理等各种领域的主流算法,具有很大的应用前景。本篇文章将详细介绍卷积
    的头像 发表于 08-21 17:11 615次阅读

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型  卷积
    的头像 发表于 08-21 17:11 808次阅读

    常见的卷积神经网络模型 典型的卷积神经网络模型

    常见的卷积神经网络模型 典型的卷积神经网络模型 卷积神经网络(Convolutional Neural Network, CNN)是深度学习
    的头像 发表于 08-21 17:11 1924次阅读

    卷积神经网络模型原理 卷积神经网络模型结构

    卷积神经网络模型原理 卷积神经网络模型结构  卷积神经网络是一种深度学习神经网络,是在图像、语音
    的头像 发表于 08-21 16:41 662次阅读

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容?

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容? 卷积神经网络(Convolutional Neural Networks,CNN)是深度学习领域中最广泛应用的
    的头像 发表于 08-21 16:41 1510次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种
    的头像 发表于 08-17 16:30 918次阅读

    神经网络模型用于解决什么样的问题 神经网络模型有哪些

    神经网络模型是一种机器学习模型,可以用于解决各种问题,尤其是在自然语言处理领域中,应用十分广泛。具体来说,神经网络模型可以用于以下几个方面:
    的头像 发表于 08-03 16:37 4223次阅读