Linux* 上でインテル® oneAPI ベース・ツールキットと Visual Studio* (VS) Code を統合して、シームレスなソフトウェア開発環境を実現することができます。CPU や GPU と同じように、VS Code を使用した FPGA 開発が可能です。インテル® oneAPI 環境変数の設定、VS Code の起動、サンプルからのプロジェクト作成、コード編集の流れは同じです。
- Windows* ユーザーは、「Windows* Subsystem for Linux* でのインテル® oneAPI を使用したリモート Visual Studio* Code 開発」 (英語) の手順でシステムをセットアップした後、本記事で説明する手順に従ってください。
- インテル® DevCloud for oneAPI を使用している場合は、「インテル® DevCloud での Visual Studio* Code の使用」 (英語) を参照してください。また、FPGA ワークフローを含むインテル® DevCloud での VS Code サンプルブラウザー拡張機能の使用方法についても説明しています。
- インテル® oneAPI ツールキットのシステム環境と設定を構成するには、Visual Studio* Code 用の Environment and Launch Configurator for Intel® oneAPI Toolkits 拡張機能をインストールします。
FPGA の開発フローは、以下のような手順で行われます。
- 環境変数を設定する
- 高速コンパイル方式でエミュレーション・イメージを構築し、実行する
- 静的な HTML 最適化レポートを生成し、表示する
- 実際の FPGA ハードウェア・イメージを構築し、実行する
このワークフローの詳細については、『インテル® oneAPI プログラミング・ガイド』の「FPGA フロー」 (英語) セクションを参照してください。
前提条件:
以下のソフトウェアをダウンロードし、インストールしてください。
環境変数の設定と Visual Studio* Code の起動
以下の手順で、環境変数を設定します。
- ターミナルセッションを開きます。
- sh スクリプトの場所を確認します。場所はインテル® oneAPI のインストールによって異なり、以下のいずれかになります。
- root または sudo でインストールした場合は、インテル® oneAPI インストールのルート・ディレクトリー (通常は /opt/intel/inteloneapi/) にあるスクリプトを探します。
- sudo または root でインストールしなかった場合は、~/intel/inteloneapi/ ディレクトリーにあるスクリプトを探します。
- インストール・フォルダーをカスタマイズした場合は、カスタム・インストール・フォルダーにあるスクリプトを探します。
- コマンドラインから source コマンドを使用して setvars.sh スクリプトを実行します。
source <oneapi_install_path>/setvars.sh
詳しくは、「CLI 開発のための環境変数の設定」 (英語) を参照してください。
- 同じターミナルセッションで、以下のコマンドを実行して、VS Code を起動します。
code
oneAPI サンプルブラウザー拡張機能のインストール
サンプルブラウザー拡張機能を使用すると、Visual Studio* Code でサンプルを参照したり、ダウンロードしたりすることができます。拡張機能をインストールするには、次の手順を実行します。
- VS Code で、左のナビゲーションにある拡張機能のロゴをクリックします。
- Sample Browser for Intel oneAPI Toolkits というタイトルの拡張機能を探すか、こちら (英語) にアクセスして利用可能な拡張機能を探します。
- [Install] をクリックします。
- 拡張機能のインストール後、[oneAPI] アイコンをクリックすると、左側のナビゲーション・ペインに利用可能なサンプルのリストが表示されます。簡単なデモは、「Visual Studio* Code のサンプルブラウザーを使ったインテル® oneAPI サンプルの探索」 (英語) を参照してください。
高速コンパイルのための FPGA エミュレーション・イメージのビルドと実行
FPGA エミュレーション・イメージは、高速にコンパイルできるため、機能的に正しいコードを実現するのに役立ちます。詳細については、『インテル® oneAPI プログラミング・ガイド』の「DPC++ FPGA コンパイルの種類」 (英語) を参照してください。基本的な FPGA サンプルを FPGA エミュレーター・ターゲットにコンパイルするには、次のように実行します。
すべてのインテル® oneAPI サンプル・プロジェクトが CMake* を使用しているわけではありません。各サンプルの README.md ファイルには、そのサンプルのビルド方法が明記されています。CMake* を使用するサンプルについては、Microsoft* が保守している「Visual Studio* Code 向け CMake* ツール拡張機能」 (英語) の記事を参照することをお勧めします。
- FPGA > Tutorials セクションで、コンパイル・フロー・サンプルにカーソルを合わせ、+ をクリックしてプロジェクトを作成します。
- プロジェクトを保存するフォルダーを選択します。
- VS Code でターミナルを開きます。
- cd コマンドを実行して、新しく作成したプロジェクトのトップレベル・ディレクトリーに移動します。
- 以下のコマンドを実行して、build というディレクトリーを作成します。
mkdir build
- cd コマンドを実行して、新しく作成した build ディレクトリーに移動します。
- 以下のコマンドを実行して、サンプルをビルドします。プロジェクトのビルドファイルは、build ディレクトリーに書き込まれます。
cmake ..
- 以下のコマンドを実行して、エミュレーションのビルドターゲットを選択します。
make fpga_emu
FPGA コードサンプルの README ファイルを参照して、正しい make ターゲットを見つけてください。
これで、ディレクトリー内に compile_flow.fpga_emu という名前の実行ファイルが作成されたはずです。このファイルをデザインのエミュレーター実行ファイルとして使用します。
- 以下のコマンドを実行して、エミュレーター実行ファイルを実行します。
./compile_flow.fpga_emu
FPGA 最適化レポートの生成と表示
FPGA 最適化レポートは、実際の FPGA ハードウェア・イメージを実行する前でも、アプリケーション・パフォーマンスに関するハイレベルな詳細を提供することができます。
このレポートは、インテル® oneAPI DPC++/C++ コンパイラーにより HTML 形式で生成され、Web ブラウザーで表示することができます。最高のパフォーマンスを得るための FPGA 最適化レポートの使用方法の詳細は、『インテル® oneAPI DPC++ FPGA 最適化ガイド』の「report.html の確認」 (英語) セクションを参照してください。
- VS Code のターミナルセッションで、build ディレクトリーにいることを確認します。
- 以下のコマンドを実行して、レポートを作成します。
make report
- prj/reports ディレクトリーに移動し、生成した最適化レポートの場所を確認します。
cd compile_flow_report.prj/reports
- Mozilla* Firefox* ブラウザーでレポートを起動するには、次のコマンドを使用します。
firefox report.html
FPGA ハードウェア・イメージの構築と実行
このステップでは、実際の FPGA ハードウェア上で動作することを想定した実行ファイルを作成します。完了までに数時間かかる場合があります。推奨されるビルドシステム構成については、「インテル® oneAPI DPC++/C++ コンパイラーの動作環境」 (英語) を参照してください。その他の注意事項は以下となります。
- FPGA のハードウェア・イメージを構築するには、デフォルトではない make ターゲットである make fpga コマンドを実行します。詳細な手順については、FPGA コードサンプルの README ファイルを参照してください。
- 実行ファイルをビルドするには、oneAPI ベース・ツールキット用インテル® FPGA アドオンパッケージをインストールする必要があります。インストール手順については、「インテル® oneAPI ツールキットのインストール・ガイド」 (英語) を参照してください。
- 実行ファイルを実行するには、システム上に FPGA ハードウェアが必要です。システムのセットアップ方法の詳細については、「インテル® PAC を使用した FPGA 用システムのセットアップ」 (英語) を参照してください。
oneAPI ベース・ツールキット用インテル® FPGA アドオンに関しては以下のボタンからご確認いただけます。
参照記事:
Intel® oneAPI DPC++ FPGA Development with Sample Browser Extension for Visual Studio Code on Linux