体系结构学习10-DLP
2020-05-11 04:13
183 查看
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)
相关文章推荐
- 深度学习Caffe平台实例——CIFAR-10数据集在caffe平台上模型训练及实例使用模型进行预测
- Android开发学习(10)WebView访问网页
- STL学习笔记10— —容器的选用
- C++学习笔记10 各种各样的排序算法复杂度
- springmvc学习笔记(10)-springmvc注解开发之商品修改功能
- 深度学习小白——tensorflow(四)CIFAR-10实例
- iOS学习笔记10—Objective-C的运行时编程(Runtime Programming)
- 【STM32 .Net MF开发板学习-10】SPI测试之触摸屏坐标获取
- 设计模式学习笔记 - 2010/10/10
- python 0基础学习笔记10: tkinter
- 【day 10】python编程:从入门到实践学习笔记- 基于Django框架的Web开发-Django入门(一)
- python 学习笔记(10)重构与文件处理
- Caffe学习记录:Cifar-10 自定义网络训练记录
- 深入jvm学习(1)--体系结构
- 关于PE病毒编写的学习(10)——空隙覆盖病毒的实现方法
- MyBatis学习总结(10)——批量操作
- 10-Oracle学习_事务
- cocos creator学习10——骨骼动画
- SOA 面向服务的体系结构学习笔记
- 黑马程序员_学习笔记10——引用类型与值类型,继承,访问修饰符,里氏转换