インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー、およびインテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャーと IA-32 アーキテクチャーにのみ適用されます。
オフロード抽出ツールは、Windows® および Linux* システムで、FAT オブジェクトから組込みターゲット・オブジェクトを、FAT 実行ファイルから組込みターゲットバイナリーを抽出するスタンドアロン・ツールです。 インテル® MIC アーキテクチャーおよびインテル® グラフィックス・テクノロジー関連のオフロード実行で利用できます。 簡潔に表記するため、このトピックでは、インテル® MIC アーキテクチャーのターゲット・オブジェクトと実行ファイルはインテル® MIC ターゲット・オブジェクトと実行ファイル、インテル® グラフィックス・テクノロジー・ベースのターゲット・オブジェクトと実行ファイルは GFX ターゲット・オブジェクトと実行ファイルとします。
インテル® MIC または GFX オフロード・オブジェクト/バイナリーはホスト・オブジェクト/バイナリーに組み込まれているため、デフォルトでは objdump や readelf などのツールで解析やデバッグを行って直接検証することはできません。
しかし、64 ビットの Linux* システムまたは 32 ビット/64 ビットの Windows® システムでは、オフロード抽出ツールを利用して、FAT オブジェクト/バイナリーから GFX/インテル® MIC オブジェクト/バイナリーを抽出することができます。 抽出されたものは、objdump または readelf ツールで解析可能な ELF オブジェクトです。
GFX ELF オブジェクトのテキストセクションは vISA (GFX JIT コンパイラー用仮想 ISA) なので、GFX オブジェクトではオブジェクト解析ツールのすべての機能が利用できるわけではありません。 例えば、GFX オブジェクトに対して逆アセンブラーは利用できません。
ターゲット・オブジェクト・ファイルを抽出するには、次のようにオフロード抽出ツールを起動します。
offload_extract <fat host object>
抽出される GFX/インテル® MIC ターゲット・オブジェクトは、入力オブジェクト・ファイル名に GFX または MIC が追加された名前になります。 GFX とインテル® MIC ターゲット・オブジェクトの両方が組込まれている場合は、どちらも抽出されます。 ターゲット・オブジェクトは ELF 形式なので、オブジェクト・ファイル名の拡張子は .o になります。 次に例を示します。
offload_extract host.obj => hostGFX.o/hostMIC.o
ターゲット実行ファイルを抽出するには、次のようにオフロード抽出ツールを起動します。
offload_extract <fat host binary>
抽出される GFX/インテル® MIC ターゲット実行ファイルは、入力実行ファイル名に GFX または MIC が追加された名前になります。 GFX とインテル® MIC ターゲット実行ファイルの両方が組込まれている場合は、どちらも抽出されます。 次に例を示します。
offload_extract host.exe => hostGFX.gfx/hostMIC.mic
アーカイブ・ライブラリーからターゲット・オブジェクト・ファイルを抽出するには、最初に FAT アーカイブ・ライブラリーから個々の FAT オブジェクトを抽出し、各 FAT オブジェクトに対してオフロード抽出ツールを呼び出します。 次に例を示します。
ar -x libhost.a offload_extract <individual fat host object>
オフロードバイナリー/実行ファイルの抽出を制御するオプションは 2 つあります。
ターゲットファイル名または出力ディレクトリーを指定するには、-o オプションを指定します。 構文は次のとおりです。
offload_extract <fat host object|binary> [-o <output filename>] offload_extract <fat host object|binary> [-o <output directory>]
-o オプションを使用する場合、生成されるターゲット出力ファイル名とディレクトリーに GFX または MIC は追加されません。
特定のターゲット GFX またはインテル® MIC オブジェクト/実行ファイルを抽出するには、-target オプションを使用します。 構文は次のとおりです。
offload_extract <fat host object|binary> [-target gfx]
offload_extract <fat host object|binary> [-target mic]