問題タブ [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 - mkl_mallocとのメモリアライメント
この質問は、私がCで重要なことを理解していないことを示しているだけかもしれません。
インテルマス・カーネル・ライブラリーは、メモリーを割り当てるときにメモリーのアライメントを設定する方法を提供します。一方、参照だけで配列をmkllapackルーチンに渡します。では、lapackルーチンはどのようにして配列の配置を知るのでしょうか?メモリアライメントは、どのメモリアドレスが特定の配列値であるかを決定するので、正しいですか?
c++ - 最適化された行列の回転-行列の中心を中心とした任意の角度
私は非常に大きな画像の回転を最適化しようとしています。最小は4096x4096または約1600万ピクセルです。
回転は常に画像の中心付近であり、画像は必ずしも正方形である必要はありませんが、常に2の累乗になります。
MKL / TBBにアクセスできます。ここで、MKLはターゲットプラットフォーム用に最適化されたBLASです。この操作がBLASで行われるかどうかは、私にはよくわかりません。
これまでの私の最善の試みは、4096x4096の画像の場合、約17〜25ミリ秒(同じ画像サイズでは非常に一貫性がないため、おそらくキャッシュ全体を踏みにじっていることを意味します)です。行列は16バイトに整列されます。
現在、宛先のサイズを変更することはできません。したがって、クリッピングが発生するはずです。たとえば、45度で回転した正方行列は確かにコーナーでクリップし、その位置の値はゼロである必要があります。
現在、私の最善の試みはタイル張りのアプローチを使用しています。タイルサイズにエレガンスが入れられたり、ループ展開されたりすることはまだありません。
TBBを使用したままの私のアルゴリズムは次のとおりです-http: //threadingbuildingblocks.org/:
この関数を次のように呼び出します。
fcomplexは、複素数の社内表現です。これは次のように定義されます。
そのため、非常に大きな画像の場合は、複雑な値の行列を中心を中心に任意の角度で回転させたいと考えています。
アップデート:
素晴らしいフィードバックに基づいて、私はこれに更新しました:これは約40%の増加です。私は他に何かできるかどうか疑問に思っています:
更新2:回答として得た提案を考慮し、長方形を回転するときのバグを修正して、以下に解決策を示します。
c++ - SIMD/SSE 式の遅延評価用の C/C++ ライブラリ
MKL
intel- や amd-などのライブラリはACML
、ベクトルの SIMD 演算へのより簡単なインターフェイスを提供しますが、いくつかの関数を一緒にチェーンしたいと考えています。次のような式の解析ツリーを登録できるライブラリはすぐに利用できますか?
配列のすべてのメンバーで評価しますか? 回避したいのは、 の一時配列を作成し、、tanh(x)
およびexp(x)
に対してtanh(x) + exp(x)
mkl または acml 関数を呼び出すことです。tanh()
exp()
+
手でループを展開し、sse 命令を直接使用することはできますが、これを行う C++ ライブラリがあるかどうか疑問に思っていました。
私は非常に初心者で、これまで SSE や MKL/ACML を使用したことがなく、新しい領域に足を踏み入れたばかりです。
integer - c++ で long long 整数の代わりに unsigned long 整数へのポインタを使用する
型 unsigned integer * (std::size_t としても定義) のポインターを long long * であると予想される MKL 関数に渡したいのですが、どちらも 64 ビット整数ですが、型の非互換性エラーが発生します。64 ビット整数モードで MKL を使用します。助けはありますか?ありがとう
eigenvector - intel MKL:Ax = lambda * Bx(固有値)を解決するためにMKL lib(Cプログラムのみ)で使用される関数
MKLを使用してラムダの値を見つける方法は?
xcode - Intel_MKL.framework フォルダーがないため、Intel Math Kernel Library を Xcode にリンクできません
Mac OSX 10.6.6 および Xcode 3.2.6 を実行している 64 ビット Mac でIntel Math Kernel Library (MKL) を使用しようとしています。Mac の場合、インテル MKL は、完全なインテル Composer XE 2011 C++ コンパイラーをインストールすることによってのみ利用できます。私はそうしました、そして私はbashスクリプトを実行します
Composer XE および MKL の環境変数を設定します。コンパイラを使用して、Xcode で簡単なテスト プロジェクトをビルドできます。
ただし、ここで説明されているように Xcode でリンクできないため、MKL を使用できません。そのハイパーリンクで説明されている MKL フレームワーク フォルダーがありません。
(具体的には、私のシステムのどこにも Intel_MKL.framework という名前のフォルダーはありません。) このフォルダーが存在することを確認することは、Intel のいくつかの MKL リファレンス マニュアルに記載されていますが、存在しない場合の対処方法はどこにも記載されていません。存在しません!MKL が正しくインストールされていれば存在すると思われますが、私は (「Composer XE のインストールが成功しました」)、Intel_MKL.framework はありません。
それが重要な場合、私が得るエラーは
私が理解していることは、適切にリンクされていないことと一致しています。
Intel フォーラムを含め、助けを得るためにかなりの時間と労力を費やしましたが、役に立ちませんでした。これは単純な問題だと思います (私は単なる素人です)。
助けてくれてありがとう。
編集:
Paul の提案で、インストーラーを再実行しましたが、変更はありません。唯一の mkl.h ファイルは次の場所にあります。
Xcode以外のインストールディレクトリにある予想される同一のコピーと同様に
これがXcodeの「ヘッダー検索パス」の下にリストすることになっているかどうかはわかりませんが、ずっと前にリストしました。私も挙げました
「ライブラリ検索パス」として、この2011年のガイドを読むための最善の試みに基づいて、これらのリンカーフラグを追加しました:
何も変更されておらず、同じエラーが発生します。
彼は動的リンクと静的リンクに問題があるのでしょうか? スタティック リンク (.dylib ではなく .a エンディング) を選択したのは、単純に思えたからですが、よくわかりません。動的に変更しても何も起こりませんでした。
ここでフィードバックを得る方法はありますか?このエラーに基づいて何を変更すればよいかわかりません。
EDIT2:
Xcode の「プロジェクト情報」(おそらく 100 のオプションの 1 つ) に「Intel Math Kernel Library を使用する」というオプションがありました。(これについてはどこで確認すればよいでしょうか?) これで構築が進んでいますが、実行可能ファイルを実行すると、次のようになります。
ライブラリ検索ディレクトリが正しいことを再確認しました。末尾が .a のスタティック ライブラリも切り替えてみましたが、エラーはまったく同じでした。(まだ .dylib エンディングがありました。)これは、私が動的に行き詰まっているということですか? なんで?変数も定義しました
することが
ここの古い指示で示唆されているように、何も変わっていません。
うわー、これは恐ろしく難しい。
c++ - 名前マングリングとダンプビン
昨日、友人がIntel の MKL Java サンプルをコンパイルするのを手伝っていました。すべてが問題ないように見えたにもかかわらず、「未解決の外部」に問題がありました (サンプル ファイル/メイクファイルによると)。
次に、Visual Studio のダンプビンを使用して、未解決の関数がライブラリに存在するかどうかを確認しました。未解決の外部の 1 つの例は、 と呼ばれる関数_cblas_sgemm
です。ライブラリ ( ) からシンボルをダンプすると、接頭辞が欠落しているライブラリdumpbin /symbols mkl_core.lib
の関数しか見つかりませんでした。その後、この関数は実際には cblas_sgemm としか呼ばれておらず、名前マングリング ルールの一部としてコンパイラが接頭辞を追加したことを発見しました。cblas_sgemm
_
_
TL;DR
だから、私の質問は次のとおりです。
dumpbin
ライブラリのエントリ ポイントの完全な名前を表示しますか? または、何らかの理由で、実際に名前を「解読」しますか?- ライブラリはインストール パッケージに付属しているため、どのコンパイラを使用してコンパイルしたかはわかりません。異なるコンパイラは異なる名前を生成しますか?
私はそれが正しかったとは本当に思いません。おそらくどこかで何か間違ったことをしているのでしょうが、これら2つの質問について確認したいと思います。
回答のない同様の質問はこちらです。
fortran - COO から CSR 疎行列形式に変換するときに重複する値を合計する
COO 形式から CSR に変換するときに、重複する値を効率的に合計するにはどうすればよいでしょうか。fortran のサブルーチンで書かれた scipy の実装 (http://docs.scipy.org/doc/scipy-0.9.0/reference/sparse.html) に似たものはありますか? COO から CSR への変換に Intel の MKL 補助ルーチンを使用していますが、重複した値に対しては機能しないようです。
python - PythonからMKLのスレッド関数を呼び出す:openmpライブラリが見つかりませんか?
モジュールを使用してctypes
IntelMKLをPythonにロードしているので、openmp並列化を必要とするルーチンを呼び出したいと思います(pardiso
私の場合は)
プロセスの詳細を説明するこの便利なリンクをIntelサイトで見つけました。サンプルコードを実行できますが、openmpスレッド関数を使用する独自のサンプルを実行すると、プログラムがクラッシュしてメッセージが表示されます。
libmkl_rt.so
をロードしても、のロードが適切にトリガーされないことを強く疑っていますlibiomp5.so
Intel MKLライブラリパス(および「通常の」Intelライブラリパス)をとの両方LD_RUN_PATH
に追加しようとしLD_LIBRARY_PATH
ましたが、これらのパスにはmklライブラリとopenmpライブラリ(Intelバージョン)の両方が含まれていますが、役に立ちませんでした。
ここでの魔法のトリックは何ですか?
私も使用していますが、mklに対してnumpy
ビルドしていないことに注意してください。numpy
しかし、そもそもnumpyで何もしなくても、mklから何かを呼び出すことができるはずなので、これが問題になるとは思えません。
c++ - Intel MKL関数エラー(C ++)
Intelの速度MKLをテストしようとしましたが、次のような警告とエラーが表示されます。
cppファイル:
編集:
リンカのコマンドライン:
/OUT:"C:\Users\Orxan\videos\documents\visual studio 2010\Projects\arrTut\Release\arrTut.exe" /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Release\arrTut.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Orxan\videos\documents\visual studio 2010\Projects\arrTut\Release\arrTut.pdb" /OPT:REF /OPT:ICF /PGD:"C:\Users\Orxan\videos\documents\visual studio 2010\Projects\arrTut\Release\arrTut.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86
コンパイラのコマンドライン:
/Zi /nologo /W3 /O2 /Ob2 /Oi /Ot /Oy /Qipo /GA /Qparallel /D "_MBCS" /EHsc /GS /Gy /fp:fast /Zc:wchar_t /Zc:forScope /Fp"Release\arrTut.pch" /Fa"Release\" /Fo"Release\" /Fd"Release\vc100.pdb" /Gr