問題タブ [cusp-library]

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 に答える
163 参照

cuda - カスプで実数スケーリングされたスパース行列ベクトル乗算?

カスプでは、reduce と結合を行う spmv(sparse matrix vector multiplication) を計算するための乗算があります。

インターフェイスからは、行列/ベクトルの乗算に対してカスタムの結合と削減が可能であるように見えます。cusp は、spmv を計算するために、乗算とプラス以外に、thrust/functional.h で定義されている他の結合関数と削減関数を使用することをサポートしていると思います。たとえば、thrust::plus を使用して、乗算を元の結合関数 (乗算) に置き換えることはできますか? そして、このスケーリングされた spmv は、coo、csr、dia、hyb 形式の疎行列もサポートしていると思います。

ただし、行列 A が coo 形式の a.cu で以下の例をテストしたところ、間違った答えが得られました。プラス演算子を使用して結合しました。そして、 cmd : nvcc a.cu -o ato でコンパイルしました。

そして、私は以下の答えを得ました。

私が得たベクトル y は奇妙です。正しい答え y は次のようになるはずです。

したがって、このような結合と削減の置換が coo のような他の疎行列形式に適用できるかどうかはわかりません。あるいは、上で書いたコードが間違って乗算を呼び出しているのかもしれません。助けてもらえますか?どんな情報でも役に立ちます。

ありがとうございました!