Files
2026-05-16 17:16:51 +08:00

4.6 KiB
Raw Permalink Blame History

第4章 数据级并行 - 章节习题与答案详解

习题汇总

题目1曲冠南老师

出处qgn老师第4章PPT Slide 4-5

原题

思考一个SPMD程序如何运行在SISD或MIMD上?

题目2李宏图老师

出处lht老师两版本共有PPT中

原题

思考一个数据并行程序如何运行在SISD或MIMD上?

题目3谭婧炜佳老师

出处tjwj老师第4章PPT Slide 4-95

原题

思考Nvidia GPU中不包含以下哪种设计思想

SIMD
多线程
MIMD
VLIW
乱序执行
Tomasulo

参考答案与详细解析

题目1答案

参考答案

一个SPMD程序可以通过以下两种方式运行在SISD或MIMD上

方式一SISD上运行单核单线程串行化执行

  • 将Multiple Data多数据拆成多次Single Data单数据
  • 变为SISD单指令单数据模式
  • 每次只处理一个数据元素,通过循环遍历所有数据
  • 问题:排队、耗时、耗电

方式二MIMD上运行多核多线程并行化执行

  • 将Single Program单程序的每条指令多次重复
  • 变为MIMD多指令多数据模式
  • 多个线程/核心同时执行相同的程序,但处理不同的数据
  • 问题:取址、译码操作冗余

考点SPMD编程模型的理解以及数据级并行在不同体系结构上的实现方式。

原理

  • SPMDSingle Program Multiple Data是并行编程的一种模型多个进程/线程执行同一个程序但使用不同的输入数据
  • SISDSingle Instruction Single Data是传统的串行处理器模式
  • MIMDMultiple Instruction Multiple Data是多核并行处理模式
  • 数据级并行的核心是对大量的数据施加同种变换

题目2答案

参考答案

一个数据并行程序可以通过以下两种方式运行在SISD或MIMD上

方式一SISD上运行单核单线程串行化执行

  • 将Multiple Data拆成多次Single Data
  • 变为SISD模式
  • 通过循环逐个处理数据元素

方式二MIMD上运行多核多线程并行化执行

  • 将Single Program的每条指令多次重复
  • 变为MIMD模式
  • 多核并行处理不同数据

考点数据级并行Data-Level Parallelism, DLP概念的理解以及SPMD模型与底层硬件的映射关系。

原理

  • 数据级并行的核心思想是对大量数据施加相同操作
  • SPMD模型中多个线程执行相同程序但处理不同数据
  • 在SISD上需要串行化效率较低
  • 在MIMD上虽然可以并行但每个核心仍需独立取址译码存在冗余

题目3答案

参考答案

Nvidia GPU中不包含以下设计思想:

乱序执行Out-of-Order Execution Tomasulo算法

解析

设计思想 是否包含 说明
SIMD 包含 GPU计算单元采用SIMD方式执行
多线程 包含 GPU以warp为单位调度大量线程
MIMD 不包含 GPU不采用MIMD架构
VLIW 不包含 Nvidia GPU不采用VLIW
乱序执行 不包含 GPU采用顺序执行In-Order
Tomasulo 不包含 Tomasulo是CPU中的动态调度算法GPU不使用

考点GPU的微体系结构设计特点与传统CPU架构的区别。

原理

  1. SIMDGPU的SPStreaming Processor以SIMD方式执行同一指令操作多个数据

  2. 多线程GPU采用SIMTSingle Instruction Multiple Thread技术以warp32个线程为单位调度大量线程通过细粒度多线程掩盖访存延迟

  3. MIMDGPU不采用MIMD架构。GPU的设计理念是大量简单执行单元协同工作而非多个独立指令流

  4. VLIWNvidia GPU不采用VLIWVery Long Instruction Word。VLIW将调度工作交给编译器而GPU采用硬件动态调度和SIMT

  5. 乱序执行GPU采用顺序执行In-Order不进行动态调度。GPU通过大量warp的交替调度来掩盖延迟而非依赖乱序执行

  6. TomasuloTomasulo算法是CPU中用于动态调度的算法如IBM POWER系列通过寄存器重命名和 Reservation Station 实现乱序执行。GPU不采用此技术而是依赖SIMT和warp调度器

GPU设计思想总结

  • GPU追求极高的并行吞吐率将大量晶体管用于计算而非控制逻辑
  • GPU采用SIMT执行模型结合了SIMD的效率和多线程的灵活性
  • GPU通过硬件线程调度器管理大量warp而非软件编译器调度
  • GPU使用标量ISA硬件负责将标量线程组合成SIMD执行