计算机系统结构-第四章节-背诵
1-简述cpu和gpu在设计理念上的差异性
CPU和GPU均有自己的存储,控制逻辑和运算单元,但区别是CPU的控制逻辑更复杂,而GPU的运算单元虽然较小但是众多,GPU也可以提供更多的寄存器和程序员可控的多级存储资源。
2-简述向量体系结构和gpu体系结构的差异
向量体系结构
“窄而深”
指令流水线深,ALU宽度窄。
单次指令流水后能处理更多数据,掩盖不必要的流水线时间。
GPU
“宽而浅”
指令流水线浅,ALU宽度宽。
流水本身比较简单,直接对更多的数据进行并行计算,同一时刻处理更多数据
3-简述链接技术思想
链接技术:当两条指令出现“写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的) 冲突,就有可能把它们所用的功能部件头尾相接,形成一个链接(长)流水线,进行流水处理。
链接的条件:
---无向量寄存器冲突,功能部件冲突
---只有在前一条指令的第一个结果元素送入结果向量寄存器的那一个时钟周期才可以进行链接。
---当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必须相等,即要求有关功能部件的通过时间相等。
---要进行链接执行的向量指令的向量长度必须相等,否则无法进行链接。
---一次链接行为通常仅发生在分组内部,即不对整个N进行链接,而对个分组内的n个向量元素的计算过程进行链接
4-简述gpu各层次组件间的相似性
gpu在任务的划分上,存在着自相似性;每一个第i级的任务,都可以划分为一组i-1级的任务;并且同一级别的任务之间是并行的。
gpu在硬件上,同样也体现出了自相似性。逐层的,都是相似的结构,包括调度器、任务的uffer、数据存储和处理单元。
5-简述编队技术
几条能在同一个时钟周期内一起开始执行的向量指令集合称为一个编队;
同一个编队中的向量指令之间
不存在结构冲突;
不存在数据冲突or存在数据冲突,但是可以链接。
6-简述分段开采技术的思想
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
7-
阵列处理机:同一指令在同一时间处理不同空间上的不同数据元素
向量处理机:同一指令在连续的时间内在同一空间上处理不同的数据元素
8-向量处理机的优势
由于向量的Load与Store是深度流水线化的,大型寄存器堆充当了缓冲的作用,因此其能够掩盖访存延迟并充分利用内存带宽;
乱序的超标量处理器往往具有复杂的设计,且乱序程度越高,其复杂性和功耗也会越高,在此方向发展很容易触及功耗墙;
将顺序的标量处理器扩展为向量处理器则不会带来复杂度和功耗的大幅升高,且开发者也能很容易适应和转换到向量指令。
9-VMIPS带来的好处
不只是减少了指令,减少了指令条数,还大量节约取指令和指令译码所消耗的时间
10-向量体系结构的一些相关概念:
环间相关:对一个循环来说,如果各轮迭代之间存在相关性,则称为循环间相关,否则为循环间无关
可向量化:针对一组MIPS指令描述的循环,如果满足循环间无关,则循环称为可向量化的,编译器可为其生成向量指令。
指令编队(convoy):由一组不包含结构冒险的向量指令组成,一个编队中的所有向量指令在硬件条件允许时可以并行执行。
11-GPU:
GPU的编程模型:SPMD
GPU的执行方式SIMT
GPU计算单元的处理方式:SIMD
12-GPU计算单元SIMT的优点
编程灵活 :任意大小的工作量vs任意硬件SIMD宽度
每个线程可以被单独对待 :分支控制
Warp细节对程序员透明:1,Warp大小 2,:哪些线程由同一个warp执行
13-GPUSM的最小单位:
Warp
14-GPU如何提高访存的速度:
将一个warp中不同thread的内存访问合并成更少的访问次数
-如果一个warp中的32个thread访问内存中连续的4B大小的位置
-合并成一个128B的访存请求(coalescing)
-而不是发送32个4B的访存请求
有效降低SM和DRAM之间的访存次数
-减少片上网络、片上存储划分、DRAM的工作量
15-GPU程序层次模型:
-在SM内部,来自同一个block中的不同线程(编号相邻)组成一个warp
例如,1 warp = 32 thread
-Block和thread对程序员可见,warp对程序员不可见,由硬件进行控制
-同一kernel中的所有线程都共享相同的代码
-不同线程执行进度可能不同
-但是同一warp中的线程一同执行
-可以在Block级别进行同步
16-GPU和传统SIMD的区别:
传统SIMD采用单线程
向量指令之间锁步执行:一个向量指令完成后后续指令才能开始执行
编程方式为SIMD,软件需要知道向量长度
ISA中有向量/SIMD指令
GPU以SIMD方式执行大量标量线程
可以非锁步执行
每个线程可以被独立看待,由硬件进行线程组合(Warp)
编程方式为SPMD
ISA是标量的
17-NVIDIA PTX:
NVIDIA编译器的指令集目标时硬件指令集的一种抽象,可实现各代GPU的兼容性
opcode.type d,a,b,c;
使用虚拟寄存器
由软件将其翻译成机器语言
SASS:
PTX在运行时转换成SASS
SASS与GPGPU计算能力对应,一般一种计算架构有一组对应的SASS指令
不同架构也可能采用相同的SASS
18-GPGPU虚拟化
企业级做云计算时常常采用虚拟化技术:
一个GPU的SM很多,但是对于单用户只能用很少的SM,这样利用率很低;
硬件上把多个SM进行分割成多个切片;
软件上为每个用户分配一个SM切片;
使得每个用户都能满负荷使用SM;
每个用户感觉自己拥有了一个GPU。
19-影响一个向量体系结构的因素:
操作数向量的长度
向量启动时间
数据相关,可否链接
结构相关,可否编队,多车道,发射限制