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

multithreading - MacOS 10.6 および 10.7 での LAPACK 3.3 以降によるマルチスレッド

MAC 10.6 および MAC 10.7 で openMP を使用してマルチスレッド プログラムをビルドおよび実行しようとしています。プログラムは複数のスレッドから zgelss および zgemm を呼び出します。

LAPACK 3.4 と refBLAS をコンパイルしました

次のコマンドでプログラムをコンパイルしました

このプログラムの結果は正しくありません。Apple が提供するライブラリを使用してプログラムをコンパイルすると、10.7 では正常に動作しますが、10.6 では動作しません。

(MAC 10.7 は lapack 3.2.1 を変更しました) および (MAC 10.6 は lapack 3.1.1 を変更しました) -- 推測します。

LAPACK 3.4 とそれに対応する BLAS がスレッドセーフであるかどうか、誰が説明できますか?

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

c++ - 1 回の操作で複数の行列間乗算を実行する

本質的に、次のような一連の行列 - 行列乗算であるアルゴリズムを実装しています。

私の行列は本当に小さい 100x100 フロートですが、シーケンスは非常に長く、数十億のオーダーです。

行列の乗算に CUBLAS を使用してみましたが、これは遅かったのですが、興味深いことに気付きました。

100x100 を 100x100 マトリックスで乗算するのは遅かったが、1.000.000x100 を 100x100 で乗算するのは比較的高速だった。これは非常に高速であるはずです。これが完了したときに行列を乗算すると、同じ結果が得られますが、より速くなります。

M_1 ... M_n が約 100 の異なる行列のセットに含まれていることは何の価値もないため、スペースの消費は実際には問題ではありません。必要なのは、1 回の操作で複数の乗算を行うことだけです。

ここに私の問題があります。nvidiaがドキュメントで示しているものに触発されたmatrix-matrix(sgemm)実装を行いましたが、cublasの約4倍遅いです。CUBLAS の仕組みを知っている人はいますか? そして、コードがどこかで利用できる場合は?

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

c - CUDAを使用した行列の行のスケーリング

GPUでの一部の計算では、特定の行のすべての要素の合計が1になるように、行列の行をスケーリングする必要があります。

どこ

のベクトルとalphaスケーリングされた行列が必要です。これをできるだけ少ないblas呼び出しで実行したいと思います。コードはnvidiaCUDAハードウェアで実行されます。誰かがこれを行うための賢い方法を知っていますか?

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

math - MKLライブラリでのBLASsdot操作の実装

sdot単一の正確な浮動小数点ドット操作についてBLASインターフェースをテストしました。Intel MKLライブラリの結果は、 http: //netlib.org/blas/で提供されているBLASFortranコードの結果とは少し異なることがわかりました。MKLのものはより正確に見えます。

MKLによる最適化はあるのだろうか?または、MKLはそれをより正確にするためにどのように実装しますか?

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

blas - cblas を使用した内積が遅い

積 A^T*A ( A は 2000x1000 行列) を計算したい。また、上三角行列のみを解きたいです。内側のループでは、2 つのベクトルの内積を解く必要があります。

さて、ここで問題です。cblas ddot() を使用しても、ループで内積を計算するよりも高速ではありません。これはどのように可能ですか?(Intel Core (TM)i7 CPU M620 @2,67GHz、1,92GB RAM を使用)

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

c++ - ソースコードは?

私には特別な種類の問題があります。

CUDA 4.1、特にbatchedgemm. 別の機関から借りた GPU のクラスターで実行する必要があります。

私の問題は、クラスターに CUDA 4.0 しかインストールされておらず、迅速なアップグレードに消極的であることです。

どこかで batchedgemm のソースを入手して、4.0 で動作するようにコンパイルできるかどうかは誰にもわかりませんか?

バッチ乗算を実行するための独自のカーネルを作成しましたが、ライブラリのカーネルよりも約 10 桁遅く実行されます。偉大な人物のつま先ではなく肩の上に立ちたいと思います。

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

c++ - seg-fault の原因となる値渡し変数のアドレス

PowerPC 用にコンパイルおよびテストされた、編集できないレガシー コードを使用しています。一般的な Linux ボックス (Ubuntu 11.10 x64) 用にビルドするビルド システムを作成しようとしています。

clpack (Ver. 3.2.1) に含まれる汎用 blas ライブラリの f2c バージョンをラップする cblas に似たカスタム インターフェイスを備えています。つまり、Linux マシンで clpack ソースから liblapack、libblas、および libf2c をコンパイルし、次のサンプル コードにリンクします。

mycblas_dscalblas ライブラリの実装を呼び出すだけdscal_です。ただし、ライブラリはすべてのデータのポインターを想定しており、このラッパーは現在、 と のアドレスをN直接scale渡しincます。これらは値渡しであり、多くの場合リテラルであるため、これは私を怖がらせます。

実行さmycblas_dscalれると、何もしないことがよくあります。つまりa、変更されていないか、セグメント化されています。障害。より高度なコンパイラの最適化 (gcc -O3 など) を使用すると、セグメント化のみが行われます。障害。

blas ライブラリをテストするには、次のコードが正常に機能します。

私の唯一の洞察は、seg. コンパイラの最適化により、フォールトの動作が悪化します。詳しく調べるほどの知識はありません。何か案は?

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

r - Blas バージョンの R 検出

R が R 内から使用している BLAS のバージョンを検出する方法はありますか? 私はUbuntuを使用しており、いくつかのBLASバージョンがインストールされています.Rの観点からどれが「アクティブ」なのかわかりません!

私はhttp://r.789695.n4.nabble.com/is-Rs-own-BLAS-td911515.htmlでブライアン・リプリーが 2006 年 6 月にそれは不可能だと言ったことを知っていますが、状況は変わりましたか?

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

c - CUBLAS / CUSPARSE操作で単一化された配列の要素を0に設定するのは安全ですか?

たとえば、さまざまな行列-ベクトル-乗算の結果を累積する場合(これは、累積要素が1つしかない場合でもBLASで行うことです)、正式にはゼロベクトルで始まります。しかし、CUDAデバイスメモリにゼロの配列を直接割り当てるオーバーヘッドのない方法はありません(またはありますか?)ので、頭に浮かぶ解決策は、0に初期化する代わりに、任意の数の配列を取得することです。 、またはbeta = 0.の最初の呼び出しに値を渡します。結局のところ、それがそのパラメータを持っているなら、「なぜそれを使わないのか」。cublas<t>gemvcusparse<t>csrmv

これは

  • いい考え?または、β = 1の場合、配列を0に初期化してから呼び出しを使用するために、全体的にパフォーマンスが向上するように最適化されていますcusparseDcsrmv(..., 1., zeroes_array)か?
  • 安全な?素朴なことに、 ℝ要素の表現としての浮動小数点はx⋅0 = 0∀xを満たす必要がありますが、この素朴な扱いは、浮動小数点を扱う場合はもちろんかなり致命的です。アレイが以前に同じデータ型で他の操作に使用され、結果が正常に動作した場合安全だと確信していますが、新しく割り当てられたデバイスメモリの単一化されたブロックに対しても安全ですか?

密な行列の場合、乗算のOn² )の複雑さにより、ベクトルのOn)割り当てのパフォーマンスについてあまり推論する必要がないため、私は主にスパースの場合に関心があります。