我有一個400x900矩陣,意思是360,000個元素。塊中的線程數爲1024.塊的數量(方形排列)爲352,這意味着總共360,448個線程。因此,假設一個線程被分配給每個元素,448個線程將不會執行任何操作。我已閱讀關於分歧分支並理解,但在這裏我不明白分歧陳述和代碼應該是什麼?冗餘線程的分歧陳述
0
A
回答
1
由於線程在CUDA中分組爲塊,我們通常使用比實際大小的數據更多的線程來並行執行工作。在這種情況下,我們需要一個分支來確保只有那些分配了數據的線程才能工作,而其他線程只是在等待,什麼也不做。
以下文章顯示瞭如何使用CUDA計算AXPY。你會發現雖然線程總數總是256的倍數,但內核可以處理任意長度的向量N
。代碼if (i < n) {...}
可確保這些額外的線程不會執行任何操作。
https://developer.nvidia.com/content/easy-introduction-cuda-c-and-c
+0
明白了,謝謝。 – Shibli
相關問題
- 1. 如何檢查此陳述的冗餘?
- 2. 這是否陳述冗餘或不?
- 3. Openmp線程分歧?
- 4. 單線如果陳述
- 5. SCOM到冗餘積分
- 6. 百分比案例陳述
- 7. Python的冗餘
- 8. AppFabric的冗餘
- 9. 案件陳述裏面如果陳述
- 10. 如果陳述「不是陳述」?
- 11. 如果陳述在案例陳述(VB.Net)
- 12. 帶多線程的應用程序冗餘
- 13. R中函數分析樹的冗餘
- 14. CLR類冗餘
- 15. Sendrecv_replace冗餘?
- 16. 冗餘實例
- 17. 冗餘驗證?
- 18. 刪除冗餘
- 19. 冗餘鑄造
- 20. HDFS和冗餘
- 21. 找出冗餘
- 22. 冗餘列
- 23. 冗餘式
- 24. 冗餘代碼
- 25. MSMQ冗餘
- 26. 冗餘斷言
- 27. 冗餘繼承?
- 28. 負載冗餘
- 29. Lisp中的冗餘
- 30. Selenium Hubs的冗餘
什麼是「分歧陳述」? –