インテル® FPGA SDK for OpenCL™プロ・エディション: プログラミング・ガイド

ID 683846
日付 4/01/2019
Public
ドキュメント目次

1.2. インテル FPGA SDK for OpenCLのFPGAプログラミング・フロー

インテル® FPGA SDK for OpenCL™ を使用しているアプリケーションには、2つのメイン・コンポーネントがあります。1つはFPGAプログラミング・ビットストリームであり、もう1つはアプリケーションとFPGAアクセラレーターを管理するホストプログラムです。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーはまず、ホストプログラムがFPGAのプログラミングに使用するイメージファイルにご自身のOpenCLカーネルをコンパイルします。ホスト側のCコンパイラーは、ホストプログラムをコンパイルし、それをインテル FPGA SDK for OpenCLランタイム・ライブラリーにリンクします。
図 1.  インテル® FPGA SDK for OpenCL™ プログラミング・モデルの回路図

次のSDKコンポーネントと連携し、インテルFPGAのプログラムを作成します。

  • ホスト・アプリケーションとホスト・コンパイラー
  • OpenCLカーネルとオフライン・コンパイラー
  • カスタム・プラットフォーム

カスタム・プラットフォームは、ボード・サポート・パッケージを提供します。ボードメーカーは通常、特定のOpenCLボードをサポートするカスタム・プラットフォームを開発します。オフライン・コンパイラーは、OpenCLカーネルをコンパイルしハードウェア・プログラミング・イメージを生成する際に、カスタム・プラットフォームをターゲットにします。ホストはその後ホスト・アプリケーションを実行し、通常、ハードウェア・イメージをFPGAにプログラムし実行します。

例えば、従来のプロセッサーなどでのシーケンシャルなプログラムの実装では、プログラムカウンターが、ハードウェアで実行される命令のシーケンスと、ハードウェアで順次実行される命令を制御します。 インテル® FPGA SDK for OpenCL™ などでの空間的なプログラムの実装では、前提条件となるデータが利用可能になるとすぐに命令が実行されます。プログラムは、データの依存関係を表す連続した流れとして解釈されます。

図 2. FPGA データ・フロー・アーキテクチャー