インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

概要: ヘテロジニアス・プログラミング

このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをターゲットとする場合にのみ適用されます。

ヘテロジニアス・プログラミングについて

コンパイラーには、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーで実行するセクションをオフロードできる、並列プログラムを単純に記述する言語拡張が含まれています。

実行はホスト CPU で開始し、ユーザー定義コードに基づいて、セクションがコプロセッサーにオフロードされます。

ヘテロジニアス・プログラミングは、従来の CPU プログラミングと異なる 2 つの点に対処する必要があります。

プログラミング・モデル

コンパイラーは、次のプログラミング・モデルをサポートします。共有システムメモリーの不足に対処するアプローチはモデルによって異なります。

単一プログラムで両方のオフロードモデルを使用してもかまいません。ただし、2 つのモデルで扱うデータは別々に処理する必要があります。

両方のモデルで、構造がコプロセッサーで実行するように指定しても、その動作は保証されません。インテル® MIC アーキテクチャー・ベースのサブシステムが存在し、そのサブシステムをオフロードに利用できる場合にのみ、オフロードは成功します。オフロードに失敗すると、プログラムはエラーメッセージを出力して終了します。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

関連情報