>その後の調べで,NVIDIAではなくMATLABのMathworks社側のサイトに,CUDAの使用方
法が載っていました.
>http://www.nvidia.com/object/matlab_acceleration.html からリンクがあります
ね.手順に従っ
>たら,ちゃんとCUDAのv3.1でもコンパイル,実行できました!
>(本当にCUDAで動いているかは確認できていませんが・・・CPUに比べて激遅だった
ので大丈夫だと思います)
おめでとうございます。これは自分でも探そうと思いましたが、時間がなくてすいま
せんでした。
MATLAB側にあったのですね。
>ただしMATLABの'-I"' MATLABROOT '"/extern/include'の指定の処で,このように""
で括ってあげる必要があり
>ました.
これは重要な情報ですね。ありがとうございます。
それはそうと、応用数理のほうでもMATLABを使ってGPGPU機能付きの
数値計算させた論文が見られます。かなり効果があるようです。とくに
大規模連立一次方程式の数値解法にてです。
ほかにも相性のいいアルゴリズムがあるかどうかはわかりませんが。
いしいまさゆき
一例として、2010年6月の応用数理に
「GPUのための前処理つき共役勾配法」
というタイトルのレビューが存在します。
共役勾配法にてGPUにおける線形方程式の解法を行っており、
ICCG法について実装をしているようです。
結構高速化に成功しているようです。
よろしければ、コピーを送ることもできますがいかがでしょうか?
いしいまさゆき
LU分解とかそういった計算方法ですよね。
>私の計算では流体計算ですので,100万程度から数千万元連立方程式を解くので
仕方なく共役勾配法を使っていますが,厳密に解かなくていいということも
>幸いしています.
>確かに優対角でない行列に直接法を使う場合はピボット選択が必要ですが.
もしも、厳密じゃなく数値的でもOKならばCG法でもいいのですよね。
ほかにもGMRES法などいろいろあるようです。
>応用数理学会会員なのに論文見ていないのですが,確か山梨大の先生で,単精度計
算を2度使って倍精度を達成させるという方法ですよね?
>すごいな~と思って発表を聞いた記憶があります.
なるほど。しかし今回は前処理手法に関する手法です。山梨大学の先生であることで
はあっております。
>ただ今になってしまうと,新しいコアになって,倍精度計算がしやすくなってどう
変わるのかな~という気持ちです.
>倍精度で計算したいですが,取り合えず私の計算では単精度でのCG法でも収束はし
ているので,この論文を見ていないことにしています(汗
倍精度では必要に応じてなのかもしれませんね。。。
いしいまさゆき
いしいまさゆき
私共もCG法をGPUでCUDA実装をしております。
私自身は担当ではありませんが、GPUを複数枚利用し
パフォーマンスを出すような事を実施しております。
ご参考まで
http://www.gdep.jp/product/view/21
1ケ月間のご評価も可能です。
管理人様
ふさわしくないレスであれば遠慮なく削除してください。
かわかみ
>私共もCG法をGPUでCUDA実装をしております。
>私自身は担当ではありませんが、GPUを複数枚利用し
>パフォーマンスを出すような事を実施しております。
性質のいい行列であればCG法をCUDAで実装すると
いい結果が得られるというわけですね。
たとえば悪条件になるような行列の場合のCG法はどうなるか。
それとGMRESなどの別の方法などいろいろ考えられそうですよね。
お詳しい知識を持たれている方はいますか?
かわかみ様。ありがとうございます。
また、このメーリングリストは宣伝にも使うことができます。
よろしくお願いします。
いしいまさゆき
同感です.とりあえずLU分解するにしてもピボット選択は必須でしょうから,
何か前処理で優対角に変換できないか,問題を思案してみます!
これさえできちゃえば並列は簡単そうですが,如何せん問題依存ですね.
>小さい次数の連立方程式がたくさんある方程式には,打切り誤差がたくさん伝播しそうな気がします.
これが少しなぜかわからなかったです.
独立・並列で解くのではないのでしょうか??
数値計算は素人知識なため,勉強しなおします.
大規模な連立方程式を解くのにCG法を使うことも知りませんでしたw
最適化のためにしか使ったことが無かったです.なるほど,そういう方法もあるのですね.
並列化できそうな反復法といえばヤコビ法しか思いつきませんでした.
大変勉強になりました.
出来れば、大規模固有値問題でも威力を発揮してくれるとうれしいですね。。。
いしいまさゆき