問題タブ [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.
c++ - Intel-MKL に関するリンク エラーがまだある
これは、QT プロジェクトの構成です。
そして、エラーは
フラグをリンクしましたが-lm
、なぜですか?
更新しました:
UPDATED2:
このコマンドを使用してldd
、libmkl_core.so に必要なライブラリを確認しましたが、libm.so または math ライブラリは表示されません。なぜQtクリエーターで、それが表示されundefined reference to 'logf'
ますか?
blas - インテル® MKL cblas_dgemm のドキュメント エラー?
このリンクは、のマニュアルですMKL
。
http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm、
およびこのリンクは、の例ですcblas_dgemm
。
マニュアルでは、
Under RowMajor
、NoTransA
およびNoTransB
彼は言う_ _
lda
rows(A)
ldb
rows(B)
ldc
rows(C)
lda
とは、、_ ldb
_ldc
cols(a)
cols(b)
cols(c)
どうしたの?
arrays - MKL/VML を使用した複雑な関数の解析
私はかなり複雑な関数、たとえば func() を計算しようとしています - Fortran のいくつかの 2 次元配列のいくつかの加算、減算、乗算、除算、および三角関数を含みます。各 func() がその行と列の位置に対して独立しているという点で、計算は非常に並列です。各行列のサイズは数ギガバイトで、引数として約 12 個あります。
インテル® MKL 関数 (--mkl-parallel の呼び出し)、特に加算、減算、除算などの VML 関数を利用したいと考えています。
例: func(x,y,z) = x*y+cos(z*xx) ここで、x,y,z は数 GB の 2 次元配列です。
VML 関数に関してですが、より使い慣れた二項演算子を使用します。私の問題では、原則として、「+」や「*」などのすべての二項演算子を、引数を ?vadd(x,y) として受け取る二項関数に変換する必要があることがわかります。もちろん、これは非常に扱いにくく、大きな式の場合は見苦しくなります。Fortran で MKL/VML バージョンを優先的に使用するために、「+」、「-」などの二項算術演算子をオーバーロードする方法はありますか。例がいいでしょう!ありがとう!
c - Intel Phi での MKL パフォーマンス
モデルに適合するために小さな行列 (50 ~ 100 x 1000 要素) に対していくつかの MKL 呼び出しを実行するルーチンがあり、それをさまざまなモデルに対して呼び出します。擬似コード:
上記のバージョン 1 を呼び出します。モデルは独立しているため、次のように OpenMP スレッドを使用してモデル フィッティングを並列化できます (バージョン 2)。
ホスト マシンでバージョン 1 を実行すると、約 11 秒かかり、VTune はほとんどの時間をアイドル状態に費やして並列化が不十分であると報告します。ホスト マシンでのバージョン 2 の実行には約 5 秒かかり、VTune は優れた並列化を報告します (ほぼ 100% の時間が 8 つの CPU の使用に費やされます)。ここで、Phi カードでネイティブ モード (-mmic を使用) で実行するコードをコンパイルすると、mic0 のコマンド プロンプトで実行すると、バージョン 1 と 2 の両方で約 30 秒かかります。VTune を使用してプロファイリングすると、次のようになります。
- バージョン 1 には同じ約 30 秒かかり、ホットスポット分析では、ほとんどの時間が __kmp_wait_sleep と __kmp_static_yield に費やされていることが示されています。7710 秒の CPU 時間のうち、5804 秒がスピン時間に費やされます。
- バージョン 2 は fooooorrrreevvvver かかります... VTune で数分実行した後、それを強制終了します。ホットスポット分析は、25254 秒の CPU 時間のうち、21585 秒が [vmlinux] で費やされていることを示しています。
ここで何が起こっているのか、なぜこんなにパフォーマンスが悪いのか、誰かが光を当てることができますか? OMP_NUM_THREADS のデフォルトを使用し、KMP_AFFINITY=compact,granularity=fine を設定しています (Intel の推奨に従って)。私は MKL と OpenMP を初めて使用するので、初歩的な間違いを犯していると確信しています。
ありがとう、アンドリュー
python-3.x - ビルド後にnumpyをインポートできません
Linux 上の Intel C++ および Intel MKL を使用して、Python 3 (64 ビット) 用に numpy をビルドしていました ( 3.11-1-amd64
)。git からソースを取得しました。Linux 用の Intel C++ Composer XE 2013 もインストールしました。
これが私がやったことです:
ソース フォルダに を作成し、
/li>site.cfg
コンテンツを含むをに変更し
self.cc_exe
ましnumpy/distutils/intelccompiler.py
た'icc -O3 -g -fPIC -fp-model strict -fomit-frame-pointer -openmp -xhost'
ライブラリ パスを追加しました。
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/opt/intel/lib/intel64:$LD_LIBRARY_PATH
実行された
sudo python3 setup.py config --compiler=intel build_clib --compiler=intel build_ext --compiler=intel install
すべてが終了したら、python3
andを起動しましimport numpy
た。これにより、
しかし、私はチェックしまし/opt/intel/lib/intel64
た、ファイルはちょうどそこにあります。私は何かを逃しましたか?ありがとうございました。
inline - インテル mkl ライブラリーからサブルーチンをインライン化することは可能ですか?
私のコードはインテル® MKL dgemv を何度も呼び出します。MKL dgemv をインライン化することは可能ですか?