より大きな問題の一部として、小さな線形システム (つまり、N ~ 10 の NxN) を解決する必要があるため、関連する cuda ライブラリを使用しても速度の点で意味がありません。
残念ながら、GSL や EIGEN などの大物を引き込まずに、そのようなシステムを解決する方法も不明です。
ストレート C の密行列ソルバー (Ax=B) の方向を教えてくれる人はいますか?
興味のある方のために、コードのこのセクションのジェネレーターの基本構造は次のとおりです。
ndarray=some.generator(N,N)
for v in range N:
B[v]=_F(v)*constant
for x in range N:
A[v,x]=-_F(v)*ndarray[x,v]
残念ながら、私は高等数学の知識がほとんどないので、アドバイスをいただければ幸いです。
更新:私はこれに取り組んできましたが、実行されているが機能していないほぼ解決策があります。潜んでいる人は誰でも、私がこれまでに得たものをpastebinでチェックしてください。
最も一般的なアプローチと思われる Pivoting で Crout Decomposition を使用しています。このテストの考え方は、すべてのスレッドが同じ作業を行うというものです。つまらないことはわかっていますが、matrixcount 変数を増やし、実際のデータを入れ、各スレッドが小さな行列を個別に解くという計画です。
これをチェックしてくださった皆様、ありがとうございます。
回答後の更新: CPU と GPU 操作の行列解法コードを完成させました。こちらの遅延記事をご覧ください。