問題タブ [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 に答える
1512 参照

blas - vecLib cblas_sgemm のドキュメントが間違っていますか?

vecLibs の cblas を使用して 2 つの行列を乗算しようとしています。

ドキュメントによると、すべての引数が一致しているように見えますが、このエラーが発生します:

lda は >= MAX(K,1) でなければなりません: lda=2 K=3BLAS エラー: cblas_sgemm に渡されたパラメータ番号 9 に無効な値がありました

0 投票する
6 に答える
7239 参照

heroku - Heroku で Scipy を実行する

Heroku で Numpy と Matplotlib を実行し、Scipy もインストールしようとしています。ただし、Scipy をインストールするには BLAS[1] が必要ですが、これは Heroku プラットフォームにはありません。Heroku サポートに問い合わせたところ、BLAS を静的ライブラリとして構築してデプロイし、必要な環境変数をセットアップするよう提案されました。

そこで、64 ビット Linux ボックスで libblas.a をコンパイルし、[2] で説明されているように次の変数を設定しました。

requirements.txt に scipy==0.10.1 を追加した後も、プッシュは失敗します。

pip は BLAS 環境変数を認識していないようなので、heroku run python を使用して環境を確認します。

そして、それはうまくいくようです。今、私はこれを解決する方法がわかりません。

[1] http://www.netlib.org/blas/ [2] http://www.scipy.org/Installing_SciPy/Linux

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

lapack - CLAPACK: CBLAS テスト時のエラー

CLAPACK で CBLAS をテストすると、エラーが発生します。テストコードを実行すると

エラー出力が表示されます:

「TransA は 111、112、または 113 でなければなりませんが、-1 に設定されています。ルーチン cblas_dgemv のパラメータ 2 が正しくありませんでした」

これがどのような問題を示しているか知っている人はいますか?

詳細

参照 CBLAS を使用せず、代わりに ATLAS CBLAS を使用しようとしています。そこで、ラッパー ライブラリlibcblaswr.aをコンパイルし、make.inc の行を次のように変更しました。

CLAPACKのインストールは、行うことをお勧めします

しかし、リンカーは -L オプションを使用しないと cblas と atlas を見つけられないので、含めました。

私のセットアップの詳細:

  • Ubunty Lycid Lynx 10.04
  • CLAPACK-3.2.1
  • ATLAS.3.9.51
0 投票する
2 に答える
858 参照

c - 破壊的な行列アプリケーションを実現するために、入力ベクトルと同じ出力をGEMVに渡すのは安全ですか?

Anxn行列で、xが次元nベクトルある場合、xAx_GEMVxybeta=0

私は特に、Cインターフェイスを使用したCublasの実装に興味があります。

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

macos - Numpy EIGは、Mac OSX10.6のMATLABEIGよりも約4倍遅くなります。私は何が間違っているのですか?

MATLABとNumPyでEIG関数をプロファイリングして、Macbook Pro(2 GHz、OS X 10.6を実行するクアッドコアi7)のパフォーマンスを比較してみました。NumPy EIGは、MATLABと比較して非常に遅いようです。

これが私がNumPyでプロファイリングしたコードです:

これは、NumPyでは約19.5秒/実行です。

これがMATLABの同じコードです:

これは、MATLABでは約5.36秒/execです。

これはJITのパフォーマンスにあまり依存しないはずなので、おそらくBLASとBLASライブラリにアクセスするルーチンに要約されます。私はMATLABがMacでAccelerateFrameworkを使用していることを知っています。

NumPyは私のMacbookProでAccelerateFrameworkBLASも使用しているようです。これがの出力ですnumpy.show_config()

Python2.7.2とNumPy1.6(どちらもMacPortsからインストール)を使用しています

それで、NumPyの人々への私の質問はここにあります:なぜこの場合NumPyは遅いのですか?NumPyのインストール中にいくつかの最適化を省略しましたか?

0 投票する
0 に答える
984 参照

python - import numpyは、共有blasライブラリを他のモジュールにロードします

Cython(core.so)によってモジュールとしてリンクされたライブラリがあります。BLASを使用しますが、BLASがランタイムにロードされることを期待して、-undefined、dynamic-lookupオプションを使用してコンパイルされます。

Enthought Python Distributionでは、次のソリューションが完全に機能します。

apt-getを介してnumpyをインストールしたUbuntu10.04の「バニラ」Pythonディストリビューションで試してみました(同じ方法でliblapack-dev、libblas-devをインストールしました)。BLASライブラリが見つかりません。EPDと同じように機能させるにはどうすればよいですか?

更新

これは、numpyと同じBLASを取得するために行われます。たとえば、Mac Os Xボックスでは、EPDは再びMKLでコンパイルされ、利用可能なBLAS(Accelerate Framework)よりもはるかに高速です。

の出力numpy.show_config()は次のとおりです。

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

c++ - C++ の複素行列指数

c / c ++で複素行列の行列指数を計算することは実際に可能ですか?

GNU Science Library の blas 関数を使用して、2 つの複雑な行列の積を得ることができました。matC = matA * matB の場合:

そして、文書化されていないを使用して、行列の行列指数を取得することができました

しかし、これは複雑な引数を受け入れないようです。

とにかくこれを行うことはありますか?私はかつて、C++ は何でもできると思っていました。今では時代遅れで不可解だと思います...

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

c++ - 複雑な対称三重対角行列の高速行列指数

基本的に私は上記が必要です。私はグーグルをトロールしましたが、これを実装する方法を見つけることができません。

この関数はhttp://www.guwi17.de/ublas/examples/で見つけましたが、遅すぎます。私はMATLABのルーチンに従って独自のパデ近似を作成しましたが、リンクにあるものよりもわずかに高速でした。

私を驚かせるのは、Mathematicaが行列指数をどれだけ速く計算できるかということです(行列がtridiagであるかどうかはわかりません)。

誰かが助けることができますか?

編集:これが私が思いついたものです、コメントはありますか?将来の読者に役立つことを願っています

私はしばらくの間c++を使用していなかったので、以下のコードは少しごちゃごちゃした/遅いかもしれません。改善が見られたら教えてください。

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

c++ - C++ での Diag(k) の代替方法は何ですか?

matlab コードを C++ コードに変換し、Matlab の Diag(k) 関数で同じ仕事をする Lapack、Blas、または Atlas の関数を見つけようとしていますか? 助言がありますか ?

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

math - BLAS サブルーチンをどのように「拡張」しますか?

通常、BLAS サブルーチンは、特定の固有の操作に対して定義されます。例えば、

DAXPY必然的にy <-- ax + y

DSCALは必ずx = ax

私が達成したいことは次のとおりです。

z = ax+byy = ax

BLAS のサブルーチンを「拡張」して、上記のことができるようにするにはどうすればよいですか? (これらの操作は必ずしも相互に続くわけではありません)

私が試してみました:

  • ダミーを宣言してDCOPYから、ダミーを目的のベクトルに ing します。お気に入り、DCOPY(dummy,x); DSCAL(a,dummy),DCOPY(y,dummy)

  • 独自の OpenMP 実装の作成

  • DCOPY(y,a*x)y=axの場合、次のようなトリックを使用します

しかし問題は、これらの方法のどれもが、この問題を回避する最善の方法であるという決定的な答えを私に与えてくれないようだということです. 質問するよりも「プロファイル、プロファイル、プロファイル」の方がよいことはわかっていますが、すべて試してみましたが、ベクターを少し変更するたびに、以前の最良の方法が突然最悪の方法になったり、その逆になったりします。

また、

  • 私の意図は、可能な限り最高のパフォーマンスをもたらすことです。
  • これらの操作を最適化しても、おそらくパフォーマンスが大幅に向上しないことはわかっていますが、できる限りピコ秒ごとに節約しようとしています。
  • FWIW、インテル MKL にリンクしています