-
Notifications
You must be signed in to change notification settings - Fork 25
TaPaSCo on AWS
This page is intended to give a short introduction on using TaPaSCo to create hardware designs for the Amazon EC2 F1 Instances.
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.
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.
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.
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.
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]
.