結果値の配列を生成するカーネルがあり、これらの値の最大値を効率的に見つけたいと考えています。配列は、カーネルの先頭で負の値 (-1 など) で初期化されます。カーネルは、たとえば、それぞれ 256 スレッドの 5 つのブロックを使用して実行されます。
問題は次のとおりです。
私のデータのため、無効なスレッドを終了する必要があります。そのため、256 スレッド、場合によっては 50、20 などで作業しています。
共有メモリにはブロックからの結果が書き込まれますが、前述のように、50 個の結果を持つ配列もあれば、256 個の結果を持つ配列もあります...(共有配列は次のようになります) 8,6,4,9,1,-1,-1 、-1...
その場合、1つのブロックで最大値を効率的に見つける方法は?
これらのタイプの配列では、並列リダクションは複雑になりますね。これを行う方法 ?