問題タブ [intel-mkl]

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

python - 自動的にスレッド化されたscipy関数とnumpy関数が複数のコアを使用していないと仮定します

Mac OS X 10.6.8を実行していて、EnthoughtPythonDistributionを使用しています。numpy関数が両方のコアを利用できるようにしたいと思います。私はこの投稿と同様の問題を抱えています:python / numpyのマルチスレッドblasですが、そのポスターの手順を実行した後でも、同じ問題があります。これが私のnumpy.show_config()です:

元の投稿のコメントと同様に、変数を設定した行を削除しましたMKL_NUM_THREADS=1。しかし、それでも、マルチスレッドを利用する必要のあるnumpy関数とscipy関数は、一度に1つのコアしか使用していません。他に変更すべきものはありますか?

編集:明確にするために、私はnumpy.dot()などの単一の計算を取得してMKL実装に従ってマルチスレッドを単独で使用しようとしていますが、numpy計算がの制御を解放するという事実を利用しようとはしていませんGILにより、他の関数とのマルチスレッド化が容易になります。

これは、マルチスレッドを使用する必要があるが、私のマシンでは使用しない小さなスクリプトです。

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

gcc - Ubuntuでgccを使用したIntelmklとの奇妙なリンクエラー

いくつかの最適化の問題でintelmklを使用したいので、intelの例を使用してテストします。test.cpp:

"g ++ -I / home / l / intel / mkl / include -w test.cpp --L" /home/l/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64 "" / home /l/でコンパイルするとintel / composer_xe_2011_sp1.6.233 / mkl / lib / intel64 "/libmkl_intel_lp64.a -Wl、--start-group" /home/l/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64 "/libmkl_intel_thread.a" / home / l / intel / composer_xe_2011_sp1.6.233 / mkl / lib / intel64 "/libmkl_core.a -Wl、-end-group -L" /home/l/intel/composer_xe_2011_sp1.6.233/mkl/../compiler/lib/intel64 「-liomp5-lpthread-lm-L / home / l / intel / mkl / lib / intel64 -o template」、すべて問題ありません...

しかし、コンパイルステップとリンクステップを分離すると、リンクエラーが発生しました。

