私は、Finite Elementの離散化から疎行列をアセンブルするためのOpenCLコードを書いています。この行列をカーネルコードでアセンブルするための巧妙な構造に関するヒントをありがとうと思います!つまり、私はカーネル内のランダムな行列位置にアクセスする必要があります!OpenCLカーネルからの疎行列アクセス
0
A
答えて
0
大きなデータセットへのランダムアクセスは、GPUに課金されています。私はではないすべてのカーネルがランダムに1つのマスターテーブルに書き込むことができます。これを行うと、シリアルCPUよりもパフォーマンスが低下する可能性があります。
代わりに、私はおそらく各カーネルに作業するメモリのチャンクを与えます。たぶん、(行、列、値)タプルで小さな座標リストを使って行列の一部をアセンブルする必要があります。それぞれのカーネルは、行列データを組み立てるときに、それ自身のメモリチャンクで作業する必要があります。次に、そのデータをCPUに戻してソートし、より効率的なフォーマットに再構成します。
ソートされた行列データをさらに処理する必要がある場合は、2番目のカーネルを作成することをお勧めします。カーネルは単純なタスクで最もうまく動作します。
関連する問題
- 1. 別のOpenCLカーネルからOpenCLカーネルを呼び出す
- 2. 疎行列の行から疎な対角行列を作成する
- 3. OpenCLカーネルの引数
- 4. のOpenCLカーネル+ ClMagmaアレイ
- 5. OpenCLカーネル構築エラー
- 6. OpenCL実行モデル複数のキューに入れられたカーネル
- 7. OpenCLのget_local_idまたはカーネル
- 8. BOOST疎行列
- 9. 疎行列
- 10. OpenCLカーネルの__のポイントは何ですか?
- 11. OpenCL無効なカーネル名
- 12. OpenACC - 疎行列ライブラリ
- 13. XGBoostと疎行列
- 14. OpenCLカーネルにC++ベクタを渡してアクセスするには?
- 15. Scipyの疎行列から一意の行を取得する
- 16. OpenCLカーネルからリスト(またはサブセット)を取得するには?
- 17. opencl用のカーネル関数のネスト
- 18. OpenCLの:どのように[OK]をカーネル
- 19. OpenCLカーネルのベクトルベクタの宣言と定義
- 20. このOpenCLカーネルがエラーの原因CL_INVALID_COMMAND_QUEUE
- 21. OpenCLカーネル内でローカルアレイの動的作成
- 22. OpenCLカーネル引数の情報を取得
- 23. Intel Openclのカーネルにクラスを渡す
- 24. 大規模なOpenCLカーネルの構造
- 25. scipyのダウンロード疎行列からのNaNの除去
- 26. OpenCL用のユーティリティツールキットはありますか?シンプルなOpenCLのカーネルを書く
- 27. 疎行列のセル配列の合計
- 28. R:疎行列変換
- 29. 特異疎行列MATLAB
- 30. MATLABワークスペースからEigenの複雑な疎行列をマッピングする
私は有限要素離散化にはあまり苦労していませんが、GPGPU.org [http://gpgpu.org/index.php?s=sparse%20matrix&searchbutton=Search]には疎行列に関する多くの記事があります。 –