インテルのみ表示可能 — GUID: ewa1412799935217
Ixiasoft
インテルのみ表示可能 — GUID: ewa1412799935217
Ixiasoft
7.6. 特定のFPGAボードとカスタム・プラットフォームに対するカーネルのコンパイル (-board=<board_name>) および (-board-package=<board_package_path>)
-board=<board_name> オプションをaocコマンドに含めてカーネルをコンパイルすると、 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、プリプロセッサー・マクロAOCL_BOARD_<board_name> を1に定義します。これにより、デバイスに最適化されたコードをカーネルにコンパイルすることができます。
- カスタム・プラットフォームで利用可能な FPGAボードの名前を取得するには、 aoc -list-boards コマンドを呼び出します。
オフライン・コンパイラーは以下のような出力を生成します。
Board List: FPGA_board_1
このFPGA_board_1は、<board_name> です。
特定のカスタム・プラットフォームの利用可能なFPGAボードをすべて一覧表示することも可能です。-board-package=<custom_platform_path> オプションをaocコマンドに含めてください。コマンドプロンプトで次のコマンドを呼び出します。
aoc –board-package=<custom_platform_path> -list-boards=<board_name>
インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、特定のカスタム・プラットフォームで利用可能なボードの一覧を表示します。
- OpenCLカーネルをFPGA_board_1にコンパイルするには、 aoc -board=FPGA_board_1 <your_kernel_filename>.clコマンドを呼び出します。
オフライン・コンパイラーは、プリプロセッサー・マクロAOCL_BOARD_FPGA_board_1を1に定義し、FPGA_board_1をターゲットとするカーネルコードをコンパイルします。
- 複数のカスタム・プラットフォーム (ボードパッケージ) がインストールされている場合、特定のカスタム・プラットフォームのボードバリアントでカーネルをコンパイルできます。-board-package=<custom_platform_path> オプションを -board=<board_name> とともに含めてください。コマンドプロンプトで次のコマンドを呼び出します。
aoc -board-package=<custom_platform_path> -board=<board_name>
インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、<custom_platform_path> で指定されているボードでカーネルをコンパイルします。
- システムで利用可能なカスタム・プラットフォームのリストを表示するには、-list-board-packagesオプションをaocコマンドに含めます。コマンドプロンプトで aoc -list-board-packages コマンドを呼び出します。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、次の例のような出力を生成します。
Installed board packages: <board_package_1> ... Board packages shipped with Intel(R) FPGA SDK for OpenCL(TM): <board_package_2> ...
この <board_package_N> は、システムにインストールされているカスタム・プラットフォームのボードパッケージ、または インテル® FPGA SDK for OpenCL™ に同梱されているボードパッケージです。
特定のFPGAボードをターゲットとするコンパイル済みのカーネルファイルを容易に識別するため、インテルでは、-oオプションをaocコマンドに含め、カーネルバイナリーの名前を変更することを推奨しています。
- 1ステップのコンパイルフローでカーネルのターゲットをFPGA_board_1にするには、次のコマンドを呼び出します。
aoc -board=FPGA_board_1 <your_kernel_filename>.cl -o <your_executable_filename>_FPGA_board_1.aocx
-
複数ステップのコンパイルフローでカーネルのターゲットをFPGA_board_1にするには、次の作業を実行します。
- 以下のコマンドを呼び出し.aocoファイルを生成します。
aoc -rtl -board=FPGA_board_1 <your_kernel_filename>.cl -o <my_object_filename>_FPGA_board_1.aocr
- 以下のコマンドを呼び出し.aocxファイルを生成します。
aoc -board=FPGA_board_1 <your_object_filename>_FPGA_board_1.aocr -o <your_executable_filename>_FPGA_board_1.aocx
- 以下のコマンドを呼び出し.aocoファイルを生成します。
- 2つのFPGAで構成されるアクセラレーター・ボードの場合、各FPGAデバイスには同等の「ボード」名が付けられます (例えばboard_fpga_1、board_fpga_2など)。kernel_1.clのターゲットをboard_fpga_1、kernel_2.clのターゲットをboard_fpga_2にするには、次のコマンドを呼び出します。
aoc -board=board_fpga1 kernel_1.cl aoc -board=board_fpga2 kernel_2.cl