トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2019-4-28

AWS-F1ふたたび

https://github.com/Xilinx/SDAccel-Tutorials/blob/master/docs/aws-getting-started/RTL/README.md
このドキュメント通りだとf1インスタンスでVivadoの合成とか動かす必要があって,
あまり経済的じゃない気がする.

準備

  • AWSコンソールにログイン
  • リージョンを選ぶ
    • US East(N.Virginia)にした.US West(Oregon),EU(Ireland)でもいいみたい
  • S3バケット作る
    • 「すべてのサービス」->ストレージの下のS3を選択
    • "+バスケットを作成する"ボタンをクリック
    • バケット名をつける.(aws-f1-test とか)
    • あとはデフォルトのまま"次へ"→"作成"
  • S3バケットにフォルダを作る
    • 作ったS3バケットをクリック
    • "+フォルダの作成"ボタンをクリック
    • フォルダ名をつけて保存.(SDAccel とつけた)
  • プライベートキーの準備
    • http://console.aws.amazon.com/ec2にアクセス
    • 左ペインのキーペアをクリック
    • "キーペアの作成"ボタンをクリック
    • 名前をつけてキーを作成(aws-f1-test-key とつけた)
    • aws-f1-test-key.pemがローカルに保存されるので,パーミッションを400に.
  • AWS F1インスタンス使えるようにリクエストする必要がある
    • http://aws.amazon.com/contact-us/ec2-request から
      • Submit a 'Service Limit Increase' for 'EC2 Instances'
      • Select the region where you want to access F1 instances: US East (N.Virginia), US West (Oregon) or EU (Ireland)
      • Select 'f1.2xlarge' or 'f1.16xlarge' as the primary instance type
      • Set the 'New limit value' to 1 or more
      • Fill the rest of the form as appropriate and click 'Submit'
F1インスタンスのテスト
  • F1インスタンスつくる
    • https://console.aws.amazon.com/ec2 にアクセス
    • "インスタンスの作成"ボタンをクリック - リージョンに注意.US East,US West,EU(アイルランド)とか.
    • 左メニューのAWS Markelplaceをクリック.検索フォームにFPGAと入力して検索する.
    • FPGA Developer AMIの"選択"ボタンをクリック
    • 料金メニューがでるので"Continue"ボタンをクリック
    • f1.2xlargeインスタンスを探してセレクトボックをチェック
    • "次の手順: インスタンスの詳細の設定"ボタンを選択 - "確認と作成" ではない
    • 詳細設定,ストレージの追加,タグの追加は,デフォルトのまま,次に.
    • セキュリーティグループの設定
      • "ルールの追加"ボタンをクリックして,タイプ:RDP, プロトコル:TCP, ポート範囲:3389, ソース:カスタム - 0.0.0.0/0 を設定
    • "確認と作成"ボタンをクリック
    • 確認画面が表示されるので"起動"ボタンをクリック
    • 「既存のキーペアを選択するか,新しいキーペアを作成します.」ウインドウが開く
      • "既存のキーペアの選択"を選択し,先に作ったキーペア(aws-f1-test-key)を選択
      • 注意事項を読んでチェックする
      • "インスタンスの作成"ボタンをクリック
    • "インスタンスの表示"ボタンをクリックして,インスタンス動作の確認
    • インスタンスを選択すると,下ペインにIPアドレスなどの情報が表示される
  • インスタンスにログイン
    • ssh -i pemファイル centos@IPアドレス で ログイン できる
    • GUIを起動する
    • RDPで接続
      • color depth は 24-bit
SDAccelのための設定
git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR  
cd $AWS_FPGA_REPO_DIR                                         
source sdaccel_setup.sh
  • 動作確認
    • helloworld_oclのソフトウェアエミュレーション
cd $SDACCEL_DIR/examples/xilinx/getting_started/host/helloworld_ocl/
make clean
make check TARGETS=sw_emu DEVICES=$AWS_PLATFORM all 
    • helloworld_oclのハードウェアエミュレーション
cd $SDACCEL_DIR/examples/xilinx/getting_started/host/helloworld_ocl/
make clean
make check TARGETS=hw_emu DEVICES=$AWS_PLATFORM all 
    • FPGAバイナリの作成
cd $SDACCEL_DIR/examples/xilinx/getting_started/host/helloworld_ocl/
make clean
make TARGETS=hw DEVICES=$AWS_PLATFORM all
    • AFIイメージの作成
cd 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>
      • 今回の例だと
cd xclbin
$SDACCEL_DIR/tools/create_sdaccel_afi.sh \
  -xclbin=vector_addition.hw.xilinx_aws-vu9p-f1-04261818_dynamic_5_0.xclbin \
  -s3_bucket=aws-f1-test \
  -s3_dcp_key=SDAccel \
  -s3_logs_key=SDAccel
      • ホームのディスク容量が足りなかったら(足りなかったので) /tmp とかに逃がしてもいい
    • AFI作成プロセス
      • vector_addition.hw.xilinx_aws-vu9p-f1-04261818_dynamic_5_0.awsxclbin ができてる
      • 19_04_28-082150_afi_id.txt ができてる
{
    "FpgaImageId": "afi-070aeb46c51e01332", 
    "FpgaImageGlobalId": "agfi-059ee6445563c3fc3"
}
      • AFI作成プロセスがおわるのをまつ
aws ec2 describe-fpga-images --fpga-image-ids afi-070aeb46c51e01332
      • State -> Code の ところが available になればいい
      • S3バケットをみると,いろいろできているのがわかる.
    • FPGAでの実行
cd $SDACCEL_DIR/examples/xilinx/getting_started/host/helloworld_ocl/
sudo sh
source /opt/xilinx/xrt/setup.sh   
./helloworld