問題タブ [blas]

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

scientific-computing - GSL gsl_blas_sgemm 行列の乗算が n>140 で非常に不正確

gsl_blas_sgemm 関数を使用して、すべてが 1 の 150x150 行列を乗算したものをテストするだけです。最大 38 のエラーが発生します。なぜそれほど不正確なのですか?

0 投票する
2 に答える
3159 参照

fortran - 単純なMKLBLASルーチンを使用したFortran倍精度プログラム

単純なプログラム(実数と倍精度の両方を使用)で精度を混合し、BLASのddotルーチンを使用しようとすると、倍精度のピースの出力が正しくなくなります。コードは次のとおりです。

次のように、MKLBLASライブラリを使用してgfortranとifortの両方でコンパイルしてみました。

出力は次のとおりです。

倍精度値を正しく処理するようにddotルーチンを取得するにはどうすればよいですか?

さらに、-autodoubleフラグ(ifort)または-fdefault-real-8(gfortran)フラグを追加すると、両方のddotルーチンが機能しますが、sdotルーチンは失敗します。

編集: 暗黙のnoneステートメントと、ddot関数とsdot関数の2つのタイプステートメントを追加しました。関数呼び出しに指定された型がない場合、ddotは単精度実数として暗黙的に型指定されていました。

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

c - MKLCBlasエラー

Intel MKLが提供するcblaを使用して、AとBの2つの行列の積をCに変換しようとしています。これがエラーになる理由はありますか?

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

cmake - CMakeを使用してBLAS/LAPACKベンダーを検出する

そのため、私のコードでは、さまざまなBLAS / LAPACKベンダーで発生したときに、さまざまなヘッダーファイルをインクルードしたいと考えています。事前定義されたマクロなど、チェックさせてくれるものはありますか?

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

blas - IntelMKLをリンクできません

プログラムを正しくリンクできません。次のコマンドラインを使用しましたが、エラーが発生します。

出力は次のとおりです。

また、すべての.aファイルに対して1つずつリンクしようとするスクリプトを実行しようとしましたが、すべて失敗します。誰かが解決策を提案できますか?ありがとう。

0 投票する
3 に答える
816 参照

c++ - uBLASSlowMatrix-SparseVector乗算

最適化されたブーストuBLASライブラリを使用するために、独自のベクトル代数コードの一部を変換しています。ただし、SymmetricMatrix-SparseVectorの乗算を実行しようとすると、自分の実装よりも約4倍遅いことがわかりました。ベクトルサイズは通常約0〜500で、約70〜80%のエントリはゼロです。

これが私のコードです

sparseVectorIndexesは、入力ベクトルの非ゼロ値のインデックスを格納します。vectorLengthはベクトルの長さであり、sparseLengthはベクトル内の非ゼロの数です。行列は対称行列として格納されsymmetric_matrix<double, lower>ます。

私自身の実装は、単純なネストされたループの反復であり、行列は単なる2D二重配列です。

}

uBLAS 4xが遅いのはなぜですか?掛け算をきちんと書いていませんか?それとも、これにより適した別のライブラリがありますか?

編集:代わりに密なベクトル配列を使用すると、uBLASは2倍遅くなります...

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

objective-c - 2D NSArray から C 配列を作成する

文字列番号の 2D NSArray を持っており、BLAS/LAPACK 関数で使用するために double の 2D C 配列に変換したいと考えています (加速フレームワークを介して)。このコード行は機能しているように見えますが、信じられないほど効率が悪いようで、最終的に malloc エラーが原因でクラッシュします。この 2D NSArray を C 配列に変換するより効率的な方法はありますか? または、BLAS/LAPACK で NSArrays を使用する便利な方法はありますか?

fileLines は、それぞれの数値に解析されるファイルの行を含む配列です。

0 投票する
2 に答える
6614 参照

matlab - MATLAB の組み込み LAPACK/BLAS ルーチンの呼び出し

MATLAB で組み込みの LAPACK/BLAS ルーチンを呼び出す方法を知りたいです。私は MATLAB と mex ファイルの経験がありますが、実際には LAPACK または BLAS ライブラリを呼び出す方法がわかりません。このような関数の mex ファイルを作成する必要がないため、呼び出しを簡素化するファイル交換のゲートウェイ ルーチンを見つけました。MATLAB とこれらの組み込みライブラリとの間の基本的なメッセージングを学習するには、おもちゃの例が必要です。行列の乗算や LU 分解などのおもちゃの例は大歓迎です。

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

linear-algebra - dtrtrsとdtrsmの違い

いくつかの三角ソルバーを探していますが、2つのソルバーに出くわしました。1つはBLAS:dtrsm で、もう1つはLAPACK:dtrtrsです。見た目からすると、両方とも共通の機能を持っているように見えますが、dtrsmにはもう少し機能があります(システムを解決する前に右側をスケーリングします)。

知りたいのですが
1)これらの機能は他にどのように違うのですか?
2)同じ操作を実行する場合、どちらが速いですか?
3)(2)の答えが明らかでない場合、dtrsmがdtrtrsよりも提案されるのはいつですか。その逆も同様です。

0 投票する
2 に答える
1023 参照

c - BLASのcatlas_saxpbyとのベクトル乗算が正しく機能しない

2つの任意の長さのベクトル(通常の長さは2048)を作成し、要素ごとに乗算しようとしています。したがって、すべてのnについてZ [n] = X [n] *Y[n]です。

私がテストするように設定したコードはかなり基本的です:

結果はinputYに入り、結果は次のようになります。

それらが乗算している場合、それは4、16、64、256であるはずです。しかし、それは加算しているように見えます。

したがって、これは私が期待することを行っておらず、ドキュメントはそれが何をしているのかを理解するのに十分な情報を私に与えていません。

何か案は?