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

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

3天内不再提示

如何提升NPU的能效比?

佐思汽车研究 来源:佐思汽车研究 作者:Nathan J 2022-08-01 11:19 次阅读

现如今,深度神经网络正在以越来越大的规模部署,横跨了从云端,自动驾驶IoT等平台。比如用于图像识别,语音识别及翻译,癌症检测以及自动驾驶中对感知层海量数据的处理等。在很多领域,深度神经网络的精度已经超越人类,它的优越性来源于它对原始数据的特征提取,并通过对大量数据的学习来获取输入空间的有效表征,但是它的高精度是以超高计算复杂度为代价。因此很多厂商都在追逐NPU的算力来解决这些复杂问题,但是随着算力的提高,NPU设计也越来越复杂,将伴随着面积和功耗的增加,这对于那些面积和功耗有很大限制的设备带来了挑战,因此如何提升NPU的能效比就成了亟待解决的问题。

6bdd29be-1147-11ed-ba43-dac502259ad0.png

NPU通过数据分区和有效调度,利用数据的重用以及执行分段来提高能效比和硬件利用率,而实现高利用率,数据重用将直接依赖于如何调度深度神经网络的计算和如何将这些计算有效的映射到NPU的硬件单元上。以CNN为例,数据流无非包含三个方面filter(Weight),ifmap和ofmap,如下图。

6bf2bb62-1147-11ed-ba43-dac502259ad0.png

因此在设计NPU时需要考虑如利用内存的层次结构,决定哪些数据要读到那一层的内存中以及什么时候被处理,如何可以重用filter,ifmap和ofmap,将他们存放在本地内存中,从而大大减少DRAM的访问次数,这将在很大程度上提高NPU的硬件利用率及性能,并减少由于DRAM访问带了的额外功耗。根据数据处理特征可以将数据流分为以下几类:

1)、静态weight

weight静态数据流的设计是通过在PE的RF(Register File)中存取weight,来减少读取weight产生的功耗。weight从DRAM读取到RF并保持静态以供进一步访问,NPU在计算时尽可能多的利用RF中的weight以达到最大程度的重用。通常的实现是将ifmap广播给所有的PE,部分和(Psum)将穿过所有的PE来完成空间上的累加。

6c0593b8-1147-11ed-ba43-dac502259ad0.png

2)、静态输出

输出静态数据流的设计是通过将accumulator产生的Psum存放到本地的RF中,以避免将Psum刚写入DRAM再读回,从而减少因Psum读写产生的功耗。通常的实现是流式输入Activation,并将weight广播给所有的PE。

6c19630c-1147-11ed-ba43-dac502259ad0.png

3)、无本地重用

如果考虑到RF会增大面积,可以将所有的数据都存放到Global Buffer中,这样没有任何数据会留在PE的RF,也不会增设RF单元来减小面积,但是增加了PE和Global Buffer的数据交互。具体来说是通过多广播Activation,单广播Weight以及Psum穿过所有的PE进行累加来实现的。

6c29f104-1147-11ed-ba43-dac502259ad0.png

4)、静态行

静态行数据流的目标是将所有的数据类型(Activation,weight, psum)的重用和计算都在RF中完成,来提升总体的能效。它区别于上面的静态weight和静态输出,只是分别对weight和psum进行优化。

6c3b85a4-1147-11ed-ba43-dac502259ad0.png

具体选用哪种数据流方式要结合NPU微架构的设计。下面总结了来自于几个厂家的NPU,它们分别利用了不同数据流类型来提高能效比。

6c461b0e-1147-11ed-ba43-dac502259ad0.png

参考文献:

【1】Vivienne S. Yu-Hsin C.and etc., “Efficient Processing of Deep Neural Networks: A Tutorial and Survey”

关于复睿微电子

复睿微电子是世界500强企业复星集团出资设立的先进科技型企业。复睿微电子植根于创新驱动的文化,通过技术创新改变人们的生活、工作、学习和娱乐方式。公司成立于2022年1月,目标成为世界领先的智能出行时代的大算力方案提供商,致力于为汽车电子人工智能、通用计算等领域提供以高性能芯片为基础的解决方案。

目前主要从事汽车智能座舱、ADS/ADAS芯片研发,以领先的芯片设计能力和人工智能算法,通过底层技术赋能,推动汽车产业的创新发展,提升人们的出行体验。在智能出行的时代,芯片是汽车的大脑。复星智能出行集团已经构建了完善的智能出行生态,复睿微是整个生态的通用大算力和人工智能大算力的基础平台。复睿微以提升客户体验为使命,在后摩尔定律时代持续通过先进封装、先进制程和解决方案提升算力,与合作伙伴共同面对汽车智能化的新时代。

审核编辑 :李倩

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

    关注

    446

    文章

    47769

    浏览量

    409066
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98716
  • NPU
    NPU
    +关注

    关注

    2

    文章

    209

    浏览量

    18082

