体系结构学习10-DLP

DLP类型

SISD、SIMD、MISD(TPU:脉动网络)、MIMD

SIMD实现形式

  • 同一时间不同部件共同工作(Array processor)
  • 在同一部件顺序工作(Vector processor)

Vector Processors

  • Vector Register
  • Vector Operation:多为同一种操作,若不同数据需要不同操作可能需要使用Vector Mask.

在执行时数据之间 没有数据冒险,没有转发需求。

1976 Cray-1

  • 优点:
    Vector 没有数据依赖
    单个指令能够承担许多工作
    访问连续规整的内存
    可以回避循环
  • 缺点
    要求数据操作是规整的矢量操作,否则可能花费更多时间处理
    内存会成为性能瓶颈,因为计算能力常常更强而Bandwidth不够

解决内存瓶颈:

  • Memory Banking:将内存分成很多小块,实现内存访问上的并行来提升带宽。

加快指令执行:

  • Vector Chaining:无需等待所有数据读入,读入一个就可以执行一个。
  • forwarding:无需等待写入,提前执行

解决数据超过VLR:

  • Vector Stripmining:n*VLR + m(m

代码矢量化

  • Masked Vector Instruction
  • Vector Scatter/Gatter:寄存器散布/收集数据从内存

存在无法矢量处理的标量时,需要像CRAY-1一样让标量处理很快。

现代计算机处理DLP

  • SIMD
    Intel的多媒体扩展:64 bit -> 2*32 bit 相当于把一个寄存器拆成一个矢量寄存器。但是没有VLR,长度固定,操作单一stride总为1
    Intel AVX:256-bit register
    Intel的库:mkl(software.intel.com)

GPU

2006:Nvidia的CUDA -GPU编程语言,利用多线程。(还有OpenCL)

相当于一块协处理器。

当今GPU架构——2017Volta /2018Turing

编程模式:SPMD 单程序多数据
执行模式:视为SIMD机器,多线程合并同时执行。SIMT(单个指令多个线程——一个warp包含多个线程)

  • Warp执行
    1、控制流:可以采用Mask选择线程的执行路径。
    2、Thread动态重组

Tesla v100

Volta(2017)结构
GPU-GPU直连,GDDR5显存带宽更大

Acceleration for Machine Learning

  • GPU:通用计算,训练或推导
  • FPGA:灵活
  • ASIC:嵌入式解决方案(TPU)

你可能感兴趣的:(体系结构)