test.cpp:(。text + 0x10b):`cblas_zdotc_sub'への未定義の参照

コンパイルとリンクに使用したコマンドは次のとおりです。

コンパイル:

g ++ -I / home / l / intel / mkl / include -w -c test.cpp -o test.o

リンク:

g ++ -I / home / l / intel / mkl / include -w -L "/home/l/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64" "/home/l/intel/composer_xe_2011_sp1.6.233/mkl/lib /intel64 "/libmkl_intel_lp64.a -Wl、--start-group" /home/l/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64 "/libmkl_intel_thread.a" /home/l/intel/composer_xe_2011_sp1.6.233/mkl /lib/intel64"/libmkl_core.a -Wl、--end-group -L "/home/l/intel/composer_xe_2011_sp1.6.233/mkl/../compiler/lib/intel64" -liomp5 -lpthread -lm ./ test.o -L / home / l / intel / mkl / lib /intel64-oテンプレート

私はubuntu12.04、gcc 4.6.3、intelcomposer_xe_2011_sp1.6.233を使用しています。

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

python - LinuxでMKLライブラリをNumpyに永続的にリンクするにはどうすればよいですか?

IntelのMKLライブラリを使用してNumpyを構築しました(私にとっては難しいプロセスでした。1日かかりました!)。NumpyはLD_LIBRARY_PATH環境変数を使用してMKLライブラリにリンクする必要があります。または、少なくともこれが私のやり方です...したがって、.bashrcでexportを使用してパスを保存し、新しいコンソールを起動してpythonを実行すると、 Numpyはライブラリとともに正しくロードされます。

問題は、プログラムの開発にPydevで使用しているEclipseでは機能しないことです。Eclipseの設定のどこかにLD_LIBRARY_PATHを追加することはできますが、Scipyをインストールしようとすると問題が現実になります。ScipyのインストールスクリプトはNumpyをインポートする必要があり、LD_LIBRARY_PATHが正しく設定されている場合でも、インポートできないMKLライブラリでエラーが発生します。

libimf.soは、リンクする必要のあるMKLの共有ライブラリの1つです。Numpyのファイルを直接変更することを除けば__init__.py(それを行うためのよりクリーンな方法があるかもしれないので、私はむしろ避けます)、NumpyをMKLライブラリに永続的にリンクするために何をすべきかわかりません。

ご協力いただきありがとうございます!

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

fortran - ifort のスレッド化された DGEMM

DGEMM を呼び出す作業プログラム (FORTRAN、コンパイラ: Intel ifort 11.x) を実装しました。次のようにコンパイルすることで、これを並列化する簡単な方法があることを読みました。

私はクアッドコア プロセッサを使用しているので、(bash 経由で) プログラムを実行します。

私の仮定では、DGEMM は自動的に 4 つのスレッドを呼び出し、その結果、行列の乗算が高速化されるというものでした。それは起こっていないようです。何か不足していますか?どんな助けでも大歓迎です。

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

fortran - 引数としての DGEMM と数値定数

BLAS DGEMM行列乗算関数を使用しているときに、初期化されていない結果行列 C を次のように呼び出すと、結果に NaN が含まれることに気付きました。

ただし、事前に ALPHA と BETA を宣言すると、次のようになります。

その後、乗算は正常に機能します。引数の宣言が機能する理由について、誰か考えがありますか?

インテル Fortran コンパイラーとその MKL ライブラリーを使用していることに注意してください。

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

r - Linking R with intel MKL 11.01.117

I cant't seem to get them linked, the dynamic linking instructions seem to be outdated. Does anyone have any insight on this? Thanks

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

cuda - cula(dgesv) を使用して線形方程式系を解くと、小さなデータ セットの場合に mkl (dgesv) よりも遅いのはなぜですか

CULA ルーチン dgesv と MKL ルーチン dgesv を使用して行列方程式 Ax=b を解く CUDA C および C プログラムを作成しました。小さなデータセットの場合、CPU プログラムは GPU プログラムよりも高速のようです。しかし、データ セットが 500 を超えると、GPU が CPU に勝ります。i3 CPU と Geforce 525M GPU を搭載した Dell ラップトップを使用しています。GPU の初期の遅いパフォーマンスの最も適切な説明は何ですか?

2 つのベクトルを取り、それらを乗算して結果を加算する別のプログラムを作成しました。これは、結果がスカラーではなくベクトル和であるという点だけで内積と同じです。このプログラムでは、小さなデータセットでも GPU が CPU よりも高速です。同じノートを使っています。上記で説明したものと比較して、小さなデータセットでもこのプログラムで GPU が高速なのはなぜですか? 合計に多くの計算が含まれていないためですか?

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

python - pip への NumPy site.cfg 引数の提供

Intel の Math Kernel Library に対して構築された NumPy を使用しています。私は virtualenv を使用しており、通常は pip を使用してパッケージをインストールします。

ただし、NumPy が MKL ライブラリを見つけるには、コンパイルする前に NumPy ソース ディレクトリに site.cfg ファイルを作成し、手動でビルドしてインストールする必要があります。このプロセス全体をスクリプト化することはできましたが、もっと簡単な解決策を望んでいました。

バージョン管理下でこの目的に使用できる標準の site.cfg ファイルがあります。パッケージをビルドする前に、特定のファイルをソース ディレクトリにコピーするよう指示する pip コマンド ライン オプションはありますか?

または、site.cfg ファイルでライブラリ パスを指定する代わりに設定できる環境変数はありますか? これが、私が使用する site.cfg ファイルです。Intel のサイトからほぼそのまま引用したものです。

参考までに、Ubuntu、Python 2.7、および NumPy 1.6 を実行しています。

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

fortran - OpenMPおよびMKLスレッド

私はFortranにDGESVD、MKLを使用し、Intelコンパイラを使用して8コアで実行するコードを持っています。コードはOpenMPを介して高速化されます。omp_num_threadsまた、OpenMPとMKLには、スレッド数(および)を設定するための独自の設定があることも知っていmkl_num_threadsます。最適なスレッド数を知りたい。OMP_NUM_THREADS=1LAPACKルーチンを呼び出す前に設定する必要がありますか?OpenMPスレッドの数はMKLスレッド数に影響しますか?

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

c++ - Python-C++-C-Fortran 2003 プログラム内で Intel の MKL をリンクする

性質がかなり複雑なプログラムをリンクしようとしています:

  • Linux Fedora で開発および実行
  • fortran 2003 で書かれたメイン コードは、Intel の MKL ライブラリと ANSI C コードの一部に大きく依存しています。
  • C++ インターフェイスがあります (iso_c_binding を使用)
  • c++ インターフェイスは、boost.python を介して Python からアクセスされます。

実行時に次のテキストを取得します

その後、プログラムは停止します。

libmkl_avx.soとの両方が入っていることを確認しlibmkl_def.soました$LD_LIBRARY_PATH

最終的なリンクは次の方法で行われます。

libFrrBoost はリンクされているモジュールです。

python t83.pyモジュールlibFrrBoostをインポートする実行中(特に、バイナリファイルを準備するときにリンカは文句を言いません)はエラーを引き起こします。

ググってみた。私が見つけたすべての情報は、C/Fortran で書かれ、単に Intel の MKL を含む「通常のプログラム」に関連していました。この種のプログラムを問題なく実行できます。Makefile のリンク行の MKL 部分はどちらの場合も同じだと思いますが、どこかに謎が隠されているに違いありません。問題は通常、不適切なリンクでした-これは適切ではありません(ライブラリはIntelのマニュアルとまったく同じです-インターフェイス、スレッド化、および計算ライブラリはかなり標準的です)

使用したコンパイラ:

ifort 12.1.0、icpc 12.1.0、python Python 2.7.1、icc 12.1.0 (小さな C スニペットも MKL を呼び出しますが)

編集(Hirsto Ilievのコメントによる)

この方法で strace を実行しましたstrace python t83.py。結果は(grep後libmkl

特に 3,4 は正であり、open がファイルを見つけ、それにファイル ディスクリプタを割り当てたことを示しますファイルがその場所に存在することを確認しました。

また、これは次のような「適切な」Intel コンパイラ ディレクトリです。

したがって、バージョンは同じです-明らかに、バージョンの問題ではありません。

についてはすべて同じですlibmkl_def.so

免責事項:私は自分が書いたものに自信を持っているように聞こえるかもしれませんが、そうではありません. すべての文は「もし私が間違っていなければ」で始めるべきです。