一般問題:線程的數量必須等於我想要處理的元素的大小?例如:如果我有矩陣M [a] [b]。我必須分配(aXb)線程,或者我可以分配比我需要的更多的線程(比ab更多)?因爲專注於元素aXb + 1的線程會將我們拋出,不是嗎?或者解決方案是放置一個條件(只有在範圍(ab))?關於在cuda中組織線程
具體問題:let是M [x] [y] x行y列的矩陣。考慮1000 < = x < = 300000和y < = 100.我如何以這種方式組織線程,這對於x和y的每個輸入都是通用的。我希望每個線程都會關注矩陣中的一個元素。 CC = 2.1謝謝!
您可以分配更多,或者甚至可以分配更少。任何一種方法都可以工作。如果你分配的線程多於所需的線程數,你的內核應該包含一個條件測試來確保每個線程都在有效的數據上運行。如果你分配的線程少於所需的線程數,你的內核應該包含[某種類型的循環](https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/ )涵蓋所有數據項目。 –