[進捗報告] magma_d_csr_mtx関数の挙動不審に悩む

 magma_d_csr_mtx関数の挙動がおかしい(magma 1.6.0, 1.6.1は同じ症状)。mtxファイルの読み込みは正常にできているのだが,COO -> CSR変換でコケているらしく,まともに変換できない。が,testing_spmvとかtesting_dsolverは正常に動作しており,訳が分からない。コンパイルオプション,ヘッダファイル同一にしても一緒。

 検索してみると,MAGMA掲示板のこの方も同様の症状。ただ,再現性があったりなかったりで,コンパイル条件に依存して決まるようだ。

 ソースコードとにらめっこすると,magma_index_tがintなのにmagma_int_tはlong long intになっている。で,magma_index_tとmagma_int_tを混在させて使っていて,この辺りが原因かと疑って,magma_types.hの型宣言でmagma_int_tをintに統一してコンパイルしなおしてみたら無事動いた! ばっけやろぉ~,一日潰れちまったぞ!

 つか,こんなおっかない状況でmagma sparseを入門書に紹介できないぞ! ・・・cuSPARSEで書き直したバージョンを使うしかないなぁ。

[進捗報告] COO, CSR対応Jacobi反復法,BiCGSTAB法完了

 つまらんミスして動作のおかしかったBiCGSTAB法は修正,MTX -> COO -> CSRにコンバートするところも追加して,IMKLはCOO, CSR両対応のプログラム完成。
 次はMAGMA,最後にcuSPARSEかな。明日中にMAGMAは何とかなるだろうが,cuSPARSEでJacobiとBiCGSTAB書き直すのがちと面倒。これは来週になりそう。
 まーこれで最終章を除いてプログラムは完成するので,GW中の書き直し作業がどの程度進むか,頑張ろうっと。

[進捗報告] BiCGSTAB法の実装開始

 さすがにGMRESをやりだすと収拾がつかなくなるので,手ごろなものをJacobi反復法と対比させながら解説したいと考え,BiCGSTABあたりがいいのではと書き出す。これ以上手を広げると収拾がつかなくなるので,今週中には終わらせて最終章以外は埋めておきたい。

 GW前の一応の完成が見えてきたが,今度はNAS2015の原稿が・・・同時並行作業がつらいのう。