我有一個產生結果值數組的內核,我想高效地找到這些值的最大值。該數組在內核開始時被初始化爲一些負值(例如-1)。例如,內核使用5個塊,每塊256個線程執行。CUDA在共享內存中找到最大值
這裏有問題:
因爲我的數據,我必須終止線程,無效的,所以我有256個線程,有時50,20等,有時工作。
在共享內存中寫入塊的結果,但正如我所提到的,某些數組有50個結果,有些結果有256個......(因此共享數組看起來像這樣)8,6,4,9,1, -1,-1,-1 ...
在那種情況下如何在一個塊中有效地找到最大值?
在這些類型的數組上並行壓縮會很複雜,不是嗎?這個怎麼做 ?
完成,sry我很新:) – Hlavson 2012-04-19 12:27:29
你是什麼意思與'終止'線程?爲該線程做一個「返回」?因爲不推薦 – pQB 2012-04-19 14:03:52
您是否考慮過使用其中一個免費庫來查找最大值(例如ArrayFire)? – arrayfire 2012-04-19 14:53:13