2013-09-25 43 views
0

online racecheck文檔,嚴重性級別具有危險度警告這樣的描述:
這樣的一個例子是由於翹曲電平編程,使假設線程危害正在分組進行。什麼是經電平的編程(racecheck)

該聲明令人困惑,因爲線程按組處理。 (SM在一個warp上執行代碼。)如果它們沒有按組進行處理,那麼它們是如何處理的?
「warp level programming」是什麼意思? (非扭曲水平編程是什麼?)

回答

1

確實所有的處理都是在經紗中處理的。也稱爲warp同步編程的warp級別編程依賴於此來確保代碼/行爲的正確性。許多或大多數代碼不依賴於warp的概念,或者每個warp有32個線程來提供正確的行爲。

至少有兩個問題。首先在if/then/else等控制結構的存在下,可能線程中的線程並不是全部以鎖步執行。其次,不能保證未來的體系結構將保留每個warp的warp或32個線程的概念。

+0

我感覺WLP是正在執行的線程數少於WarpSize的實例。即blockDim Doug

+0

編號。跳轉同步編程假設一組線程正在以鎖步方式執行,並以某種方式利用了這些知識(例如,以確保同一個warp中線程之間的操作順序)。並且成功使用(如果適當注意的話)是否只有2個線程正在執行,或者所有32個線程正在執行一個warp,並且與warp或block的維數無關。但是,例如,如果未來的體系結構宣佈新的warp尺寸爲16而不是32,則這種假設可能不可靠。 –

+0

通過lockstep你的意思是塊中的每個線程都採用完全相同的分支?即每個線程中的IF/ELSE評估相同,並採用相同的分支。不是,一個線程需要THEN分支,接下來的4個線程採用ELSE分支。 – Doug