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

    文章

    177

    浏览量

    75933

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

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

收藏 人收藏

    评论

    相关推荐

    边缘设备上设计和部署深度神经网络的实用框架

    ,以及由强大而高效的软件工具链补充的低成本边缘设备的可用性。此外,需要避免通过网络传输数据——无论是出于安全原因还是仅仅为了尽量减少通信成本。 边缘人工智能涵盖广泛的设备、传感器、微控
    的头像 发表于 12-20 11:28 82次阅读

    BP神经网络和卷积神经网络的关系

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种在人工智能和机器学习领域
    的头像 发表于 07-10 15:24 1442次阅读

    不同的人工神经网络模型各有什么作用?

    人工神经网络(Artificial Neural Networks, ANNs)是一种受生物神经网络启发的计算模型,广泛应用于各种领域。本文将介绍不同类型的
    的头像 发表于 07-05 09:19 771次阅读

    人工神经网络模型包含哪些层次

    人工神经网络(Artificial Neural Network,ANN)是一种模拟人脑神经网络的计算模型,具有自适应、自学习、泛化能力强等特点。本文将详细介绍
    的头像 发表于 07-05 09:17 564次阅读

    人工神经网络模型的分类有哪些

    人工神经网络(Artificial Neural Networks, ANNs)是一种模拟人脑神经元网络的计算模型,它在许多领域,如图像识别、语音识别、自然语言处理、预测分析等有着广泛
    的头像 发表于 07-05 09:13 1117次阅读

    人工智能神经网络系统的特点

    人工智能神经网络系统是一种模拟人脑神经网络结构和功能的计算模型,具有高度的自适应性、学习能力和泛化能力。本文将介绍人工智能
    的头像 发表于 07-04 09:42 464次阅读

    人工智能神经网络模型有哪些

    人工智能神经网络模型是一类受人脑启发的计算模型,它们在许多领域都取得了显著的成功。以下是一些常见的神经网络
    的头像 发表于 07-04 09:41 594次阅读

    人工智能人工神经网络有什么区别

    人工智能是一门研究如何使计算机模拟人类智能行为的学科。它起源于20世纪40年代,当时计算机科学家们开始尝试开发能够模拟人类思维过程的计算机程序。人工智能的目标是通过计算机程序实现对人类智能
    的头像 发表于 07-04 09:39 1212次阅读

    人工智能神经网络的结构是什么

    人工智能神经网络是一种模拟人脑神经网络的计算模型,其结构和功能非常复杂。 引言 人工智能神经网络
    的头像 发表于 07-04 09:37 560次阅读

    人工智能神经网络的工作原理是什么

    人工智能神经网络的工作原理是一个复杂且深入的话题,涉及到多个领域的知识,包括数学、计算机科学、生物学等。 神经网络的基本概念 神经网络是一种受人脑结构启发的计算
    的头像 发表于 07-04 09:35 690次阅读

    人工智能神经网络芯片的介绍

    : 概述 人工智能神经网络芯片是一种新型的处理器,它们基于神经网络的计算模型,通过模拟人脑神经元的连接和交互方式,实现对数据的
    的头像 发表于 07-04 09:33 723次阅读

    神经网络人工智能的关系是什么

    神经网络人工智能的关系是密不可分的。神经网络人工智能的一种重要实现方式,而人工智能则是神经网络
    的头像 发表于 07-03 10:25 1091次阅读

    卷积神经网络和bp神经网络的区别

    化能力。随着深度学习技术的不断发展,神经网络已经成为人工智能领域的重要技术之一。卷积神经网络和BP神经
    的头像 发表于 07-02 14:24 3650次阅读

    人工神经网络模型及其应用有哪些

    人工神经网络已经发展成为机器学习和人工智能领域的重要技术之一。本文将详细介绍人工神经网络模型
    的头像 发表于 07-02 10:04 1045次阅读

    神经网络人工智能的关系

    在快速发展的科技领域,人工智能(Artificial Intelligence, AI)和神经网络(Neural Networks)是两个备受瞩目的概念。它们之间的联系紧密而复杂,共同推动了智能
    的头像 发表于 07-01 14:23 826次阅读