とreduce_by_keyパフォーマンス:推力::私はしばらくの間に一度だけ繰り返し、多くの異なるキーで配列のキー付きの削減をしなければならないいくつかの重要な繰り返し
keys = {1,2,3,3,4,5,6,7,7, 8, 9, 9,10,11,...}
array = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,...}
// after reduction
result = {1,2,7,5,6,7,17,10,23,13,14}
thrust::reduce_by_key
(または任意の他のセグメント化された還元法)を使用しては、ほとんどの操作は実際には1つのアレイから別のアレイにコピーするだけなので、ここでは最速のオプションではありません。
この問題を解決するにはどうすればよいでしょうか?
どのセグメントの長さが1以上であるかを事前に知ることはできますか?答えがノーならば、セグメントを検出するだけのデータ移動のコストは '' reduce_by_key''のコストに匹敵するため、難しい問題のように思えます。 –
@JaredHoberock:はい、実際には、別の配列に格納されているセグメントの長さがあります。 – bbtrb