FC2カウンター FPGAの部屋 aws/aws-fpgaをやってみた1

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

aws/aws-fpgaをやってみた1

2017年7月8日(土)に、「AWS EC2 F1について、みんなでワイワイ調べる会」に参加して、「サンプルデザインのHDLコードを解析するチーム(Hello World & DMA)」になったのだが、「Ubuntu 16.04 にVivado Design Edition がインストールできない」という理由でVirtualBox 上のUbuntu 16.04 にVivado WebPACK Edition しかインストールしていなくて、たいして貢献できなくて申し訳ないので、Ubuntu 14.04 上にVivado をインストールしてリベンジしてみた。

最初に、VirtualBox 上に最新版の Vivado 2017.2 をインストールしてみた。
次に、aws/aws-fpga からgit clone した。詳しくはWeb サイトを見てほしい。
git clone https://github.com/aws/aws-fpga
aws-fpga_1_170709.png

cd aws-fpga
source hdk_setup.sh

HostID_all0_2_170709.png

やはり、指定では、Vivado 2017.1 なのに、2017.2 をインストールしたので、エラーが出てしまった。
~/aws-fpga/hdk/supported_vivado_versions.txt を見ると 2017.1 と書いてあったので、2017.2 に書き換えた。
aws-fpga_3_170709.png

もう一度、
source hdk_setup.sh
を実行すると、curl がインストールされていないというエラーだった。
aws-fpga_4_170709.png

sudo apt-get install curl でインストールした。
もう一度、source hdk_setup.shを実行した。良い感じで実行されていたが。。。
aws-fpga_4_170709.png

IP Catalog の revision が違うというエラーになってしまった。Vivado のバージョンが違うので仕方がない。。。
aws-fpga_6_170709.png

と言う訳で、せっかくインストールしたVivado Design Edition 2017.2 をアンインストールして、Vivado Design Edition 2017.2 をインストールした。
再再度、source hdk_setup.shを実行した。今度は通った。図は始まりと終わりを示す。
aws-fpga_7_170709.png
aws-fpga_8_170709.png

全部のログを示す。

