問題タブ [intel-mic]
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.
performance - Xeon Phi で単純なリーマン和積分のベクトル化された縮約のタイミングが悪いのはなぜですか?
私は Xeon Phi を初めて使用するので、ベクトル レジスタを使用して Phi のパフォーマンスを向上させる方法を理解しようとマニュアルを調べています。
[0,1]
この質問の最後にある、リーマン和を使用して曲線 4/(1+x^2) の下の面積を計算する短いコードを考えてみましょう。分析的な答えは pi = 3.14159....
コードは基本的に、OpenMP を使用して 4 つのスレッドを使用して答えを計算する2つのほぼ同一のコード チャンクで構成されます。唯一の違いは、2 番目の
チャンクでは、ベクトル化された関数__sec_reduce_add()
を使用して、スレッドに与えられた [0,1] のサブドメインのリーマン和を計算していることです。
コードの最初のチャンクのタイミングは0.0866439 s
で、2 番目の (ベクトル化された) チャンクのタイミングは0.0868771 s
これらの両方がほぼ同じタイミングをもたらしたのはなぜですか。ベクトル レジスタを使用すると、パフォーマンスが大幅に向上すると考えていたでしょう。
これをicc -mmic -vec-report3 -openmp
フラグでコンパイルしました
[注: rpt
rpt=0 と rpt=1 は「ウォームアップ」ループであり、タイミングが多少高くなるため、2 つのセクションにわたって変数を使用して for ループを配置しました。rpt=3 で 2 つのセクションのタイミングを指定しました]
gmp - Xeon Phi で GMP を使用している人はいますか?
icc と -mmic オプションを指定して GMP をコンパイルしましたが、MIC にインストールできません。どのようにインストールすればよいですか? icc でコンパイルしたデモ プログラムを作成しました。gmp.h が見つからないと表示されます。MIC に GMP ライブラリをインストールする方法と、gmp.h を配置する場所を教えてください。
assembly - マイクへのオフロードを含むアセンブリ ファイルをコンパイルする方法
マイクのオフロード操作を含む「test.c」という名前の C ファイルを作成します。次に、コマンド「icc -S test.c」を使用してアセンブリ ファイルにコンパイルします。これにより、「test.s」および「testMIC.s」という名前の 2 つのアセンブリ ファイルが作成されました。それらを実行可能ファイルにコンパイルし続けると、次のようなエラーが発生します。
コマンド「icc test.s」を使用
/tmp/iccG8ZTVA.o: 関数
main': test.c:(.text+0x30): undefined reference to
__kmpc_begin 内' test.c:(.text+0x6f):__offload_target_acquire' test.c:(.text+0x11f): undefined reference to
__offload_offload' への未定義参照 test.c:(.text+0x15b): `__kmpc_end' への未定義参照コマンド「icc testMIC.s」を使用
/tmp/icc7qv8qX.o: 関数
__offload_entry_test_c_10main': test.c:(.text+0x1d): undefined reference to
__intel_new_proc_init_R' 内 test.c:(.text+0xd5): __offload_target_leave への未定義参照__offload_target_enter' test.c:(.text+0x111): undefined reference to
' /tmp/icc7qv8qX.o: 関数main': test.c:(.text+0x140): undefined reference to
__intel_new_proc_init_R' 内コマンド「icc test.s testMIC.s」を使用
/tmp/iccEOtVAs.o: 関数
foo': test.c:(.text+0x170): multiple definition of
foo 内 /tmp/icczmGFBD.o:test.c:(.text+0x170): 最初にここで定義 /tmp/iccEOtVAs.o: 関数main': test.c:(.text+0x128): multiple definition of
main 内 /tmp/icczmGFBD.o: test.c:(.text+0x0): ここで最初に定義 /tmp/icczmGFBD.o: 関数main': test.c:(.text+0x30): undefined reference to
__kmpc_begin 内' test.c:(.text+0x6f):__offload_target_acquire' test.c:(.text+0x11f): undefined reference to
__offload_offload' test.c:(.text+0x15bへの未定義参照):__kmpc_end' /tmp/iccEOtVAs.o: In function
__offload_entry_test_c_10main への未定義の参照': test.c:(.text+0x1d):__intel_new_proc_init_R' test.c:(.text+0xd5): undefined reference to
__offload_target_enter' への未定義の参照' test.c:(.text+0x111):__offload_target_leave' /tmp/iccEOtVAs.o: In function
main への未定義の参照': test.c:(.text+0x140 ): `__intel_new_proc_init_R' への未定義の参照
この問題を解決するのに役立つ人はいますか?
test.c:
c - Xeon-Phi で Haskell を実行する
Haskell をコンパイルして Xeon Phi コプロセッサで実行する方法はありますか?
Intel の一部の研究者は最近、Haskell Research Compiler (公開されていないため、結果を本質的に再現不可能にする)について報告し、 Haskell Gapを測定しました(場合によっては Haskell のパフォーマンスが C を上回ることを示しています)。彼らはPillarと呼ばれる中間言語 (C-- に類似) を介してコンパイル ルートを記述し、それをC にコンパイルしてから、iccを使用して Phi で実行可能なオブジェクト コードを作成できるようにします。
GHC は LLVM へのコンパイルをサポートするか、ネイティブ コードを直接生成します (NCG)。私が知る限り、利用可能な Phi を対象とする NCG も、Phi の LLVM バックエンドもありません。iccにアクセスすると、 C経由のルートが可能に見えますが、現時点でそれがどれほど現実的かはわかりません (GHC の C コード ジェネレーターはサポートされなくなったと思います。LLVM IR-to-C バックエンドについても同じことが言えます。間違っていたら訂正してください)。
したがって、次の 3 つのルートが思い浮かびます。
未登録モードでGHCをコンパイルし、
-fvia-c
次にiccでコンパイルします。古い GHC バージョンを使用して C コードを生成し、iccを使用します
古いLLVMバージョンを使用してGHC LLVMを経由し、LLVMからCを生成してからiccを使用します
どのルートが最も実行可能ですか (理由/理由)? 他の可能性はありますか ( pillar2cなどのツールは (まだ?) 公開されていないため、Pillar ルートは却下しました)。
関連する質問は、Phi の x86 互換性に関するものです。SSE/AVX 命令がサポートされていないようで、一部のオブジェクト コードをgccやclangでコンパイルすると実行に失敗するようです。
更新:
LLVM カンファレンスで Intel 関係者とチャットした後、彼らが Phi LLVM バックエンドをリリースする可能性は低いようです。ただし、次世代の Xeon Phi は AVX512 をサポートします。
intel - Intel MIC オフロード プラグマ エラー
このエラーは何ですか? それについて何か有用なグーグル*を見つけることができませんでした:/
編集1:これは私のプラグマです:
c++ - Intel MIC オフロード - C++ オブジェクトで動作しますか?
私の質問は、オフロード領域のコードに c++ オブジェクトが含まれている可能性がありますか? または単にSTL?
mpi - Xeon-Phi を MPI プロセスに割り当てる
私のシステムでは、1 つのノードに 2 つの xeon-phi カードが接続されています。オフロード モードで xeon-phi アクセラレーションを使用する分散 MPI コードを実行しようとしています。ノードごとに 2 つの MPI プロセスを実行する場合、xeon-phi を各 MPI プロセスに割り当てるにはどうすればよいでしょうか。各 MPI プロセスが異なる MIC を使用していることを確認するにはどうすればよいですか?