最近、私は新しい方法を開発しました。新しい方法は CUDA (20 から 40FPS) で完璧に機能し、私はすでにそれをうまくテストしています。問題は、古い方法と比較しようとしたときに発生します。古い方法はCPUに実装されました。最初に LU 分解A = LUを実行し、次に forward+back ステップを実行して ( LU ) x = bを解きます。古い方法の非常に優れた点は、Aが変わらないことです。そのため、LU 分解は 1 回だけ実行でき、オーバーヘッドは順方向と逆方向の解だけです。Aはスパースで対称正定です。(これは、固定領域での流体シミュレーションなど、多くの問題でかなり一般的な方法だと思います。)
比較を公平にするために、古い方法を GPU に実装したいと考えています。しかし、cuSolver または cuSparse でスパース LU 分解が見つかりませんでした。他のライブラリで計算する必要がありますか? 解決には cusolverRfSolve() を使用しますか? もしそうなら、なぜLとUは入力されず、PとQがこの関数に入力されるのですか? 私がやろうとしていることに似た実例はありますか?
古い方法が GPU で遅く実行されたとしても、新しい方法が非常に役立つので、それを見てみたいと思います。