インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをターゲットとする場合にのみ適用されます。
このセクションで説明している関数を使用して、次の情報を特定できます。
システムのコプロセッサー数
プログラムを実行しているコプロセッサー
これらの関数のインターフェイスを定義するには、ヘッダーファイル offload.h を使用します。このヘッダーファイルは #include offload.h でインクルードします。
複数のコプロセッサーを搭載したシステムでは、offloadプラグマを使用して確実にデータを保持する場合、target-number 引数を指定する必要があります。target-number を指定せずに alloc_if または free_if を使用してコプロセッサーでデータを保持する場合、コンパイラーのランタイムはランダムにコプロセッサーを選択するため、データを利用できないコプロセッサーが選択されることがあります。
システムのコプロセッサー数を特定するには、関数 int _Offload_number_of_devices() を使用します。
この関数は、システムに搭載され動作しているコプロセッサーの数を整数で返します。搭載され動作しているコプロセッサーがない場合、戻り値は 0 です。
プログラムを実行しているコプロセッサーを特定するには、関数 int _Offload_get_device_number() を使用します。
この関数は、プログラムを実行しているコプロセッサーの番号 (0 が最初のカード) を整数で返します。プログラムを CPU で実行している場合、戻り値は -1 です。
指定されたコプロセッサーでオフロードコードのセクションの実行が完了したかどうか判断するには、_Offload_signaled() API を使用します。
この API の構文は次のとおりです。
extern int _Offload_signaled(int target_number, void *signal);