6.9 KiB
6.9 KiB
第四章 数据级并行 - 考试考点精细化梳理
考点分级
【必考核心考点】
1. 向量体系结构三种计算方式(选择题/简答题高频)
核心考法:选择题、填空题、简答题(★★★★★)
三种计算方式:
| 方式 | 别名 | 特点 | 适用场景 |
|---|---|---|---|
| 横向计算(Horizontal) | 点积计算 | 一个元素操作后切换到下一行 | 不适合向量机 |
| 纵向计算(Vertical) | 向量点积 | 所有元素执行相同操作 | 向量机最佳 |
| 分组计算(Strip Mining) | 分段开采 | 按向量长度分段处理 | 解决向量长度限制 |
向量计算模式:
横向:for(i=0;i<N;i++) for(j=0;j<M;j++) C[i][j] = A[i][j] + B[i][j]
纵向:for(i=0;i<N;i++) for(j=0;j<M;j++) C[j] = A[j] + B[j] (按列操作)
分组:按向量长度VL分段,每次处理VL个元素
考试重点:
- 区分三种计算方式的特点
- 理解为什么向量机采用纵向/分组计算而非横向
- 能判断给定计算属于哪种方式
常见陷阱:
- 将"分组计算"等同于"分段开采"(实质相同)
- 混淆"编队"和"链接"概念
答题话术:
向量处理机的三种计算方式:
1. 横向计算(Horizontal):每个向量元素依次执行操作,
每次操作后需切换到下一个元素。不适合向量机,因为
无法发挥向量指令优势。
2. 纵向计算(Vertical):所有元素执行相同操作,
如向量加法、向量乘法。适合向量机,效率最高。
3. 分组计算(Strip Mining):当向量长度超过机器限制时,
将向量分成多个组,每组按纵向方式处理。
解决向量长度无限大的问题。
得分要点:能正确说出三种方式的名称和主要特点是基本要求。
2. GPU的SIMT执行模型(选择题/简答题必考)
核心考法:选择题、填空题、简答题(★★★★★)
核心概念:
- SIMT(Single Instruction Multiple Thread):单指令多线程
- Warp:32个线程为一组,同时执行相同指令
- Thread:GPU调度的基本单位
SIMT vs SIMD:
| 特性 | SIMD | SIMT |
|---|---|---|
| 执行单位 | 向量lanes | Warp threads |
| 灵活性 | 同一指令 | 可分支(divergence) |
| 调度 | 硬件静态 | 硬件动态 |
| 编程模型 | 隐式 | 显式(CUDA/OpenCL) |
考试重点:
- 理解SIMT如何结合SIMD和多线程优势
- 理解warp调度和线程切换机制
- 理解GPU如何通过大量warp切换掩盖访存延迟
常见陷阱:
- 将SIMT等同于SIMD
- 混淆"warp"和"线程块"概念
答题话术:
GPU采用SIMT(Single Instruction Multiple Thread)执行模型:
1. Warp是GPU调度的基本单位,包含32个线程
2. 同一warp内所有线程执行相同指令,但处理不同数据
3. 当线程分支(if/else)时,不执行的线程被屏蔽
4. GPU通过快速切换warp来掩盖访存延迟
SIMT相比SIMD的优势:
- 支持线程级并行,可处理条件分支
- 硬件动态调度,无需编译器调度
- 适合数据级并行工作负载
3. GPU设计思想排除题(谭婧炜佳老师题目)
核心考法:选择题(★★★★★)
题目特征:
思考:Nvidia GPU中不包含以下哪(几)种设计思想?
A. SIMD B. 多线程 C. MIMD D. VLIW
E. 乱序执行 F. Tomasulo
答案:C( MIMD)、D( VLIW)、E( 乱序执行)、F( Tomasulo)
解析表格:
| 设计思想 | GPU是否包含 | 说明 |
|---|---|---|
| SIMD | 包含 | GPU计算单元以SIMD方式执行 |
| 多线程 | 包含 | GPU以warp为单位调度大量线程 |
| MIMD | 不包含 | GPU是单一指令流 |
| VLIW | 不包含 | Nvidia GPU不采用VLIW |
| 乱序执行 | 不包含 | GPU顺序执行 |
| Tomasulo | 不包含 | CPU动态调度算法 |
常见陷阱:
- 误以为GPU是多核MIMD
- 将SIMT误认为是MIMD
答题要点:GPU采用单一指令流(SIMD)+ 多线程(SIMT),不是MIMD,不支持乱序执行。
【高频考点】
4. 向量处理机优化技术
核心考法:选择题、简答题(★★★★☆)
四大优化技术:
- 多车道(Multiple Lanes):多个执行单元并行
- 链接(Pipelining):功能单元流水化
- 编队(Clustering):多个功能单元分组
- 分段开采(Strip Mining):处理长向量
编队技术:
编队是将向量功能单元分组,每组称为一个编队(cluster)。
同一编队内的功能单元可以并行工作,
不同编队之间需要通过向量寄存器文件通信。
5. SPMD编程模型
核心考法:选择题、简答题(★★★★☆)
核心概念:
- SPMD(Single Program Multiple Data):单程序多数据
- 多个进程/线程执行相同程序,处理不同数据
SPMD vs SIMD:
| 特性 | SPMD | SIMD |
|---|---|---|
| 层次 | 编程模型 | 硬件架构 |
| 灵活性 | 可分支 | 同一指令 |
| 实现 | 软件 | 硬件 |
典型题目:SPMD程序如何在SISD或MIMD上运行?
答题话术:
SPMD程序在不同架构上的运行方式:
SISD上运行:
- 将Multiple Data拆成多次Single Data
- 通过循环逐个处理数据
- 变为SISD模式执行
MIMD上运行:
- 将Single Program的每条指令多次重复
- 多个核心同时执行相同程序
- 变为MIMD模式并行处理
【了解考点】
6. VMIPS向量处理器
考法:选择题、填空题
特点:
- 8向量寄存器,每个64元素
- 2个乘法单元,2个加法单元
- 向量load/store单元
- 支持链接技术
典型思考题解题示范
题目:思考:Nvidia GPU中不包含以下哪几种设计思想?
答案要点:
Nvidia GPU不包含以下设计思想:
1. MIMD:GPU采用单一指令流(SIMT),不是多指令流
2. VLIW:Nvidia GPU采用硬件动态调度,不采用VLIW
3. 乱序执行:GPU采用顺序执行(In-Order)
4. Tomasulo:这是CPU中的动态调度算法,GPU不使用
GPU采用的设计思想:
- SIMD:计算单元以SIMD方式执行
- 多线程:warp调度器管理大量线程
- 硬件动态调度(SIMT)
- 标量ISA + 硬件组合成SIMD
本章核心概念速记
1. 向量三种计算:横向(不适合向量机)、纵向(适合)、分组/分段开采(解决长度限制)
2. SIMT:单指令多线程,warp=32线程,GPU调度基本单位
3. GPU不含:MIMD、VLIW、乱序执行、Tomasulo
4. GPU含:SIMD、多线程、SIMT、硬件动态调度
5. SPMD:编程模型,单程序多数据
6. 向量优化:多车道、链接、编队、分段开采
7. 编队:功能单元分组,减少向量寄存器带宽需求
8. GPU访存优化:coalescing合并访问、shared memory共享内存