AWS F1 の SDAccel™ フローでは、次の開発モデルがサポートされています。
- AWS EC2 クラウド インスタンスでのクラウドベースの開発
- ローカル ワークステーションでのオンプレミス開発
どちらの場合も、AWS F1 インスタンスで最終的なバイナリが運用されます。
このガイドでは、オンプレミス フローを始める詳細な手順、特に次の点について説明します。
- ユーザー環境で SDAccel をインストールしてライセンスを使用
- SDAccel を使用したオンプレミスでのアプリケーションの構築
- アプリケーションをアップロードし、F1 で実行
このガイドで説明されている手順を進める前に、「AWS F1 インスタンスの作成、設定、テスト」のチュートリアルを終わらせてください。ユーザー環境で SDAccel を設定する前に、クラウドベースの開発環境に慣れておくことが重要です。
SDAccel のオンプレミス開発用にサポートされている OS は次のとおりです。
- Ubuntu 16.04.5 LTS、18.04.1 LTS
- CentOS 7.4、7.5、7.6
- RHEL 7.4、7.5、7.6
ほかのシステム要件の詳細はこのページを参照してください。
オンプレミスで SDAccel アプリケーションを開発するには、AWS F1 で運用したのと同じバージョンの SDAccel をインストールしておく必要があります。ツール バージョンおよびダウンロード手順を確認するには、「オンプレミスでの開発を可能にする」をページを参照してください。
新規ユーザーの場合は、オンプレミス用の Vivado® ライセンスも取得する必要があります。ノード ロックおよびフローティング ライセンスの両方をここからリクエストできます (リンクはページの右側にあります)。
- ツールをインストールするには、『SDAccel 環境リリース ノート、インストール、およびライセンス ガイド』 (UG1238) にある手順を参照してください。
AWS GitHub には、F1 インスタンス用に SDAccel を実行しデザインを構築するために必要なプラットフォーム定義ファイルおよび設定スクリプトがすべて含まれています。また、SDAccel を学ぶためサンプルも多数含まれています。
GitHub リポジトリをクローンし、SDAccel 環境を設定するには、使用コンピューターで次のコマンドを実行します。
cd $HOME
git clone https://github.com/aws/aws-fpga.git
cd aws-fpga
source sdaccel_setup.sh
重要: sdaccel_setup.sh を実行すると、sudo アクセスが必要なランタイム ドライバーをインストールしようとするので、エラーがいくつか表示される可能性があります。これらのエラーは重要ではないので、無視しても問題はありません。
このモジュールでは、次の方法について説明します。
- ローカル コンピューターで SDAccel を実行できることを確認。
- F1 インスタンで後で運用できるバイナリを生成。
GitHub のサンプルを使用して、AWS EC2 インスタンスで使用したのと同じコマンド セットを実行できます。
SDAccel の GUI を起動するには、次のコマンドを入力します。
sdx
GUI が問題なく開いたことを確認したら、GUI を閉じます。
次のコマンドを実行し、SDAccel の helloworld
のソフトウェア エミュレーション ステップを実行します。
cd $HOME/aws-fpga/SDAccel/examples/xilinx_2019.1/getting_started/host/helloworld_c/
make clean
make check TARGETS=sw_emu DEVICES=$AWS_PLATFORM all
次のコマンドを実行し、SDAccel の helloworld
のハードウェア エミュレーション ステップを実行します。
cd $HOME/aws-fpga/SDAccel/examples/xilinx_2019.1/getting_started/host/helloworld_c/
make clean
make check TARGETS=hw_emu DEVICES=$AWS_PLATFORM all
- 次のコマンドを実行し、SDAccel の
helloworld
の FPGA バイナリを構築します。
cd $HOME/aws-fpga/SDAccel/examples/xilinx_2019.1/getting_started/host/helloworld_c/
make clean
make TARGETS=hw DEVICES=$AWS_PLATFORM all
このプロセスで、ホストおよび FPGA のバイナリが生成されます。
- ホスト バイナリ:
./helloworld
- FPGA バイナリ:
./xclbin/vector_addition.hw.xilinx_aws-vu9p-f1_4ddr-xpr-2pr_4_0.xclbin
次のいずれかの方法で、create_sdaccel_afi.sh
スクリプトを使用して .xclbin
ファイルから Amazon FPGA イメージ (AFI) を作成します。
- コンピューターに AWS CLI をインストールした後、イメージをローカルに作成します。
- AWS インスタンスに
.xclbin
をアップロードし、そこでcreate_sdaccel_afi.sh script
を実行します。
このチュートリアルでは、AWS EC2 インスタンスに何もかもアップロードします。
このセクションでは、次のステップについて説明します。
- FPGA バイナリ (オンプレミスで構築) を AWS クラウドにアップロード
.xclbin
ファイルから AFI を作成- F1 インスタンスでホスト プログラムをコンパイル
- F1 インスタンスでアクセラレートされたアプリケーションを実行
- 必要なファイルが含まれた TAR ファイルを作成します。
tar cvfz helloworld.tgz Makefile src xclbin/vector_addition.hw.xilinx_aws-vu9p-f1_4ddr-xpr-2pr_4_0.xclbin
- AWS F1 インスタンスを起動します。
- AWS F1 インスタンスに先ほど作成した TAR ファイルをアップロードします。
scp -i ~/<AWS key pairs>.pem <xclbin file> centos@<public IP address of EC2 instance>:/home/centos/.
注記: または AWS S3 バケットを使用してファイルを転送することもできます。
- AWS F1 インスタンスで ssh を実行します。
ssh -i <AWS key pairs.pem> -ssh centos@<public IP address of EC2 instance> 22
- TAR ファイルを抽出します。
mkdir helloworld
cd helloworld
tar xvfz ../helloworld.tgz
- SDAccel 環境を設定します。
cd $AWS_FPGA_REPO_DIR
source sdaccel_setup.sh
- AWS FPGA バイナリと AFI を
.xclbin
から作成します。
cd $HOME/helloworld/xclbin
$SDACCEL_DIR/tools/create_sdaccel_afi.sh \
-xclbin=<xclbin file name>.xclbin \
-s3_bucket=<bucket-name> \
-s3_dcp_key=<dcp-folder-name> \
-s3_logs_key=<logs-folder-name>
makefile を使用してホスト アプリケーションをコンパイルします。
cd $HOME/helloworld
make exe
これで helloworld
プログラムが作成されます。
- AFI のステータスを [available] に変更したら、F1 で実行する準備が整います。
sudo sh
source /opt/xilinx/xrt/setup.sh
./helloworld
このモジュールでは、オンプレミスで FPGA バイナリを開発し、AFI を作成し、AWS F1 インスタンスでアクセラレートされたアプリケーションを実行する方法を説明しました。
Copyright© 2019 Xilinx
この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。