私はCPU上の行列で変換する必要があるベクトルのリストを持っています。私は動的に割り当てられた配列(Eigen :: Vector4f *)としてこれらを格納しています。それらが変換されたら、私はベクトル上でOpenCLカーネルを実行する必要があります。私はEigen :: Vector - > float配列からデータをコピーすることなく、このデータをOpenCLに渡すのが最善の方法であると思っています。これはかなりコストがかかるためです。私の理解では、Eigenは内部的にベクトル値を何らかのバッファに格納しています。固有ライブラリ:Vector4fの配列を浮動小数点数としてOpenCLカーネルに渡す
0
A
答えて
0
多くの方法がありますが、
1 - それは一度にベクトルの集合全体で作業することを可能にするために最善をMatrix4Xf
を使用することが考えられます:
Matrix4Xf vecs(4,n);
Matrix4f transform;
vecs = transform * vecs;
vecs.row(1) // read-write access to all y components
vecs.col(i) // read-write access to i-th vector
float* raw_ptr = vecs.data();
2 - (std::vector<Vector4f>
を使用Vector4f *と同じですがメモリ管理の問題はありません):
std::vector<Vector4f> vecs(n);
for(auto& v:vecs) v = transform * v;
float* raw_ptr = vecs[0].data(); // assuming vecs is not empty
// you can still see it as Matrix4Xf:
Map<Matrix4Xf> vecs_as_mat(raw_ptr,4,n);
0
もう少し研究を行いました。解決方法は、Eigen :: Mapクラスで公開されている生のバッファを使用することです:floatの生のバッファを作成し、浮動バッファをベクトルにラップするEigen :: Mapオブジェクトを作成できます。
関連する問題
- 1. OpenClカーネルのループが大域メモリ浮動小数点配列をローリングする
- 2. 固定小数点ライブラリOpenCL FPGA
- 3. 浮動小数点配列を倍精度浮動小数点配列に変換してすぐに戻す
- 4. Operaに固有のレイアウト問題(浮動小数点数)
- 5. 浮動小数点数列
- 6. マッピング[-1、+ 1]はQ31固定小数点に浮動小数点
- 7. 浮動小数点型の浮動小数点数を使用している浮動小数点数は、浮動小数点数の上位16桁です。
- 8. Clojure - java interop - 浮動小数点配列を渡す方法>
- 9. OpenCLカーネル浮動小数点除算で異なる結果が出る
- 10. 固定小数点から浮動小数点へ
- 11. 固定小数点から浮動小数点データへ
- 12. 浮動小数点値と浮動小数点値の比較
- 13. 浮動小数点数は浮動小数点数ですか?
- 14. JQM固定フッタ "浮動小数点"
- 15. CStringを浮動小数点数の配列に変換する
- 16. 浮動小数点数浮動小数点数値
- 17. 変数の浮動小数点浮動小数点
- 18. 精度差:NumPyオブジェクト配列と浮動小数点配列
- 19. 浮動小数点の浮動小数点が正しく浮動しない
- 20. バイナリ固定小数点のbyte []を浮動小数点値に変換する
- 21. CSSが浮動小数点浮動小数点を返す
- 22. 浮動小数点浮動小数点浮動小数点浮動小数点数 - 浮動小数点数を持つ2つの要素:左に動くようにdivを配置する右のスタイル
- 23. Javascript/jQuery - 浮動小数点数と浮動小数点数()への問題
- 24. 浮動小数点数を浮動小数点数に変換する
- 25. OpenCLカーネルに小さな定数配列を格納するベストプラクティス?
- 26. 混合浮動小数点数と配列から配列を作成する
- 27. 浮動小数点数の構造体へのC#のキャスト浮動小数点配列
- 28. 浮動小数点数を配列に読み込む
- 29. MySqlの浮動小数点浮動小数点データ型
- 30. jQuery animateNumber - 浮動小数点浮動小数点の方法