問題タブ [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 投票する
2 に答える
6580 参照

reference - cblas インターフェイスに関する適切なドキュメントはありますか?

誰かが cblas インターフェースの良いリファレンスやチュートリアルを推薦できますか? 私が見つけたすべてのマニュアルページは fortran blas インターフェイス用であり、MKL に付属の pdf は文字通り検索に 10 秒かかり、役に立ちませんでした。

特に、行優先と列優先の追加のパラメーターがある理由に興味があります。転置フラグを使用して同じ操作を行うことはできませんか? 追加のパラメーターは、既にエラーが発生しやすいインターフェイスに複雑さを加えるだけのようです。

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

iphone - iOS 4 は 4x4 行列で Cblas を高速化します

iOS 4 で利用可能になった Accelerate フレームワークを調べています。具体的には、C の線形代数ライブラリで Cblas ルーチンを使用しようと試みましたが、これらの関数を使用して私に与えることができません。非常に基本的なルーチンよりもパフォーマンスが向上します。具体的には、4x4 行列乗算の場合です。行列のアフィンまたは同次のプロパティを使用できなかった場合は常に、次のルーチンを使用してきました (要約):

Cblas の同等の関数呼び出しは次のとおりです。

2 つを比較すると、乱数で満たされた多数の事前計算された行列を実行することにより (各関数は毎回まったく同じ入力を取得します)、C の clock() 関数でタイミングを合わせると、Cblas ルーチンの実行速度は約 4 倍遅くなります。 .

これは私には正しくないように思われ、どこかで何か間違ったことをしているような気がします。デバイスの NEON ユニットと SIMD 機能を何らかの方法で有効にする必要がありますか? または、このような小さな行列でより良いパフォーマンスを期待するべきではありませんか?

非常に高く評価、

バスティアン

0 投票する
4 に答える
3193 参照

vector - BLASを使用して1D配列の合計をどのように計算しますか?

BLASレベル1には、ベクトルのL1およびL2ノルムを計算する*ASUMおよび*NRM2がありますが、ベクトルの(符号付き)合計をどのように計算するのでしょうか。別のベクトルを1つでいっぱいにして、*DOT...を実行するよりも優れたものが必要です。

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

sql - Oracle データベースと utl_nla を使用して行列をその転置で乗算する方法

私はこの問題に夢中です。次の乗算から結果を取得できません。

X は、utl_nla_array_dbl データ型で表される m = 36 行 n = 3 列の m * n 行列です。データはテーブルに由来し、単純な pl/sql コードによってコピーされます。

私の問題を解決するために、メソッドutl_nla.blas_gemmを選択しました。これは、行列ベクトル法としての utl_nla.blas_gemv とは対照的に、行列行列法です (私はそれを機能させました。その行列 X をベクトル y で乗算し、正しい結果を受け取ることができました)。

関連するコードは次のとおりです。これは、正しい次元 (3X3) の行列を出力しますが、ゼロだけです。わかりやすくするために、ほとんどのパラメーターをハードコーディングしました。

変数 XtX も utl_nla_array_dbl 型で、結果を保持します。

私が間違っていることは何か分かりますか?私は完全に立ち往生していて、ウェブ上の他の場所で助けを見つけることができないので、すべての貢献に感謝します.

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

fortran - 典型的な fortran プログラムで macports から ATLAS/Lapack を使用する

mpi と fortran で単純な微分方程式ソルバーを作成しようとしています。ATLAS/LAPACK/BLAS ルーチンは、将来の数値モデリングに非常に役立つように思われるため、これらのルーチンの使用に慣れたほうがよいと考えました。macports 経由で ATLAS をインストールしました。私はgcc 4.4を使用しています(これもmacports経由でインストールされています)。

私はほとんど独学で、ATLAS、BLAS、LAPACK、または「ライブラリ」を故意に使用したことはありません (C++ Java および Perl で「include」ステートメントまたはそれに相当するものを使用しましたが、それらがどのように機能するかを完全には理解していません)。

ATLAS を使用して、Fortran で Ax=b を解くコードを書きたいと思っています。サンプルコードを探してみたのですが、「pgi」が必要なようです。多くのグーグル検索の後、「pgi」が何であるか、またはそれが何をするのかまだわかりません。ターミナルで「add pgi」と入力すると、「add: command not found」と表示されました

直接関連する場合に備えて、Mac 10.5.8 を使用します。

これがこの質問をする合理的な場所であることを願っています。

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

vector - BLAS サンプル コード (Fortran) はどこにありますか?

私は blas に関するまともなドキュメントを探していましたが、ctrl-f が機能しない 315 ページの密度の高い資料を見つけました。ルーチンが取る入力引数に関するすべての情報を提供しますが、多くの入力引数があり、いくつかのサンプル コードを実際に使用できます。私は何も見つけることができません。これらのライブラリを使用できる人がいるか、誰もいない必要があることを私は知っています!

具体的には、mac osx 10.5.8 に macports 経由でインストールされた ATLAS を使用し、gcc 4.4 の gfortran を使用します (これも macports 経由でインストールされます)。私は Fortran 90 でコーディングしています。Fortran にはまだ慣れていませんが、mathematica、matlab、perl、およびシェル スクリプトについてはかなりの経験があります。

密な複素ベクトルを密な対称(エルミートではない)複素行列で初期化し、乗算できるようにしたいと考えています。行列の要素は、インデックスの数学関数によって定義されます。これを f(i,j) と呼びます。

誰かがいくつかのコードまたはいくつかのコードへのリンクを提供できますか?

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

d - プリコンパイルされた Windows OMF BLAS/LAPACK?

Windows 用の事前にコンパイルされた BLAS および LAPACK バイナリを OMF オブジェクト形式で入手できる場所はありますか? これらにいくつかの D 言語コードをリンクしたいと考えています。関連するライブラリを COFF 形式で入手できる場所を知っています。COFF を OMF に変換する objconv ツールも知っていますが、これは完全には理解できない理由で実際には機能しないようです。これらはシンボルのアンダースコアに関連しているようですが、これらを処理するためにほぼすべての設定を試しましたが、どれも機能していないようです。

または、参照バイナリをOMFに変換して、実際にDMDでコンパイルされたコードに適切にリンクする方法を知っている人はいますか? 最後の手段として、CLAPACK、CBLAS、および F2CLIB を DMC でビルドする方法を知っている人はいますか? これらに付随するビルド プロセスは、GCC ツールチェーンに完全に対応しているようです。

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

math - 上三角行列の特異値分解 (SVD) の計算方法

BLASまたはLAPACKを使用してSVDを計算するアルゴリズムを知っていますか?

対称行列 A があるとします。

A から上三角行列 G を取得した後:

  • A の SVD を計算するにはどうすればよいですか? ただし、G の値を使用しますか?
  • マトリックス A のすべてをパスする必要がありますか、それとも G (中央のマトリックス) をパスするのに十分ですか?

実際には、G 行列を処理した後に取得しますが、その対称として、G のみを持つ (つまり、A の上三角行列のみを持つ) 対称 A の SVD を計算するにはどうすればよいですか?

0 投票する
4 に答える
6422 参照

c++ - LAPACK/BLAS と単純な「for」ループの比較

多数のベクトルと行列の計算を含むコードを C または C++ に移行したいと考えています。その目的は、コードを可能な限り高速化することです。

C コードのループを使用した線形代数の計算はfor、LAPACK/BLAS を使用した計算と同じくらい高速ですか?または、これらのライブラリを使用することで独自の速度向上が見られますか?

言い換えれば、単純な C コード (forループなどを使用) は、LAPACK/BLAS を利用するコードと同じくらい高速に線形代数計算を実行できますか?

0 投票する
4 に答える
33647 参照

python - python/numpy のマルチスレッド blas

Python で多数の行列 - 行列乗算を実装しようとしています。最初は、NumPy はスレッド化された BLAS ライブラリを自動的に使用すると想定していました。これらのライブラリに対して NumPy をビルドしたからです。ただし、トップなどを見ると、コードがスレッドをまったく使用していないように見えます。

BLASのパフォーマンスを簡単に使用するために何が間違っているのか、何ができるのか考えていますか?