当前位置: 首页 > news >正文

神经网络硬件加速器-架构篇

架构设计

       常规架构通常包括两种:

1、全流水线架构,顾名思义,将整个神经网络进行平铺,并对每一层进行优化设计,优点:实现高吞吐率和低延时。缺点:消耗大量硬件资源,通常无法跨网络或硬件平台实现

2、逐层加速,即实现通用加速核心,多个网络层复用加速核心。缺点就是,可能造成计算效率偏低,需要和外部缓存交互导致整个加速器时延过大。优点是,通用。可以跨网络和跨平台移植。

一般AI芯片设计中通常会选择第二种。至于基于FPGA硬件加速实现,可以根据需求指标和硬件资源情况进行取舍选择。

从计算架构角度分为四种不同类型:

1、指令集架构: 

可以定义为一种采用完整神经网络指令集来进行神经网络计算加速的一类人工智能处理器。其特点是采用预定义好的定长或者变长的指令作为处理的基本单元,通过对指令的组合构成指令流,由指令流完成任意的计算任务。基本过程即:取指、译码及执行。无论CPU、GPU还是新型的NPU都有很多成功的案例在使用指令集的方式支持不同的计算任务。通过对神经网络的计算特征抽象、构造神经网络专用的指令集,从而实现专用的AI处理器。包括寒武纪、燧原科技、壁仞科技等,都是通过这样的方式来实现人工智能计算  可以定义为一种采用完整神经网络指令集来进行神经网络计算加速的一类人工智能处理器。其特点是采用预定义好的定长或者变长的指令作为处理的基本单元,通过对指令的组合构成指令流,由指令流完成任意的计算任务。基本过程即:取指、译码及执行。无论CPU、GPU还是新型的NPU都有很多成功的案例在使用指令集的方式支持不同的计算任务。通过对神经网络的计算特征抽象、构造神经网络专用的指令集,从而实现专用的AI处理器。包括寒武纪、燧原科技、壁仞科技等,都是通过这样的方式来实现人工智能计算

2、数据流架构

通过数据流调度决定张量的架构,特点是优化数据复用和计算的并行度。在典型的数据流阵列中,会对神经网络的张量划分成不同的Tile,映射到计算单元中,典型的数据流包括两种:

  • WS数据流:充分复用权重
  • OS数据流:充分复用部分数据

通过不同的数据流提高数据复用的程度,减少缓存,提高计算的并行度,从而最终提高系统的处理能力和提高处理的能效。

3、存内计算架构

待补充

4、可重构架构

待补充

设计评价指标

神经网络加速器面临的主要问题在于运算速度和功耗。简言之,归纳为性能和能效

1 性能

       性能(Performance,单位:GOPS)

Performance = 2MAC*PE Utilization*Frequency

  • 硬件乘加单元数:MAC
  • 计算单元利用率:PE Utilization
  • 计算核心频率:Frequency

能效

       能效(Energy Efficiency,单位:GOPS/W)

EnergyEfficiency=Performance/Power=Performance/((Ecomp+Eio)/T)=NOP/(Eop*Nop+Emem*Nmem)=1/(Eop+Emem*Nmem/Nop)

其分别代表了平均一次运算需要消耗的能量,由两部分构成:计算能耗以及平均访存能耗,降低这一能耗指标可以从以下三个方面入手:降低计算本身的能耗;减少单词访存的能量;减少计算流程中访存次数。

http://www.lryc.cn/news/31260.html

相关文章:

  • Python raise用法(超级详细,看了无师自通)
  • 1.SpringSecurity快速入门
  • Graph Partition: Edge cut and Vertex cut
  • Javascript周学习小结(初识,变量,数据类型)
  • C语言-基础了解-10-C函数
  • 【LeetCode】剑指 Offer(16)
  • 第三十九章 linux-并发解决方法二(互斥锁mutex)
  • 脚本方式本地仓库jar包批量导入maven私服
  • 【c++】引用的学习
  • linux 软件安装及卸载
  • XShell连接ubuntu20.04.LTS
  • 【FPGA】Verilog:MSI/LSI 组合电路之解码器 | 多路分解器
  • 深入理解JDK动态代理原理,使用javassist动手写一个动态代理框架
  • 一、策略模式的使用
  • Verilog使用always块实现时序逻辑
  • 面向对象设计模式:行为型模式之迭代器模式
  • 如何快速在企业网盘中找到想要的文件
  • 香橙派5使用NPU加速yolov5的实时视频推理(二)
  • 算法练习-二分查找(一)
  • 通用业务平台设计(五):预警平台建设
  • Windows openssl-1.1.1d vs2017编译
  • 【深蓝学院】手写VIO第2章--IMU传感器--笔记
  • 网络基础(二)之HTTP与HTTPS
  • Python每日一练(20230306)
  • C/C++每日一练(20230305)
  • SAS字典的应用
  • Mysql中的函数和触发器
  • 分布式架构之(Zookeeper原理)
  • Java框架学习 | MyBatis
  • Cookie+Session详解