問題タブ [matrix-multiplication]
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 - CUDA/C 行列の乗算
誰かが私がここで間違っていることを教えてもらえますか? cudaを使用して行列をべき乗に戻すプログラムを作成しようとしています。cudaMemcpy (ln103) が結果配列を返さないようです。行列の最初の要素を返すことで確認しますが、常に 0 しか返されません。カーネルに何か問題があるのでしょうか? 助けていただければ幸いです:
編集:明確にする必要があります。カーネルは、行列にべき乗を与える k 回まで反復されます(行列にそれぞれの単位行列を掛けたものから始まり、その後すべての結果を掛けます)。
つまり、A は行列 A^0 = I (恒等行列) A^k = A^(k-1)*A
入力:
コード:
お返事ありがとうございます。これを実行すると、カーネル呼び出しで以下の入力を使用して無限ループが発生します。また、新しいコード。私はあなたの助けに感謝します
新しいコード:
python - numpy でサブ配列のドット積を見つける
numpy では、numpy.dot()
関数を使用して 2 つの 2D 配列の行列積を計算できます。2 つの 3D 配列 X と Y (たとえば) があり、行列 Z を計算したいと思いZ[i] == numpy.dot(X[i], Y[i])
ますi
。これを非反復的に行うことは可能ですか?
wolfram-mathematica - 3つの行列の積は、奇数のブロック行列になりますか?
数学コードの次のビットで
dの表示は、2 x 2の行列として表示されます。ここで、1,1要素と2,2要素は、それ自体が2x2行列ですが、スカラーの単純な古い2x2行列であると思いますか?
matlab - Matlabでの3次元行列の作成と操作
Matlabでループを回避しようと必死にfor
なっていますが、その方法がわかりません。状況は次のとおりです。
2つのm x n
行列A
とB
2つのベクトルがv
ありw
、長さはd
です。私は外部乗算をしたいA
ので、エントリがである行列v
を取得し、同様にと。m x n x d
(i,j,k)
A_(i,j) * v_k
B
w
m x n x d
その後、結果の行列を追加しmean
、最後の次元に沿ってm x n
行列を取得します。
後半は大丈夫だと思いますが、前半は完全に行き詰まってしまいます。bsxfun
無駄に使ってみました。誰もがこれを行うための効率的な方法を知っていますか?どうもありがとう!
編集:この改訂は、以下の3つの優れた回答の後に行われます。gnoviceは、間違いなく私が尋ねた質問に対する最良の答えを持っています。しかし、私が尋ねるつもりだった質問は、平均を取る前に各エントリを二乗することを含みます。もともとこの部分について言及するのを忘れていました。この煩わしさを考えると、他の両方の答えはうまく機能しますが、コーディングの前に代数を実行するという巧妙なトリックは、今回は役に立ちません。皆さん、助けてくれてありがとう!
opencl - 科学計算用の Cayman Architecture におけるローカル データ ストアとテクスチャ キャッシュ
ATI HD 6990 カード (Cayman アーキテクチャ) で AMD-APP-SDK 2.4 を使用して GEMM 実装を実装しようとしています。
最適化手法の 1 つは、ブロッキング/タイリングの使用です。
その実装では、サブマトリックスを共有ローカル メモリに保存した方が高速ですか、それともテクスチャ キャッシュを使用した方が高速ですか? できれば理由もお願いします。
また、どちらが実装しやすいかを提案してください。
ありがとう。
PSそれが重要な場合は、単精度のみが必要です!
注: サブ マトリックスのサイズは問題ではありませんが、大きければ大きいほど良いと思います。考慮すべき唯一の要因は、メモリの単位が 128 ビット (4 単精度) の場合、ブロック サイズは 4 の倍数である必要があるということです。
matrix-multiplication - この threeCanvas.js コード行を three.js に変換するにはどうすればよいですか?
何らかの理由で、three.js と ThreeCanvas.js は互換性がありません。ThreeCanvas.js プログラムを three.js に変更しようとしていますが、この行によって大きな問題が発生しています。
問題は、「THREE.Object3D matrixRotation」も「THREE.Matrix4 transform」も three.js に存在せず、別の名前で同等のメソッドがないように見えることです。例えば「THREE.Object3D matrixRotationWorld」というのがありますが、コードが全然違います。
これをthree.jsで書き直す方法を知っている人はいますか?
c# - C#:行列乗算のためのXNAベクトルの宣言と使用など。al
C#で行列の乗算や合計などにXNAベクトルを宣言して使用しようとしています。
これらは画像処理に使用され、通常のSetPixelやGetPixelよりも高速になります。しかし、私は常に実用的な例を見つけることができず、オンラインで多くの例を試しましたが、何かが足りないようです。
ヘルプとサンプルコードはありますか?
ありがとう!
matrix - Erlangマトリックスライブラリ
Erlangで行列を処理するための堅牢なライブラリを探しています。特別なことは何もありません。乗算と基本的な操作を効率的に処理するだけです。リストなどでそれを行うことはできますが、私の実装はあまり効率的ではないと確信しています!
arrays - MATLAB: How to vector-multiply two arrays of matrices?
I have two 3-dimensional arrays, the first two dimensions of which represent matrices and the last one counts through a parameterspace, as a simple example take
(but assume A(:,:,j)
is different for each j
). How can one easily perform a per-j
matrix multiplication of two such matrix-arrays A
and B
?
certainly does the job, but if the third dimension is more like 1e3 elements this is very slow since it doesn't use MATLAB's vectorization. So, is there a faster way?
c++ - フロート5x5行列の高速化*SSEによるベクトル乗算
行列とベクトルの乗算を1秒間に240000回実行する必要があります。行列は5x5であり、常に同じですが、ベクトルは反復ごとに変化します。データ型はfloat
です。私はいくつかのSSE(または同様の)命令を使用することを考えていました。
関係するメモリ操作の数と比較して、算術演算の数が少なすぎるのではないかと心配しています。私は具体的な(たとえば> 20%)改善を得ることができると思いますか?
それを行うにはIntelコンパイラが必要ですか?
いくつかの参考文献を指摘できますか?