masaaki@masaaki-VirtualBox:~/aws-fpga$ source hdk_setup.sh 
INFO: Using Vivado v2017.1 (64-bit)
INFO: Setting up environment variables
INFO: Using HDK shell version shell_v04151701
INFO: HDK shell is up-to-date
INFO: DDR4 model files in /home/masaaki/aws-fpga/hdk/common/verif/models/ddr4_model/ do NOT exist. Running model creation step.
INFO:   Building in /home/masaaki/aws-fpga/ddr4_model_build
INFO:   This could take 5-10 minutes, please be patient!
/home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: 18: /home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: [[: not found
/home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: 23: /home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: [[: not found
/home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: 29: /home/masaaki/aws-fpga/hdk/common/verif/scripts/init.sh: [[: not found

****** Vivado v2017.1 (64-bit)
  **** SW Build 1846317 on Fri Apr 14 18:54:47 MDT 2017
  **** IP Build 1846188 on Fri Apr 14 20:52:08 MDT 2017
    ** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

source /home/masaaki/aws-fpga/hdk/common/verif/scripts/init.tcl
# set_msg_config -severity INFO -suppress
# set_msg_config -severity STATUS -suppress
# set_msg_config -severity WARNING -suppress
CRITICAL WARNING: [Common 17-1355] You are suppressing all messages of type 'WARNING'. You may potentially disregard important DRC, CDC, and implementation messages that can negatively impact your design.  If this is not desired, please run 'reset_msg_config -suppress -severity {WARNING}' to undo this change.
# set_msg_config -string {exportsim} -suppress
# set_msg_config -string {IP_Flow} -suppress
# create_project -force tmp_ddr ./tmp -part xcvu9p-flgb2104-2-i 
# add_files -norecurse $::env(HDK_COMMON_DIR)/shell_stable/design/ip/ddr4_core/ddr4_core.xci
INFO: [IP_Flow 19-234] Refreshing IP repositories
INFO: [IP_Flow 19-1704] No user IP repositories specified
INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/opt/Xilinx/Vivado/2017.1/data/ip'.
add_files: Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 1308.211 ; gain = 213.969 ; free physical = 474 ; free virtual = 18367
# export_ip_user_files -of_objects  [get_files  $::env(HDK_COMMON_DIR)/shell_stable/design/ip/ddr4_core/ddr4_core.xci] -force -quiet
# open_example_project -force -dir ./tmp/tmp_ddr_ex [get_ips  ddr4_core]
INFO: [IP_Flow 19-1686] Generating 'Examples' target for IP 'ddr4_core'...
INFO: [Device 21-403] Loading part xcvu9p-flgb2104-2-i

****** Vivado v2017.1 (64-bit)
  **** SW Build 1846317 on Fri Apr 14 18:54:47 MDT 2017
  **** IP Build 1846188 on Fri Apr 14 20:52:08 MDT 2017
    ** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

source /home/masaaki/aws-fpga/hdk/common/shell_stable/design/ip/ddr4_core/ddr4_core_ex.tcl -notrace
INFO: [open_example_project] Creating new example project...
INFO: [open_example_project] Importing original IP ...
INFO: [IP_Flow 19-234] Refreshing IP repositories
INFO: [IP_Flow 19-1704] No user IP repositories specified
INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/opt/Xilinx/Vivado/2017.1/data/ip'.
import_ip: Time (s): cpu = 00:00:05 ; elapsed = 00:00:06 . Memory (MB): peak = 1316.215 ; gain = 8.012 ; free physical = 219 ; free virtual = 17375
INFO: [open_example_project] Generating the example project IP ...
INFO: [open_example_project] Adding example synthesis HDL files ...
INFO: [open_example_project] Adding example XDC files ...
INFO: [open_example_project] Adding simulation HDL files ...
INFO: [open_example_project] Sourcing example extension scripts ...
Post processing the example_design
update_compile_order: Time (s): cpu = 00:00:08 ; elapsed = 00:00:09 . Memory (MB): peak = 1316.645 ; gain = 0.418 ; free physical = 311 ; free virtual = 17369
INFO: [open_example_project] Rebuilding all the top level IPs ...
INFO: [exportsim-Tcl-35] Exporting simulation files for "XSIM" (Xilinx Vivado Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/xsim/ddr4_core.sh'
Generating merged BMM file for the design top 'sim_tb_top'...
Generating merged BMM file for the design top 'sim_tb_top'...
INFO: [exportsim-Tcl-35] Exporting simulation files for "MODELSIM" (Mentor Graphics ModelSim Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/modelsim/ddr4_core.sh'
INFO: [exportsim-Tcl-35] Exporting simulation files for "QUESTA" (Mentor Graphics Questa Advanced Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/questa/ddr4_core.sh'
INFO: [exportsim-Tcl-35] Exporting simulation files for "IES" (Cadence Incisive Enterprise Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/ies/ddr4_core.sh'
INFO: [exportsim-Tcl-35] Exporting simulation files for "VCS" (Synopsys Verilog Compiler Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/vcs/ddr4_core.sh'
INFO: [exportsim-Tcl-35] Exporting simulation files for "RIVIERA" (Aldec Riviera-PRO Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/riviera/ddr4_core.sh'
INFO: [exportsim-Tcl-35] Exporting simulation files for "ACTIVEHDL" (Aldec Active-HDL Simulator)...
INFO: [exportsim-Tcl-29] Script generated: '/home/masaaki/aws-fpga/ddr4_model_build/tmp/tmp_ddr_ex/ddr4_core_ex/ddr4_core_ex.ip_user_files/sim_scripts/ddr4_core/activehdl/ddr4_core.sh'
INFO: [open_example_project] Open Example Project completed
INFO: [Common 17-206] Exiting Vivado at Sun Jul  9 18:03:27 2017...
open_example_project: Time (s): cpu = 00:00:36 ; elapsed = 00:00:44 . Memory (MB): peak = 2018.074 ; gain = 678.875 ; free physical = 531 ; free virtual = 17600
# exit
INFO: [Common 17-206] Exiting Vivado at Sun Jul  9 18:03:28 2017...
Copying files to /home/masaaki/aws-fpga/hdk/common/verif/models/ddr4_model
Copying files to /home/masaaki/aws-fpga/hdk/common/verif/models/ddr4_rdimm_wrapper
INFO: DDR4 model build passed.
INFO: ATTENTION: Don't forget to set the CL_DIR variable for the directory of your Custom Logic.
INFO: AWS HDK setup PASSED.
masaaki@masaaki-VirtualBox:~/aws-fpga$ 


何がどうなっているか、よくわからないがとにかく通った。

~/aws-fpga/hdk/cl/examples を見ると、cl_dram_dma, cl_hello_world, common のディレクトリがある。
そのうちの cl_hello_world をやってみることにする。
aws-fpga_9_170709.png

~/aws-fpga/hdk/cl/examples/cl_hello_world/build/scripts ディレクトリに行ってみた。
aws-fpga_10_170709.png

Vivado のプロジェクトはないので、「How to build and submit your Custom Logic (CL) to AWS」を参考に、とりあえず、~/aws-fpga/hdk/cl/examples/cl_hello_world/build/scripts ディレクトリで
./aws_build_dcp_from_cl.sh
をやってみたが、エラーになってしまった。
aws-fpga_11_170710.png

エラーの内容は、

ERROR: YOUR INSTANCE has less memory than is necessary for certain builds. This means that your builds will take longer than expected.
To change to an instance type with more memory, please check our instance resize guide: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html

で、メモリは10GB 程度割り当てているのだが、だめだそうだ。
やはり、この辺りはAWS EC2 F1 インスタンスを使ってビルドするしかないのかもしれない?
  1. 2017年07月10日 04:36 |
  2. AWS-FPGA
  3. | トラックバック:0
  4. | コメント:2

コメント

こんにちは。いつも参考にしております。

aws_build_dcp_from_cl.sh の45行目で
>expected_memory_usage=30000000
とパラメータが設定されているため、メモリが30GiB以下の場合はエラーが出るみたいですね。
(-ignore_memory_requirement のオプションを指定すればゴリ押しでエラー回避できるのでは?)

ちなみに私の手元のc4.4xlargeインスタンス(メモリ30GiB)上で実行した所要時間は
cl_hello_world:約1時間
cl_dram_dma :約3.5時間
でした。
  1. 2017/07/11(火) 02:18:06 |
  2. URL |
  3. si1242 #0iyVDi8M
  4. [ 編集 ]

ありがとうございます。

expected_memory_usage=16000000
に変更したら動きました。
ですが、Vivadoのライセンスでけられてしまいました。
  1. 2017/07/11(火) 04:14:01 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3852-a244a89c
この記事にトラックバックする(FC2ブログユーザー)