cuda程式設計與gpu平行計算(四):cuda程式設計模型

好想成為wqg啊發表於2020-12-31

CUDA最大的特點:對執行緒塊將在何處、何時執行不作保證

優點:
1.硬體真正有效的執行,靈活。
2.無需要執行緒間互相等待
3.可擴充套件性強
後果:
1.對於那個塊在哪個SM上執行無法進行任何假設
2.無法獲取塊之間的明確通訊(hard to get communications between blocks)
dead lock(並行死鎖)
執行緒退出

當然有無法保證的,肯定也有能保證的。

1.所有在同一個執行緒塊上的執行緒必然會在同一時間執行在同一個SM上
2.同一個核心的所有執行緒塊必須全部完成之後,才會執行下一個核心

記憶體模型

在這裡插入圖片描述
記憶體訪問速度比較

在這裡插入圖片描述

同步性synchronisation和屏障barrier

·不同的執行緒在共享和全域性記憶體中讀寫資料需要有先後的控制,所以引入了同步性的概念。
·屏障的作用:用來控制多個執行緒的停止與等待,當所有執行緒都到達了屏障點,程式才繼續進行。

相關文章