2017-11-15 5 views
0

私はopenacc.orgでOpenAAccプログラミングガイドを勉強しています。多くのネストされた計算領域がこの本で広く使用されています。しかし、私のコンパイラ(x86-64 Linux -p sandybridge年2017版のバージョン17.4-0の64ビットターゲット)は、私のバージョンのコンパイラはネストされた計算構造をサポートしていないと書いています。このバージョンのコンパイラは実際にネストされた計算構造をサポートしていませんか?それがそうなら、入れ子にされた計算構造のサポートが必要な場合は、どのコンパイラを使用するのですか? gccの最新バージョンはこのオプションをサポートしていますか?入れ子にされた計算構造をサポートするopenaccコンパイラ

答えて

0

PGIはまだネストされた並列性(他の計算領域内の計算領域)をサポートしていません。私はGNUもそれをサポートしているとは思わない。

あなたが参照しているOpenACCプログラミングガイドの特定のセクションを指摘できますか?入れ子にされた並列処理の例を覚えておらず、どちらのコンパイラでもサポートされている計算領域内に "loop"ディレクティブを追加することを意味しているのだろうかと思います。

+0

OpenAccプログラミングガイド(https://www.openacc.org/sites/default/files/inline-files/OpenACC_Programming_Guide_0.pdf)。たとえば、41,42,43-44,45ページには、ネストされた並列処理の例が含まれています。してください、私をチェックしてください、しかし、私は正しいようです。 – And

+0

いいえ、これは、計算領域内で "loop"指示文を使用する例です。ネストされた並列処理は、別の計算領域内に「並列」または「カーネル」という計算領域がある場合です。 –

+0

このコメントとここの他の投稿やPGIユーザーフォーラムでは、計算領域「並列」または「カーネル」と「ループ」ディレクティブの違いによって混乱するかもしれないと思います。計算領域はデバイスにオフロードするコードを定義し、 "ループ"指示は並列化するループと "並列"、 "ワーカー"、 "ベクトル"の並列処理のレベルを計算領域内で定義します。計算領域内のコードは "ループ"ディレクティブ内ではなく、各ギャングによって重複して実行されます。 –

関連する問題