2

私はCFDプロジェクトに取り組んでおり、新しいCUDA 5ライブラリ「cusparse」を使用して線形方程式系を解いています。サンプルコード「conjugateGradientPrecond」をテストしました。結果は、ILU を使用した前処理付き勾配は、前処理なしの共役勾配よりも最終的な答えを得るのにより多くの時間を要したことを示しています。前者のアルゴリズムは反復が少なくて済みますが、「cusparseScsrsv_solve」に多くの時間がかかるため、全体の時間が長くなります。

これが私の質問です。「cusparseScsrsv_solve」のような時間のかかる関数を含めずに、反復を大幅に減らすことができる他の前処理付き共役勾配はありますか?

4

1 に答える 1

1

ILU0/ILUT、IC0/ICT などの前処理手法では、CG の反復ごとに 2 回三角システムを解く必要があります (前処理行列の上分解と下分解)。本質的に、三角形システムを解くことは連続的な問題ですが、疎行列の場合、いくつかの分析フェーズを実行して、ある程度の並列化を見つけることができます (この記事を参照してください)。一般に、スパース システムの場合、最適な前処理手法を提供することはできませんが、単純な対角 (別名ヤコビ) 前処理は無視できるオーバーヘッドを課し、GPU 実装に高レベルの並列化を提供します。

于 2013-08-16T17:54:36.210 に答える