体系结构学习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 <VLR )
代码矢量化
- 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)
全部评论 (0)
还没有任何评论哟~
