問題タブ [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.
c++ - さまざまな b に対するスパース バンド Ax=b のバッチ CUDA ソリューション
まばらなバンド行列 A があり、Ax=b を (直接) 解きたいと思います。私は約 500 個のベクトル b を持っているので、対応する 500 個の x を解きたいと思います。私はCUDAを初めて使用するので、利用可能なオプションについて少し混乱しています。
cuSOLVER には QR hereを使用したスパース A_i x_i = b_i のバッチ ダイレクト ソルバー cuSolverSP があります。(A は適切に条件付けられているので、LU でも問題ありません。) しかし、私が知る限り、すべての A_i が同じであるという事実を利用することはできません。
別のオプションは、最初に CPU または GPU でスパース LU (QR) 因数分解を決定し、次に GPU で逆代入 (それぞれ backsub と matrix mult) を並行して実行することでしょうか? cusolverSp < t >csrlsvlu()が 1 つの b_i に対するものである場合、複数の b_i に対してこの操作をバッチで実行する標準的な方法はありますか?
最後に、私はこれについて直感を持っていないので、必要なオーバーヘッドを考慮して、これらのオプションのいずれかで GPU の高速化を期待する必要がありますか? x の長さは ~10000-100000 です。ありがとう。
c++ - Visual Studio 2013 で Cuda cusolver をリンクできない
私は基本的にすべてを試しましたが、vs2013 をコンパイルして cusolver ライブラリに対してリンクすることができません。cuda インストール パッケージに付属するすべてのサンプル プロジェクトを試しましたが、基本的にすべてのサンプルが正常に動作します。cusolver を使用したサンプルはありませんが。インクルードファイルは問題なく動作します。リンカにエラーがあり、他のすべてのcuda関連のリンクは問題ありません。完全に機能するcudaサンプルに1行のcusolverコードを追加しようとしましたが、壊れました。コード スニペットは次のとおりです。
ビルド出力は次のとおりです。
プロジェクト プロパティ -> vc++ およびリンカー オプションにディレクトリを追加しようとしましたが、役に立ちませんでした。何か案は?この1つのライブラリが機能しないのはとても奇妙です。
(また、GPUプログラミングを使用して最小二乗法で連立方程式を解く方法について他のアイデアがあれば、それは役に立ちます)
編集の更新: cudaLinker や vc++ ディレクトリなどの他のリンカー オプションに追加のライブラリまたは追加のインクルード ディレクトリを追加して、追加の .h ファイルや追加のライブラリを含めないでください。
python - PyCUDA を使用した cuSOLVER-sparse のインターフェース
PyCUDA を使用してスパース cuSOLVER ルーチンcusolverSpDcsrlsvqr() (>= CUDA 7.0) をインターフェイスしようとしていますが、いくつかの問題に直面しています: 密な cuSolver ルーチンが scikits-cuda でラップされているのと同じ方法でメソッドをラップしようとしました ( https:/ /github.com/lebedov/scikits.cuda/blob/master/scikits/cuda/cusolver.py )。
ただし、cusolverSpDcsrlsvqr() 関数を呼び出すと、セグメンテーション違反でコードがクラッシュします。cuda-gdb ( cuda-gdb --args python -m pycuda.debug test.py; run;bt
) を使用してデバッグすると、次のスタック トレースが生成されます。
#0 0x00007fffd9e3b71a in cusolverSpXcsrissymHost () from /usr/local/cuda/lib64/libcusolver.so #1 0x00007fffd9df5237 in hsolverXcsrqr_zeroPivot () from /usr/local/cuda/lib64/libcusolver.so
#2 0x00007fffd9e0c764 in hsolverXcsrqr_analysis_coletree () from /usr /local/cuda/lib64/libcusolver.so
#3 0x00007fffd9f160a0 in cusolverXcsrqr_analysis () from /usr/local/cuda/lib64/libcusolver.so
#4 0x00007fffd9f28d78 in cusolverSpScsrlsvqr () from /usr/local/cuda/lib64/libcusolver.so
私は cusolverSp S csrlsvqr() を呼び出しておらず、ホスト関数 (cusolverSpXcsrissym Host ) を呼び出す必要もないと思うので、これは奇妙です。
これは私が話しているコードです - あなたの助けに感謝します:
c++ - cuSolver でデバイスの LU 分解が見つからない
cuda を使用して行列式 (double の配列) を計算する必要があり、これを行うために LU 分解を使用したいと考えています。デバイス機能は見つかりませんがcusolverSp.h
、ホスト機能のみですcusolverSpDcsrlsvluHost
。私はcuda 7.0とcuda 7.5を見ています。
公式ドキュメントに記載されているため、なぜ見つからないのかわかりません: http://docs.nvidia.com/cuda/cusolver/index.html#api
デバイス上のコレスキー分解などの他の機能は機能します。
実装されていますか?はいの場合、どこで見つけることができますか?
ご協力ありがとうございました!
python - scikit-cuda を使用して、cuSOLVER で特異値分解を計算する
cuSOLVER 関数に scikit-cuda のラッパーを使用しようとしています。特に、cusolverDnSgesvd を実行して、実数の行列でフル行列単精度 SVD を計算したいと考えています。
コードhereとhereを参照として使用すると、ここまで到達できました。
しかし、おそらく型をいじっているため、コードが機能していません。
SVD が適切な方法で実行されるようにするには、すべての引数をどのように指定すればよいですか?
UPDATE1:この質問を参照として 使用した後、コードを編集したところ、新しいエラーが発生しました。
そして、私は新しいエラーが発生しています
devInfoで何か間違ったことをしているようです
c++ - ステータス: CUDA ライブラリから cusolverDnDgeqrf を呼び出すときに実行に失敗しました
CUDA の cusolver ライブラリを使用して、GPU で QR 分解を実行しようとしています。
問題を以下の例に減らしました。
基本的に、いくつかの手順は次のとおりです。
- ホスト上でメモリを割り当て、[5x3] マトリックスを 1 で初期化しました。
- メモリを割り当てて、マトリックスをデバイスにコピーします
- ソルバーハンドラーを初期化します
cusolverDnCreate
- 必要なワークスペースのサイズを決定します
cusolverDnDgeqrf_bufferSize
- 最後に、QR 因数分解を実行してみます
cusolverDnDgeqrf
残念ながら、最後のコマンドは (int 値 = 6) を返すことで体系的に失敗し、CUSOLVER_STATUS_EXECUTION_FAILED
何が問題なのかわかりません!
欠陥のあるコードは次のとおりです。
私のコードに明らかなエラーがありましたら、お知らせください。どうもありがとう。