AWS F1インスタンス上でRISC-Vコアを動かすことのできるFireSimは、徐々にバージョンが上がっており、現在はBOOM(Berkeley Out-of Order Machine)のLinux起動もサポートできるようになっているらしい。
一度、F1インスタンスのチュートリアルはやってみたことがあるのだが、しばらく時間もたっているし、前回はRocketコアで検証した環境を、BOOMコアを使って再検証してみたい。
チュートリアルを見ながら、再度FireSimをF1インスタンス上に構築するチュートリアルを試してみることにした。以下の資料を参考にした。
鍵のセットアップ
マネージャインスタンスから、FireSimを経由して立ち上げるためのインスタンスを制御するために使用する鍵を用意する必要があり、
これは、前回ダウンロードした"firesim.pem"をそのまま流用する。scpなどの転送ツールを使用して、"firesim.pem"をマネージャインスタンスのホームディレクトリ~/firesimpem
にコピーしておく。
マネージャインスタンスへのコピーが完了すると、ファイルのパーミッションを確認しておく。
chmod 600 firesim.pem
FireSimリポジトリのダウンロードとセットアップ
FireSimのリポジトリをダウンロードし、セットアップを行う。
git clone https://github.com/firesim/firesim
cd firesim
./build-setup.sh fast
./build-setup.sh
では、RISC-Vのコンパイラやツールセット群などをダウンロードするが、fast
オプションがついているので、プレビルドされたツール群がダウンロードされる。
distrib/var/run/ Makefile:25: XVC_FLAGS: . make -C /lib/modules/3.10.0-862.11.6.el7.x86_64/build M=/home/centos/firesim/platforms/f1/aws-fpga/sdk/linux_kernel_drivers/xdma modules make[1]: Entering directory `/usr/src/kernels/3.10.0-862.11.6.el7.x86_64' /home/centos/firesim/platforms/f1/aws-fpga/sdk/linux_kernel_drivers/xdma/Makefile:25: XVC_FLAGS: . Building modules, stage 2. /home/centos/firesim/platforms/f1/aws-fpga/sdk/linux_kernel_drivers/xdma/Makefile:25: XVC_FLAGS: . MODPOST 1 modules make[1]: Leaving directory `/usr/src/kernels/3.10.0-862.11.6.el7.x86_64' sudo: pip3: command not found
おや、エラーが出てきた。。pip3
コマンドが存在しないようだが、これはpip3.4
としてインストールされている。とりあえずbuild-setup-nolog.sh
を少し書き換えた。
diff --git a/build-setup-nolog.sh b/build-setup-nolog.sh index 52c0a5d..da674bd 100644 --- a/build-setup-nolog.sh +++ b/build-setup-nolog.sh @@ -97,7 +97,7 @@ make # Set up firesim-software cd $RDIR -sudo pip3 install -r sw/firesim-software/python-requirements.txt +sudo pip3.4 install -r sw/firesim-software/python-requirements.txt # commands to run only on EC2 # see if the instance info page exists. if not, we are not on ec2.
もう一度実行する。
./build-setup.sh fast ... Root privileges are required to install. You may be asked for your password... Executing as root... AWS FPGA: Copying Amazon FPGA Image (AFI) Management Tools to /usr/bin AWS FPGA: Installing shared library to /usr/local/lib64 libfpga_mgmt.so.1 (libc6,x86-64) => /usr/local/lib64/libfpga_mgmt.so.1 AWS FPGA: Done with Amazon FPGA Image (AFI) Management Tools install. Done with SDK install. INFO: sdk_setup.sh PASSED Agent pid 7343 Identity added: /home/centos/firesim.pem (/home/centos/firesim.pem) success: firesim.pem added to ssh-agent Setup complete! To use the manager to deploy builds/simulations, source sourceme-f1-manager.sh to setup your environment. To run builds/simulations manually on this machine, source sourceme-f1-full.sh to setup your environment.
完了した。メッセージに表れているように、source sourceme-f1-manager.sh
を実行する。
これによりAWSのシェルにRISC-VツールセットのPATHが追加され、ssh-agentが起動され他のノードにアクセスする場合に自動的に~/firesim.pem
が使用されるように設定される。
マネージャインスタンスを立ち上げたときは、毎回このコマンドを入力する必要があるようだ。
~/firesim$ source sourceme-f1-manager.sh # 毎回~/firesimディレクトリに移動して、このコマンドを入力する必要がある。 Agent pid 7343 success: firesim.pem available in ssh-agent
FireSimのマネージャには、FireSimのセットアップを続けるための様々なコマンドが用意されているので、これを使用するために、まず以下を入力する。
~/firesim$ firesim managerinit FireSim Manager. Docs: http://docs.fires.im Running: managerinit Running aws configure. You must specify your AWS account info here to use the FireSim Manager. [localhost] local: aws configure AWS Access Key ID [None]:
t2.nanoで設定したものと同じことを聞かれるので。同様に設定を行う。
~/firesim$ firesim managerinit FireSim Manager. Docs: http://docs.fires.im Running: managerinit Running aws configure. You must specify your AWS account info here to use the FireSim Manager. [localhost] local: aws configure AWS Access Key ID [None]: # AWSのアクセスキーをここに入力する。 AWS Secret Access Key [None]: # AWSのシークレットアクセスキーをここに入力すr。 Default region name [None]: us-east-1 # North Virginiaのインスタンスを使用しているので、"us-east-1"を設定する。 Default output format [None]: json # 出力ログの形式をjsonに設定する。 Backing up initial config files, if they exist. Creating initial config files from examples. If you are a new user, supply your email address [abc@xyz.abc] for email notifications (leave blank if you do not want email notifications): # E-Mailでの通知は行わないので、ここでは何も設定しない。 You did not supply an email address. No notifications will be sent. FireSim Manager setup completed. The full log of this run is: /home/centos/firesim/deploy/logs/2019-04-06--03-42-24-managerinit-EVF9NYYSS24T6KGK.log
ここまででマネージャインスタンスの設定は完了となる。