問題タブ [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.
xeon-phi - スレッド番号を変更してもコードには影響しません
私は xeon-phi を学習しようとしています。Intel Xeon-Phi Coprocessor HPC book を勉強しながら、ここでコードを実行しようとしました。(本より)
コードは openmp と 2 つのスレッドを使用します。
しかし、私が取っている結果は、1 つのスレッドで実行した場合と同じです。(openmp は一切使用しない)
私はマイクのさまざまな組み合わせでも使用しましたが、それでも同じです:
どういうわけかopenmpが有効になっていないようです?ここで何か不足していますか?
1スレッドのみを使用したコードはこちら
私は以下を使用してコンパイルしました:
ありがとう!
c++ - インテル Xeon Phi オフロード コード + STL ベクトル
STL ベクトルに格納されたデータをインテル Xeon Phi コプロセッサーにコピーしたいと考えています。私のコードでは、計算に必要なデータを含むベクトルを含むクラスを作成しました。ホストでクラスオブジェクトを作成し、ホストでもデータを初期化してから、このオブジェクトをコプロセッサーに送信したいと考えています。これは、私がやりたいことを示す簡単なコードです。オブジェクトをコプロセッサー・ベクターにコピーした後、空になります。何が問題になる可能性がありますか? どのように正しく行うのですか?
openmp - libiomp5.so (ompt サポート付き) は、オフロード openmp 環境で ompt_intialize() をトリガーできません
CPU 側の libiomp5.so がその ompt_intialize() をトリガーしてプロファイル データ libiomp5.so を取得できる一方で、openmp ランタイムを使用して Intel MIC オフロード openmp アプリケーションを実行しています (CPU 側と MIC 側の両方で ompt をサポート)。 MIC 側では ompt_intialize() をトリガーできないため、必要なプロファイル データを取得できません。問題はどこにあるのだろうか。
c++ - Intel MIC - 組み込みベクトル要素の合計
__m512d 組み込みベクトルがあり、その要素の合計が必要です。これを行う簡単な方法はありますか?私は計算のパフォーマンスに集中しているので、この操作をすばやく行う必要があります。組み込みに関する私の知識は、自分で行うには十分ではないため、あなたの助けが必要です。
ありがとう :)
c++ - Intel MIC - オフロード エラー: データ転送
インテル Xeon Phi コプロセッサーからホスト CPU へのデータ転送に問題があります。オフロード モデルを使用して計算を実装しようとしています。計算の開始時に、すべてのデータをコプロセッサー (1 つの配列) に転送します。計算後、この配列の一部のみをホスト プロセッサに転送したいのですが、結果として次のエラーが発生します。
オフロード エラー: データ転送 (ベース = 0x75654640、サイズ = 7896016) は既存の割り当てのサブセットではありません (ベース = 0x75654640、サイズ = 4512008)
ソースコードの一部を次に示します。
この場合、この配列のサイズ = 564001、micBegin = 423001、micEnd = 564001 です。CPU によって使用されるため、データを転送する必要があります。問題とは何ですか?それを解決する方法は?
gcc - OpenACC/OpenMP4.0 の nvidia/mic へのオフロードを GCC で機能させるには何が必要ですか?
OpenACC を使用して計算を GCC 5.3 上の nvidia GPU にオフロードする方法を正確に理解しようとしています。物事をグーグルで検索すればするほど、私は混乱します。私が見つけたすべてのガイドは、 gcc 全体とnvptx-tools
とnvptx-newlib
. 他の情報源によると、OpenACC は GOMP ライブラリの一部です。他のソースによると、OpenACC サポートの開発は GCC 6.x でのみ継続されます。また、OpenACC のサポートが GCC のメイン ブランチにあることも読みました。-fopenacc
ただし、 andを使用してプログラムをコンパイルすると、動作しません-foffload=nvptx-non
。gcc 5.3+でOpenACCコードをコンパイラして実行するのに何が必要かを誰かが説明してくれますか?
- 一部のインターネット ソースが言うように、OpenACC サポートが GCC のメイン ブランチの一部である場合、一部のガイドで
nvptx-tools
、 、および GCCの (再) コンパイルが必要なように見えるのはなぜですか?nvptx-newlib
- この中で GOMP ライブラリの役割は何ですか?
- OpenACC サポートの開発は、今後 GCC 6+ に対してのみ行われるというのは本当ですか?
- OpenACC のサポートが成熟したら、OpenMP を有効にするのと同様の方法 (つまり、コンパイラ フラグをいくつか追加するだけ) で有効にすることが目標ですか?
- 「OpenACC」を「OpenMP 4.0 GPU / MICオフロード機能」に置き換えた後、誰かが上記のすべてに対する回答を提供できますか?
前もって感謝します