要理解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.
延遲限制和吞吐量限制的情況時需要被分開討論的.