問題タブ [cusolver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1048 参照

cuda - AX=B の一次方程式を解く

現在、Ax=b 方程式を 2 回解いています。

ここで、A は疎行列 NxN です。

x、b はサイズ N のベクトルです (私は b1 と b2 を持っています)。

cusparse関数を使って両方を一発で解いて時間を短縮したい。

したがって、私が持っている2つのbから構築し、サイズNx2の1つの行列を構築し、式AX = Bが実行できるようにAでそれを解きます。

  1. 理論的には正しいですか?
  2. どの cusparse 関数を使用すればよいですか?

私は密行列ではなく疎行列を扱っていることに注意してください。

ありがとう!

0 投票する
1 に答える
79 参照

cuda - CuSolverRf サンプルの並べ替えエラー

CUSolverRf サンプルで、196530 x 196530 の疎な 2530239 nnz 行列を解くのに問題があります。

私はまだ B ベクトル値を試していません (別の問題です)、既にエラーが発生しています:

エラー (列 indecis チェックの並べ替えに失敗しました): (csrColInd 1 =2)>= (csrColInd[2]=2)

エラー (列インデックス チェックの並べ替えに失敗しました): (csrColInd[3]=3) = (csrColInd[4]=3)

エラー (列の indecis チェックの並べ替えに失敗しました): (csrColInd[5]=2251) >= (csrColInd[6]=2251)

エラー (列 indecis チェックの並べ替えに失敗しました): (csrColInd[7]=2252) >= (csrColInd[8]=2252)

エラー (列インデックス チェックの並べ替えに失敗しました): (csrColInd[9]=4501) >= (csrColInd[10]=4501)

問題の切り分けを試みた結果、エラーの原因を対称化されたパターンをソートする「qsort.c」ルーチンに絞り込むことができました。

エラーを克服するために何ができるかについて誰かアドバイスしてください。

補足: 後で B 値を追加できますか? また、どのように追加すればよいですか? ありがとうございました。

生データ:

0 投票する
1 に答える
277 参照

cuda - cuSolverRf サンプル ステータスの割り当てに失敗しました

サンプルファイルを使用してCuSolverRf サンプルを実行すると、プログラムをスムーズに実行できます。ただし、自分のファイルに挿入すると、手順 8 の後にエラーが発生します。.mtxlap2D_5pt_n100.mtxlap3D_7pt_n20.mtx.mtx

「cuSolverRF.ccp:649 code=2 で CUDA エラーが発生しました...」

問題をここまで絞り込みました。

どちらにジャンプしますか

私の質問は、「結果」がどのように導き出されるかです。問題を克服するために何ができるか、または何が間違っていますか?

追加情報: 私の行列は 196530 x 196530 で、2530798 nnz です。

0 投票する
1 に答える
242 参照

matlab - cuSolver と MATLAB のインターフェース

Matlab で複素行列の固有値分解に cuSolver コードを使用するのが好きです。

私は MATLAB CUDA カーネルを使用していますが、cuSolver にはホスト用とデバイス用のコードが含まれているため、cuSolver を MATLAB と接続することはできないようです (ここで説明したように: http://docs.nvidia.com/cuda/cusolver/ #syevd-example1 ) 一方、MATLAB CUDA カーネルはカーネル関数に対してのみ機能します。コメントしてください。

Matlab 環境を使用して GPU で並列に複雑なデータを含む多数の行列の固有値分解を計算する他のアイデアはありますか?

0 投票する
0 に答える
55 参照

c++ - CUDA へのリンク時の未解決の外部シンボル

これが私のコードです:

リンク時に次のエラーが表示されます。

どうすればこれを解決できますか? CUDA リンカを追加する必要がありますか??

私の環境:

  • CUDA7.5
  • Windows 64ビット
  • Visual Studio2013 コミュニティ
0 投票する
1 に答える
922 参照

c++ - cuSolverDnDgetrf を使用した cuSolver サンプルが機能しない

わかった。cuSolver サンプルから取ったいくつかのコードで手を汚しています。私は C++ の経験がほとんどありませんが、どうにかして元のコードから必要なものを取得することができました。

問題は、実行しようとしたときです。私がコンパイルしたリファレンスマニュアルから推奨されているように:

ここまでは問題ありません。ただし、得られる出力は常に同じです。

どんな行列や b ベクトルを入れても、結果は同じです。コードは行列を因数分解できません。すべての実行で値が常に 2 である INFO_VALUE を示しました。infoこれは、cuSolverDnDgetrf() 関数で要求された変数の値です。cuSolver リファレンス マニュアルには次のように書かれています。

この関数は、am×n 行列 P A = L Uの LU 因数分解を計算します。ここで、A は am×n 行列、P は順列行列、L は対角単位を持つ下三角行列、U は上三角行列です。LU 因数分解が失敗した場合、つまり行列 A(U) が特異である場合、出力パラメータ devInfo=i は U(i,i) = 0 を示します。

ただし、以下のコードでは同一の行列を配置しているため、特異な行列は実行されていません。

これがコード全体です。main() cuda コードのパターンは繰り返しです: ホスト変数を定義し、それらをデバイスに cudaMemcpy し、cuda 関数を使用してデバイス上で実行し、cudaMemcpy をホストに戻し、繰り返すまでシリアルコードを続けます。

それでおしまい。私はこれがたくさんあることを知っています。任意の助けをいただければ幸いです。これらのマトリックスで何が間違っているのか本当にわかりません。

他の関連情報を追加する必要がある場合はお知らせください。

元のコードでは拡張子 .mtx の外部疎行列が要求され、linearSolverLU 関数ではそれが密行列に変換されました。私はそのようなものを削除し、代わりに密行列を使用して線形システムを直接解こうとしています。