深度学习硬件基础:TPU和其他芯片

文章目录

    • 其他芯片
      • DSP: 数字信号处理器
      • FPGA:常用来做模拟
      • AI ASIC:AI领域专用芯片
        • Systolic Array:脉冲阵列
    • 总结
    • 参考

其他芯片

DSP: 数字信号处理器

DSP,Digital Signal Processor,也就是数字信号处理器。这是一种具有特殊结构的微处理器,是以数字信号来处理大量信息的微处理器。将模拟信号转换成数字信号,用于专用处理器的高速实时处理。

  • 为数字信号处理算法设计:点积、卷及、FFT
  • 低功率、高性能
    • 比移动GPU快5x,功耗更低
  • VLIW:Very long instruction word
    • 一条指令计算上百次乘累加
  • 编程和调试困难
  • 编译器质量良莠不齐

FPGA:常用来做模拟

FPGA(Field-Programmable Gate Array),现场可编程逻辑门阵列,是一种在制造后可以被用户编程修改的电路。它不像我们在实验室中常见的电阻、三级管和电容器,只能完成固定的单一功能——FPGA可以通过硬件描述语言(Hardware Description Language,HDL)来进行编程,从而完成某种特定任务。VHDL(超高速集成电路硬件描述语言,VHSIC Hardware Description Language)是其中一种被广泛使用的HDL语言。另外一种是Verilog HDL,在工业界也很流行。

深度学习硬件基础:TPU和其他芯片_第1张图片
  • 有大量可以编程的逻辑单元和可配置的连接
  • 可以配置成计算复杂函数
    • 编程语言:VHDL,Verilog
  • 通常比通用硬件更加复杂
  • 工具链质量良莠不齐
  • 一次“编译”可能需要数个小时

AI ASIC:AI领域专用芯片

深度学习硬件基础:TPU和其他芯片_第2张图片
  • 深度学习的热门领域
    • 各大公司都在制造自己的芯片(Intel、Qualcomm、Google、Amazon、Facebook)
  • Google TPU芯片是标志性芯片
    • 能够匹配Nidia GPU新能
    • 在Google大量部署
    • 核心是systolic array
深度学习硬件基础:TPU和其他芯片_第3张图片

Systolic Array:脉冲阵列

  • 计算单元(PE)阵列:可以是一维或二维,串行、阵列或树的结构(现在我们看到的更多的是阵列形式)
  • PE功能相对简单,系统通过实现大量PE并行来提高运算的效率;
  • PE只能向相邻的PE发送数据(在一些二维结构中,也可能有对角线方向的数据通道)
  • 特别适合做矩阵乘法
  • 设计和制造都相对简单
  • 让数据在处理单元中多流动一会儿(在消耗较小的memory带宽的同时实现较高的运算吞吐率)
深度学习硬件基础:TPU和其他芯片_第4张图片
这是一个计算例子:

  在这个例子中,X值广播到各个运算单元,W值预先存储在PE中并保持不动,而部分结果Y采用脉动的方式在PE阵列间向右传递(初始值为零)。不难看出,经过三个时刻,最右边的PE的输出就是X和W两个序列的卷积运算的第一个结果,这之后就会不断输出Y值。
(我理解的是值和参数一个向右,一个向下移动)

  • 对于一般的矩阵乘法,可以切开和填充矩阵来匹配SA的大小
  • 批量输入来降低延时
  • 通常有其他硬件单元来处理别的NN操作子,例如激活层

总结

深度学习硬件基础:TPU和其他芯片_第5张图片

参考

[1] DSP

[2] FPGA:想要学的可以看看,知乎专栏,后期还有实验实现

[3] AI ASIC: CPU\GPU 以及上面所讲的其他芯片都有介绍

[4] systolic Array :原理不是很难,可以看看

你可能感兴趣的:(动手学深度学习:pytorch,tpu,AI,ASIC,FPGA,芯片)