要理解GPU架构,除了常说的并行性以外,还有个很重要的概念就是Hide Latency,市面上很多文档都只是说明并行性,但
如果只是并行性,那为何GPU需要这么多层次地结构呢
?
建议通过Latency hiding来理解GPU架构:
有本UC berkeyley 的博士 Vasily Volkov 写的一篇文章很推荐看看:
也可以看我自己双语阅读时的笔记(从Cp开始:):
Cp这个章节中的很多内容可能是熟知的,但是更准确地划分了一些常见的概念,例如SIMD,SIMT,warp scheduler完成的工作,更为系统和准确.对于理清楚概念和深入理解GPU架构很有帮助.
Cp 清晰地划分了两个概念:吞吐量和延迟,详细说明了warp占用率和warp延迟,warp吞吐量地关系。
mean occupancy = mean warp latency * warp throughput.
由此衍生一个重要地结论:
Hiding latency, thus, means attaining throughput-bound mode
隐藏延迟本质上是为了去达到吞吐量限制模式.
Cp 主要介绍了作者的latency hiding model,并且提出了混合指令最大化利用设备时的需要满足的条件,对应的也称之为 cusp behavior(顶部行为) 。之后作者和cuda编程指南以及之前的一些工作进行对比,说明他们只是他提出的model的一个特例.并且通过实验数据说明这个模型的特点和优势:
Separately considering latency-bound and throughput-bound cases is the key feature of our model and is in contrast to separately considering execution of arithmetic and memory instructions suggested in prior work.
延迟限制和吞吐量限制的情况时需要被分开讨论的.