中星微 星光智能一号

来源:互联网 发布:移动上网数据 编辑:程序博客网 时间:2024/04/28 12:05

在人机大战中,AlphaGo依靠模仿人脑生物机理的深度学习算法而击败李世石。深度学习,是源于对生物人脑机理的仿生学研究而形成的一种人工智能算法。作为深度学习神经网络的一种,卷积神经网络CNN (Convolutional Neural Network)算法,已成为当前人工智能机器视觉领域的研究热点。

  CNN算法模型的特性可以概括为海量的输入数据、大规模的MAC运算1稀疏的权值矩阵2、灵活的数据位宽和多样的网络拓扑等特性。对于传统冯诺依曼结构的CPU而言,其串行执行方式实在无法高效处理大量并行性运算,所以执行CNN算法的效率非常低下。
  相当于CPU,GPU的高度并行化运算单元,相对更适合神经网络的大量并行运算方式。但是,GPU的设计初衷是为了进行3D图形处理,不仅功耗大、价格高,而且并不适合嵌入式环境。同理,DSP、FPGA等主流处理器也并不适合CNN。
  为此,国内外主流企业和机构也都在针对CNN算法的处理器上下很了大工夫,研制自家的CNN处理器。如IBM公司的TrueNorth,高通公司的Zeroth,Google公司的TPU,KnuEdge公司的KnuPath和中国科学院的寒武纪等。
  而中星微的NPU是针对CNN的算法模型特性专门设计的一款神经网络处理器。据张韵东介绍,NPU采用了“数据驱动并行计算”的架构,彻底颠覆了传统的冯诺依曼架构。这种数据流(Dataflow)类型的处理器,极大地提升了计算能力与功耗的比例,特别擅长处理视频、图像类的海量多媒体数据,使得人工智能在嵌入式机器视觉应用中可以大显身手。

  星光智能一号发布的系统架构图,共包含四个NPU核,每个NPU核包含4个内核,每个内核有两个流处理器(Dataflow Processor),每个流处理器具有8个长位宽或16位宽的SIMD运算单元。每个NPU核的峰值性能为38Gops3(16位定点)或者76Gops(8位定点)。除了多核流处理器本身用于完成卷积运算外,星光智能一号集成了一个超长指令字(VLIW)处理器用于完成神经网络中的超越函数等运算。另有256KB的L2Cache以及DMA模块用于大块数据的搬移。
  从其低位宽的定点运算器推断,星光智能一号仅可支持神经网络正向运算,无法支持神经网络的训练。从片上存储结构看,星光智能一号基于传统的片上缓存(Cache),而非像最近流行的神经芯片或FPGA方案一样使用便签式存储。因此,在技术上看星光智能一号是典型的“旧瓶装新酒”方案,将传统的面向数字信号处理的DSP处理器架构用于处理神经网络,主要在运算器方面作了相应修改,例如低位宽和超越函数,而并非是“狭义的”神经网络专用处理器。
  因此,星光智能一号其实是DSP,而非NPU。下一篇讲讲GPU CPU NPU 的关系。

1.乘积累加运算(英语:Multiply Accumulate, MAC)是在数字信号处理器或一些微处理器中的特殊运算。实现此运算操作的硬件电路单元,被称为“乘数累加器”。这种运算的操作,是将乘法的乘积结果和累加器 A 的值相加,再存入累加器。若没有使用 MAC 指令,上述的程序可能需要二个指令,但 MAC 指令可以使用一个指令完成。而许多运算(例如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解为数个 MAC 指令,因此可以提高上述运算的效率。
MAC指令的输入及输出的数据类型可以是整数、定点数或是浮点数。若处理浮点数时,会有两次的数值修约(Rounding),这在很多典型的DSP上很常见。若一条MAC指令在处理浮点数时只有一次的数值修约,则这种指令称为“融合乘加运算”/“积和熔加运算”(fused multiply-add, FMA)或“熔合乘法累积运算”(fused multiply–accumulate, FMAC)。

2.L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。为什么要生成一个稀疏矩阵? 稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0.
通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

3.GOps giga operations per second 每秒十亿次运算数,十亿次运算/秒

0 0
原创粉丝点击