原文标题:ADS算力芯片NPU数据流的重用性

文章出处:【微信号:zuosiqiche,微信公众号:佐思汽车研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高通NPU和异构计算提升生成式AI性能 

    异构计算的重要性不可忽视。根据生成式AI的独特需求和计算负担,需要配备不同的处理器,如专注于AI工作负载的定制设计的NPU、CPU和GPU。
    的头像 发表于 03-06 14:15 213次阅读

    微软画图即将支持NPU,Windows内置应用AI功能持续优化

    神经网络处理单元(NPU),作为一款Win11笔记本上的专属硬件组件,主要承担AI及机器学习任务处置。相较于云服务或通CPU,NPU能有效提升本地设备的AI任务处理能力。
    的头像 发表于 02-26 13:51 217次阅读

    AMD锐龙8040产品全球首发!

    AMD日前官宣了代号Hawk Point的新一代锐龙8040系列移动处理器,是现有锐龙7040系列的升级版,工艺、架构不变,重点提升NPU AI性能,并调整了功耗设定。
    的头像 发表于 12-14 09:20 799次阅读
    AMD锐龙8040产品全球首发!

    npu,vop2

    大家好,我在npu使用上遇到了一些问题,请教一下大家,问题如下: 我把内核配置里的vop2驱动裁剪了以后,深度学习模型就不能在npu上运行了。可是我如果不裁剪掉vop2,我的核心板就卡死在
    发表于 11-09 13:51

    迅为iTOP-RK3568开发板npu手册更新

    iTOP -RK3568开发板使用教程更新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 为了满足人工智能的需要,去年,迅为基于RK3568开发板编写了对应的手册文档&
    发表于 11-03 14:40

    迅为RK3588在 Linux 系统中使用 NPU

    迅为RK3588在 Linux 系统中使用 NPU
    的头像 发表于 09-08 14:14 990次阅读
    迅为RK3588在 Linux 系统中使用 <b class='flag-5'>NPU</b>

    手机里的npu是什么意思?手机npu是干什么的?

    手机芯片里的NPU是什么?手机里的npu是什么意思?手机npu是干什么的? 随着智能手机的发展、人工智能技术的成熟,一种新型芯片——神经处理单元(NPU)开始进入手机领域,成为智能手机
    的头像 发表于 08-27 17:08 3302次阅读

    npu芯片有什么用

    npu芯片有什么用 随着人工智能的发展,NPU芯片作为一款专门用于加速人工智能计算的芯片,正在逐渐成为业界的焦点。NPU芯片具有高效、低功耗、低时延等特点,已广泛用于智能手机、智能家居、智能汽车
    的头像 发表于 08-27 17:08 4348次阅读

    npu是华为独有的吗?手机有npu和没有npu的区别?

    npu是华为独有的吗?手机有npu和没有npu的区别? NPU是华为公司研发的一种专用运算单元,它的英文全称是"Neural Processing Unit",中文翻译为神经网络处理器
    的头像 发表于 08-27 17:03 2425次阅读

    npu运行需要cpu协助吗

    npu运行需要cpu协助吗  为了回答这个问题,我们需要首先了解什么是NPU和CPU以及它们之间的关系。 NPU是神经处理单元(Neural Processing Unit)的缩写,是一种专用于处理
    的头像 发表于 08-27 17:03 651次阅读

    npu是什么处理器?NPU卡是什么?

    npu是什么处理器?NPU卡是什么? NPU是指“神经网络处理器”(Neural Processing Unit),是一种专用的芯片,用于处理大规模神经网络计算。神经网络是一种基于模拟人类神经系统
    的头像 发表于 08-27 17:03 4955次阅读

    cpu gpu npu的区别 NPU与GPU哪个好?gpu是什么意思?

    cpu gpu npu的区别 NPU与GPU哪个好?gpu是什么意思? 在当今数字化和人工智能的时代,高效的计算能力是现代技术发展的重要基础。因此,Central Processing Unit
    的头像 发表于 08-27 17:03 8152次阅读

    npu是什么意思?npu芯片是什么意思?npu到底有什么用?

    npu是什么意思?npu芯片是什么意思?npu到底有什么用?  NPU的概念 NPU(Neural Processing Unit,神经网络
    的头像 发表于 08-27 17:03 2.5w次阅读

    Arm®Ethos™-U65 NPU技术参考手册

    神经处理单元(Neural Processing Unit, NPU)提高了神经网络的推理性能。转专业的 目标量化卷积神经网络(CNN)和8位和16位整数递归神经网络网络(RNN)。NPU支持8位
    发表于 08-02 10:09

    Arm Ethos-U NPU应用程序开发概述

    Ethos-U NPU是一款小型高效处理器,用于减少推理时间以及运行机器学习(ML)神经网络(NN)所需的内存需求。Ethos-U NPU连接到Cortex® ‑M系列中央处理器(CPU),可以集成
    发表于 08-02 06:37