私は10M floatのベクトルを持っています。 100要素ごとの合計を知りたいので、10000合計です。 これを行う最も速い方法は何ですか?Boostの最速の方法::ベクトルの部分和を計算する
1
A
答えて
1
reduce_by_key
アルゴリズム、空想反復子、Boost.Compute lambda exprの使用をお勧めします。 100個の要素ごとに同じキーでマークされ、縮小されます。パフォーマンスを節約するためにkeys_output
をdiscard_iterator
に置き換えることができるかどうかはわかりません。
boost::compute::vector<int> keys_output(values_input.size()/100, context);
boost::compute::vector<int> values_output(values_input.size()/100, context);
boost::compute::reduce_by_key(
boost::compute::make_transform_iterator(
boost::compute::make_counting_iterator<int>(0),
boost::compute::_1/100
),
boost::compute::make_transform_iterator(
boost::compute::make_counting_iterator<int>(values_input.size()),
boost::compute::_1/100
),
values_input.begin(),
keys_output.begin(),
values_output.begin(),
queue
);
関連する問題
- 1. OpenCLの部分和の計算
- 2. 台形のパーセンテージマッチングを計算する最速の方法
- 3. scipyで "余弦"メトリックを計算する最速の方法
- 4. C#で素数を計算する最速の方法は?
- 5. Pythonでエントロピーを計算する最速の方法
- 6. 平方和不一致の総和を計算する
- 7. デキューのユニークな値の最大数を計算する最速の方法
- 8. 値とリストの和を計算する方法は?
- 9. RecyclerViewのスクロール速度の計算方法
- 10. テンポラル分数計算のベクトル化
- 11. すべての列の差を計算する最速の方法
- 12. ポイントのペアのリストの間でdsitanceを計算する最速の方法
- 13. 計算百分率で最も良い方法を計算する
- 14. カラムの部分和を取得し、mysqlで部分的な和を持つ行を見つける方法
- 15. Pythonで各点間の距離を計算する最速の方法
- 16. numba nopython関数の階乗を計算する最速の方法
- 17. 間隔の設定ビット数を計算する最速の方法
- 18. Pythonで多くの回帰を計算する最速の方法は?
- 19. Fortranで最初の固有値と固有ベクトルを計算する方法
- 20. Rの加重和の計算方法は?
- 21. 配列の最大部分集合の和を求める
- 22. カスタムグループを含むパンダの計算をベクトル化する方法は?
- 23. ユーザーの平均速度を計算する最も簡単な方法は?
- 24. Python - 計算でリストからタプルを作成する最速の方法
- 25. Python:ナップザック計算の最後の部分にこだわって
- 26. NxN行列のすべての部分行列を反復する最善の方法/最も速い方法
- 27. csvファイルの列の速度を計算する方法は?
- 28. 速度テンプレートのリストのサイズを計算する方法は?
- 29. LiveCycleのテーブル行の部分和を行う方法 - Javascript
- 30. 最小合計を得るための高速計算?
あなたは 'OpenCL' 2を使用することができるなら、私は([こちら]フセインの答え@お勧めしますhttps://stackoverflow.com/questions/46861492/what-is-the-optimum-opencl-2-kernel 〜sum-floats) – kenba