我有一个内核,它产生一个结果值数组,我想有效地找到这些值的最大值。Array 在内核开始时用一些负值(例如 -1)初始化。例如,内核使用 5 个块执行,每个块有 256 个线程。
以下是问题:
由于我的数据,我必须终止无效的线程,所以我有时使用 256 个线程,有时使用 50、20 等等。
在共享内存中写入块的结果,但正如我提到的,一些数组有 50 个结果,一些有 256 个结果......(所以共享数组看起来像这样)8,6,4,9,1,-1,-1 ,-1...
在那种情况下,如何有效地找到一个块中的最大值?
在这些类型的数组上并行归约会很复杂,不是吗?这该怎么做 ?