[進捗報告] 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で書き直したバージョンを使うしかないなぁ。