Skip to content

TaPaSCo on AWS

m-ober edited this page Jun 15, 2020 · 12 revisions

This page is intended to give a short introduction on using TaPaSCo to create hardware designs for the Amazon EC2 F1 Instances.

Usage

We are trying to keep the tool flow as close as possible to on-premise platforms. Nevertheless, there are some differences in using TaPaSCo for F1.

Installation

The following software versions are known to work:

Software Tested version(s)
Xilinx Vivado 2018.2, 2018.3, 2019.2
HDK 1.4.9, 1.4.13
AMI for F1 instance Ubuntu 18.04

First, follow the README on how to install TaPaSCo.

Then, run the following commands to install the AWS Hardware Development Kit (HDK):

source path/to/vivado/settings64.sh
git clone https://github.com/aws/aws-fpga && cd aws-fpga 
git checkout v1.4.9 # optional - use a specific version
source hdk_setup.sh

TaPaSCo is now ready to use.

Building an AFI

You can now build a bitstream the same way it is done for the other platforms:

tapasco compose [counter x 64] @ 100 MHz --platforms aws

This generates the necessary files to generate an AFI. The output is a tar file in the project folder

<arch>.<platform>--<composition>--<frequency>.tar

The tar file has to be uploaded to AWS to generate an AFI. This requires the AWS CLI. TaPaSCo ships with a helper script (afihelper) that eases the process of generating the AFI. In short, run the following commands:

pip3 install awscli --upgrade --user # install AWS CLI
aws configure # configure credentials

afihelper my-bucket-name axi4mm-aws--counter_64--100.0.tar my-first-afi \
  --description "This is my first AFI"

This generates the AFI and makes it available to the FPGA instances. Note this step can take some time (1-2 hours), as the uploaded design is automatically verified by AWS.

To get a list of all AFIs associated with your AWS account, use the afilist command supplied by TaPaSCo.

Runtime Environment

Again, please follow the instructions of the TaPaSCo README on how to set up the runtime. Additionally, you need to clone AWS HDK again (see above). But, do not source the hdk_setup.sh (which would fail anyway). Instead, run source sdk_setup.sh.

To load the bitstream on the device you have to run

tapasco-load-bitstream [--reload-driver] <AGFI>

where <AGFI> is the ID of AFI you want to load.

Now, start your host application.

Troubleshooting

If there is an error during the TaPaSCo compose job, please open an issue (and make sure you are using known working software versions, see above).

If there is a problem loading the AFI or running the host application, you can also try to load the public AFI agfi-0c912ae2a270ec8ed, which is a simple design with 128 counter instances. Now, try to run tapasco-benchmark[d].