問題タブ [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.
c++ - Boost UBLAS blas-1 を行列に適用する
boost::numeric::ublas 行列にレベル 1 blas を適用するにはどうすればよいですか? たとえば、最大エントリまたはすべてのエントリの合計を計算したいとします。行列で norm_1 または norm_inf を使用しても、コンパイラ エラーは発生しませんが、(私のように) 任意の結果が返されます。ブースト1.42を使用しています
c - CでのGotoBLAS2の使用
私はCコーディングの初心者ですが、ニューラルネットワークをシミュレートするためのMatlabプログラムを作成しました。スーパーコンピュータークラスターでは、一度に複数のMatlabシミュレーションを実行できないため、Cコードに変換したいと思います。そのために、GotoBLASが行列の計算を処理することを発見しました。
残念ながら、Cや外部ライブラリの使用経験が少ないため、使用方法がわかりません。'dgemm'はBLASガイドpdfを読んで、GotoBLASの関数だと思います。GotoBLASを正常にコンパイルできましたが、コンパイルすると次のようになります。
メッセージが表示されます:
私が理解しているように、GotoBLASからのファイルを含める必要があり.h
ます(または含まない可能性があります)が、どれが正しいか(またはこれが正しいかどうか)はわかりません。
これに関する助けをいただければ幸いです。さらに情報が必要な場合はお知らせください。
visual-studio-2008 - GotoBLAS for Intel Architecture - Visual Studio 2008 のダウンロード リンクとコンパイル ガイドを探す
現在、アプリケーション内で線形代数の計算に使用する Eigen をコンパイルしています。ただし、最適なパフォーマンスを得るには、GotoBLAS Intel バージョンを使用することをお勧めします。
(a) 必要なソース コードを取得し、(b) Visual Studio 2008 内でコンパイルする簡単な方法はありますか? オンラインで GotoBLAS2 を見つけましたが、マイクロアーキテクチャ用に設計されているようで、C++ 環境で使用するために VS で簡単にコンパイルする方法がわかりません。
アドバイスをいただければ幸いです。お時間をいただきありがとうございます。
c++ - ベンチマーク(PythonとBLASを使用したc ++)および(numpy)
BLASとLAPACKの線形代数機能を多用するプログラムを書きたいと思います。パフォーマンスが問題であるため、ベンチマークを実行しました。私が採用したアプローチが正当であるかどうかを知りたいと思います。
私には、いわば3人の出場者がいて、単純な行列-行列乗算を使用して彼らのパフォーマンスをテストしたいと思います。出場者は次のとおりです。
- Numpy、の機能のみを利用しています
dot
。 - Python、共有オブジェクトを介してBLAS機能を呼び出します。
- C ++、共有オブジェクトを介してBLAS機能を呼び出します。
シナリオ
さまざまな次元の行列-行列乗算を実装しましたi
。i
5から500まで、5の増分と行列m1
で実行され、次のm2
ように設定されます。
1. Numpy
使用されるコードは次のようになります。
2. Python、共有オブジェクトを介してBLASを呼び出す
機能付き
テストコードは次のようになります。
3. c ++、共有オブジェクトを介してBLASを呼び出す
これで、c ++コードは当然少し長くなるので、情報を最小限に抑えます。
関数をロードします
私はこのように時間を測定しgettimeofday
ます:
ここで、j
は20回実行されるループです。経過時間を計算します
結果
結果を以下のプロットに示します。
質問
- 私のアプローチは公平だと思いますか、それとも回避できる不要なオーバーヘッドがありますか?
- 結果は、c ++とpythonのアプローチの間にこのような大きな矛盾を示すと思いますか?どちらも計算に共有オブジェクトを使用しています。
- プログラムにPythonを使用したいので、BLASまたはLAPACKルーチンを呼び出すときにパフォーマンスを向上させるために何ができますか?
ダウンロード
完全なベンチマークはここからダウンロードできます。(JFセバスティアンはそのリンクを可能にしました^^)
c++ - BLASを使用して実数行列と複素数ベクトルを乗算する
Blasを使用して、実数行列に複素数ベクトルを乗算するにはどうすればよいですか?ccsrgemv()のような関数を使用すると、タイプの不一致エラーが発生しますか?
c++ - BLASでの要素ごとのベクトル-ベクトル乗算?
BLAS、GSL、またはその他の高性能ライブラリを使用して、要素ごとのベクトルとベクトルの乗算を行う手段はありますか?
objective-c - Xcode で BLAS または LAPACK を使用する
Xcode で開発した Objective C プログラムに BLAS または LAPACK 関数を組み込む方法についての良いガイドを探しています。私がオンラインで見つけた BLAS/LAPACK のプログラムのソースは Fortran で書かれたものだけです - これは紛らわしいです。BLAS/LAPACK を利用しながら、Objective C でコーディングするにはどうすればよいでしょうか? オンラインの例/ガイドはありますか? 行列の要素が複雑な値を持つ行列演算を実行できるようにしたいと考えています。
乾杯、
シャディ
python - Python でマルチプロセッシングと共にマルチスレッド blas 実装を使用する価値はありますか?
16 コアのマシンと、途方もない並列プログラムがあるとします。私は多数の numpy ドット積と numpy 配列の追加を使用しています。マルチプロセッシングを使用していなければ、それは簡単なことです。numpy が、マルチスレッドを使用する blas のバージョンに対してビルドされていることを確認してください。しかし、私はマルチプロセッシングを使用しており、すべてのコアが常に一生懸命働いています。この場合、マルチスレッド blas を使用するメリットはありますか?
ほとんどの操作は (blas) タイプ 1 で、一部はタイプ 2 です。
c - blasを使用して最適な方法で行列を転置する方法は?
私はいくつかの計算を行っており、さまざまなBLAS実装の力と弱点について分析を行っています。しかし、私は問題に遭遇しました。
私はcuBlasをテストしていますが、GPUでlinAlgを実行するのは良い考えのように思えますが、1つの問題があります。
列メジャー形式を使用したcuBlasの実装。これは最終的に必要なものではないため、BLASに行列転置を実行させる方法があるかどうか知りたいです。
lisp - スキームによるLapack
合理的な BLAS および LAPACK インターフェイス パッケージを使用したスキームの実装、つまり、Golub と Van Loan の「Matrix Computations」で説明されている API サブセットをサポートするものを探しています。これには、少なくとも、すべての BLAS 演算、主要な分解 (SVD、LU、QR、コレスキー)、および便宜上、最小二乗法が含まれます。Chicken と Racket に何かがあることがわかりましたが、上記をカバーしていません。これを実現するポータブルライブラリの実装を知っている人はいますか?