!AWS-F1ふたたび https://github.com/Xilinx/SDAccel-Tutorials/blob/master/docs/aws-getting-started/RTL/README.md このドキュメント通りだとf1インスタンスでVivadoの合成とか動かす必要があって, あまり経済的じゃない気がする. :: 準備 * AWSコンソールにログイン ** https://console.aws.amazon.com/ から * リージョンを選ぶ ** 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を起動する *** source <(curl -s https://s3.amazonaws.com/aws-fpga-developer-ami/1.5.0/Scripts/setup_gui.sh) *** スクリプト終了後にパスワードが表示されるので,忘れずにメモ. ***- sshでログインして sudo passwd centos とかして パスワード は 変更できる *** おわったら再起動 ** RDPで接続 *** color depth は 24-bit ::SDAccelのための設定 * ターミナルを開いて aws configure を実行 ** アクセスキーIDとシークレットアクセスキーは https://console.aws.amazon.com/iam/home?#/security_credentials で作成 ** region name: us-east-1,output format: json で設定 * 関連リソースの取得と環境設定 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 \ -s3_bucket= \ -s3_dcp_key= \ -s3_logs_key= *** 今回の例だと 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