Skip to content

Commit a6cece0

Browse files
deeppatczfpgakyyalama2
authored
Release v1.4.22 (#540)
* Updated README.md and FAQ.md: (#702) * Added descriptions on kernel clocks and frequency scaling. * Virtual Ethernet upgrade (#694) * Update dpdk to v20.02 for virtual eth instance and dpdk to v20.08 and pktgen to v20.09 for pktgen instance * update to include a dpdk patch for generating igb * update the script to also generate igb_uio.ko for x86_64-native-linuxapp-gcc * updated dpdk patches for 20.02 * updates to spp_ethdev.c * remove spp_ethdev.c as its updated in 0001 patch * update the patch to enable igb_uio compilation * updates to virtual_ethernet_install.py for upgrade to 20.02 * Update Virtual_Ethernet_Application_Guide.md * Updated the end of life announcement table (#703) Co-authored-by: czfpga <[email protected]> Co-authored-by: kyyalama2 <[email protected]>
1 parent 85d621d commit a6cece0

23 files changed

+4975
-4892
lines changed

README.md

+14-6
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ Given the large size of the FPGA used inside AWS F1 Instances, Xilinx tools work
4646
z1d.xlarge/c5.4xlarge and z1d.2xlarge/c5.8xlarge instance types would provide the fastest execution time with 30GiB+ and 60GiB+ of memory respectively.
4747
Developers who want to save on cost, could start coding and run simulations on low-cost instances, like t2.2xlarge, and move to the aforementioned larger instances to run the synthesis of their acceleration code.
4848

49-
AWS marketplace offers multiple versions of the FPGA Developer AMI. The following compatibility table describes the mapping of currently supported developer kit versions to AMI versions:
49+
AWS marketplace offers multiple versions of the FPGA Developer AMI. The following section table describes the mapping of currently supported developer kit versions to AMI versions.
50+
51+
## Xilinx tool support
5052

5153
| Developer Kit Version | Tool Version Supported | Compatible FPGA Developer AMI Version |
5254
|-----------|-----------|------|
@@ -57,17 +59,23 @@ AWS marketplace offers multiple versions of the FPGA Developer AMI. The followin
5759
| 1.4.11+ | 2019.1 | v1.7.0-v1.7.X (Xilinx Vivado/SDx 2019.1) |
5860
| 1.4.8 - 1.4.15b | 2018.3 | v1.6.0-v1.6.X (Xilinx Vivado/SDx 2018.3) |
5961
| 1.4.3 - 1.4.15b | 2018.2 | v1.5.0-v1.5.X (Xilinx Vivado/SDx 2018.2) |
60-
| 1.3.7 - 1.4.15b | 2017.4 | v1.4.0-v1.4.X (Xilinx Vivado/SDx 2017.4) |
62+
|⚠️ 1.3.7 - 1.4.15b | 2017.4 | v1.4.0-v1.4.X (Xilinx Vivado/SDx 2017.4) ⚠️|
6163

62-
⚠️ Developer kit release v1.4.16 will remove support for Xilinx 2017.4, 2018.2, 2018.3 toolsets.
63-
While developer kit release v1.4.16 onwards will not support older Xilinx tools, you can still use them using HDK releases v1.4.15b or earlier.
64-
Please checkout [the latest v1.4.15b release tag from Github](https://github.com/aws/aws-fpga/releases/tag/v1.4.15b) to use Xilinx 2017.4, 2018.2, 2018.3 toolsets.
64+
⚠️ Developer kit release v1.4.16 will remove support for Xilinx 2017.4, 2018.2, 2018.3 toolsets. While developer kit release v1.4.16 onwards will not support older Xilinx tools, you can still use them using HDK releases v1.4.15b or earlier.
65+
Please check out [the latest v1.4.15b release tag from Github](https://github.com/aws/aws-fpga/releases/tag/v1.4.15b) to use Xilinx 2017.4, 2018.2, 2018.3 toolsets.
6566

66-
⚠️ Developer kit versions prior to v1.3.7 and Developer AMI prior to v1.4 (2017.1) reached end-of-life. See [AWS forum announcement](https://forums.aws.amazon.com/ann.jspa?annID=6068) for additional details.
67+
For deprecation notices, please check the [End of life announces](./README.md#end-of-life-announcements)
6768

6869
For software-defined development please look at the runtime compatibility table based on the Xilinx toolset in use:
6970
[SDAccel](SDAccel/docs/Create_Runtime_AMI.md#runtime-ami-compatibility-table) or [Vitis](Vitis/docs/Create_Runtime_AMI.md#runtime-ami-compatibility-table)
7071

72+
### End of life Announcements
73+
74+
| Xilinx Tool version | State | Statement |
75+
|-----------|-----------|------|
76+
| 2017.1 | 🚫 Deprecated on 09/01/2018 | Developer kit versions prior to v1.3.7 and Developer AMI prior to v1.4 (2017.1) [reached end-of-life](https://forums.aws.amazon.com/ann.jspa?annID=6068). |
77+
| 2017.4 | ⚠️ Upcoming deprecation on 12/31/2021 | Support for Xilinx 2017.4 toolsets will be deprecated on 12/31/2021. Please check our [forum announcement for more details](https://forums.aws.amazon.com/ann.jspa?annID=8949). |
78+
7179
## Hardware Development Kit (HDK)
7280

7381
The [HDK directory](./hdk/README.md) contains documentation, examples, simulation, build and AFI creation scripts to start building Amazon FPGA Images (AFI).

RELEASE_NOTES.md

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
**NOTE:** See [ERRATA](./ERRATA.md) for unsupported features
44

5+
## Release 1.4.22
6+
* FPGA developer kit update to upgrade Virtual Ethernet to support jumbo frames using newer versions of dpdk/pktgen
7+
58
## Release 1.4.21
69
* FPGA developer kit now supports Xilinx Vivado/Vitis 2021.1
710

Vitis/README.md

+39-37
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# Quick Start Guide to Accelerating your C/C++ application on an AWS F1 FPGA Instance with Vitis
22

33
There are three steps for accelerating your application on an Amazon EC2 FPGA instance using the software-defined development flow:
4-
1. Build the host application, and the Xilinx FPGA binary
4+
1. Build the host application, and the Xilinx FPGA binary
55
2. Create an AFI
66
3. Run the FPGA accelerated application on AWS FPGA instances
77

88
This quick start guide will utilize a simple "Hello World" Vitis example to get you started.
99

10-
It is highly recommended you read the documentation and utilize software and hardware emulation prior to running on F1.
10+
It is highly recommended you read the documentation and utilize software and hardware emulation prior to running on F1.
1111
The F1 HW Target compile time is ~50 minutes, therefore, software and hardware emulation should be used during development.
1212

1313

1414
# Table of Content
1515

16-
1. [Overview](#overview)
16+
1. [Overview](#overview)
1717
2. [Prerequisites](#prerequisites)
1818
* [AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup](#iss)
1919
* [Github and Environment Setup](#gitsetenv)
@@ -39,20 +39,20 @@ The F1 HW Target compile time is ~50 minutes, therefore, software and hardware e
3939
## AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)
4040
* [Setup an AWS Account](https://aws.amazon.com/free/)
4141
* Launch an instance using the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) which comes pre-installed with Vitis and required licenses.
42-
* You may use this F1 instance to [build your host application and Xilinx FPGA binary](#createapp), however, it is more cost efficient to either:
43-
* Launch the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) on a compute EC2 instance, with a minimum of 30GiB RAM), **OR**
42+
* You may use this F1 instance to [build your host application and Xilinx FPGA binary](#createapp), however, it is more cost efficient to either:
43+
* Launch the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) on a compute EC2 instance, with a minimum of 30GiB RAM), **OR**
4444
* Follow the [On-Premises Instructions](../docs/on_premise_licensing_help.md) to purchase and install a license from Xilinx.
4545
* Setup AWS IAM permissions for creating FPGA Images (CreateFpgaImage and DescribeFpgaImages). [EC2 API Permissions are described in more detail](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html). It is highly recommended that you validate your AWS IAM permissions prior to proceeding with this quick start. By calling the [DescribeFpgaImages API](../hdk/docs/describe_fpga_images.md) you can check that your IAM permissions are correct.
4646
* [Setup AWS CLI and S3 Bucket](docs/Setup_AWS_CLI_and_S3_Bucket.md) to enable AFI creation.
4747
* Install optional [packages](packages.txt) required to run all examples. If you do not install these packages, some examples may not work properly. The setup scripts will warn you of any missing packages.
4848
* Additional dependencies may get flagged during the AWS Vitis scripts as warnings or errors.
4949

5050
<a name="gitsetenv"></a>
51-
## Github and Environment Setup
52-
* Clone this github repository and source the *vitis_setup.sh* script:
51+
## Github and Environment Setup
52+
* Clone this github repository and source the *vitis_setup.sh* script:
5353
```
54-
$ git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR
55-
$ cd $AWS_FPGA_REPO_DIR
54+
$ git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR
55+
$ cd $AWS_FPGA_REPO_DIR
5656
$ source vitis_setup.sh
5757
```
5858

@@ -72,76 +72,76 @@ This section will walk you through creating, emulating and compiling your host a
7272
<a name="emu"></a>
7373
# Emulate your Code
7474

75-
The main goal of emulation is to ensure functional correctness and to determine how to partition the application between the host CPU and the FPGA.
75+
The main goal of emulation is to ensure functional correctness and to determine how to partition the application between the host CPU and the FPGA.
7676
HW/SW Emulation does not require use of actual FPGA's and can be run on any compute instances. Using non-F1 EC2 compute instances for initial development will help reduce costs.
7777

7878
<a name="swemu"></a>
7979
## Software (SW) Emulation
8080

81-
For CPU-based (SW) emulation, both the host code and the FPGA binary code are compiled to run on an x86 processor.
82-
SW Emulation enables developers to iterate and refine the algorithms through fast compilation.
83-
The iteration time is similar to software compile and run cycles on a CPU.
81+
For CPU-based (SW) emulation, both the host code and the FPGA binary code are compiled to run on an x86 processor.
82+
SW Emulation enables developers to iterate and refine the algorithms through fast compilation.
83+
The iteration time is similar to software compile and run cycles on a CPU.
8484

8585
The instructions below describe how to run the Vitis SW Emulation flow using the Makefile provided with a simple "hello world" example
8686

8787
```
88-
$ cd $VITIS_DIR/examples/xilinx/hello_world
89-
$ make clean
90-
$ make run TARGET=sw_emu DEVICE=$AWS_PLATFORM all
88+
$ cd $VITIS_DIR/examples/xilinx/hello_world
89+
$ make clean
90+
$ make run TARGET=sw_emu DEVICE=$AWS_PLATFORM all
9191
```
9292

9393
For more information on how to debug your application in a SW Emulation environment.
9494

9595
<a name="hwemu"></a>
9696
## Hardware (HW) Emulation
9797

98-
The Vitis hardware emulation flow enables the developer to check the correctness of the logic generated for the FPGA binary. This emulation flow invokes the hardware simulator in the Vitis environment to test the functionality of the code that will be executed on the FPGA Custom Logic.
98+
The Vitis hardware emulation flow enables the developer to check the correctness of the logic generated for the FPGA binary. This emulation flow invokes the hardware simulator in the Vitis environment to test the functionality of the code that will be executed on the FPGA Custom Logic.
9999

100-
The instructions below describe how to run the HW Emulation flow using the Makefile provided with a simple "hello world" example:
100+
The instructions below describe how to run the HW Emulation flow using the Makefile provided with a simple "hello world" example:
101101

102102
```
103-
$ cd $VITIS_DIR/examples/xilinx/hello_world
104-
$ make clean
105-
$ make run TARGET=hw_emu DEVICE=$AWS_PLATFORM all
103+
$ cd $VITIS_DIR/examples/xilinx/hello_world
104+
$ make clean
105+
$ make run TARGET=hw_emu DEVICE=$AWS_PLATFORM all
106106
```
107107
For more information on how to debug your application in a HW Emulation environment.
108108

109109
<a name="hw"></a>
110110
# Build the Host Application and Xilinx FPGA Binary
111111

112-
The Vitis system build flow enables the developer to build their host application as well as their Xilinx FPGA Binary.
112+
The Vitis system build flow enables the developer to build their host application as well as their Xilinx FPGA Binary.
113113

114-
The instructions below describe how to build the Xilinx FPGA Binary and host application using the Makefile provided with a simple "hello world" example:
114+
The instructions below describe how to build the Xilinx FPGA Binary and host application using the Makefile provided with a simple "hello world" example:
115115

116116
```
117-
$ cd $VITIS_DIR/examples/xilinx/hello_world
118-
$ make clean
119-
$ make TARGET=hw DEVICE=$AWS_PLATFORM all
117+
$ cd $VITIS_DIR/examples/xilinx/hello_world
118+
$ make clean
119+
$ make TARGET=hw DEVICE=$AWS_PLATFORM all
120120
```
121121

122122
NOTE: If you encounter an error with `No current synthesis run set`, you may have previously run the [HDK IPI examples](../hdk/docs/IPI_GUI_Vivado_Setup.md) and created a `Vivado_init.tcl` file in `~/.Xilinx/Vivado`. This will cause [problems](https://forums.aws.amazon.com/thread.jspa?threadID=268202&tstart=25) with the build process, thus it is recommended to remove it before starting a hardware system build.
123123

124124
<a name="createafi"></a>
125-
# 2. Create an Amazon FPGA Image (AFI)
125+
# 2. Create an Amazon FPGA Image (AFI)
126126

127127
*The Vitis Flow only supports AFI's created with Device ID 0xF010 and Vendor ID 0x1D0F.*
128128

129129
The runtime drivers are designed to only bind to 0xF010 and 0x1042(Cleared AFI) and loading AFI's from your application that provide other Device/Vendor ID's will require restarting the Xilinx MPD.
130130

131-
This assumes you have:
131+
This assumes you have:
132132
* [Compiled your host application and Xilinx FPGA Binary](#hw)
133133
* Validated your code using [SW/HW Emulation](#emu) and you are ready to create an AFI and test on F1.
134-
* [Setup AWS CLI and S3 bucket](docs/Setup_AWS_CLI_and_S3_Bucket.md) for AFI creation
134+
* [Setup AWS CLI and S3 bucket](docs/Setup_AWS_CLI_and_S3_Bucket.md) for AFI creation
135135

136136
The [create_vitis_afi.sh](./tools/create_vitis_afi.sh) script is provided to facilitate AFI creation from a Xilinx FPGA Binary, it:
137137
* Takes in your Xilinx FPGA Binary \*.xclbin file
138138
* Calls *aws ec2 create_fpga_image* to generate an AFI under the hood
139139
* Generates a \<timestamp\>_afi_id.txt which contains the identifiers for your AFI
140-
* Creates an AWS FPGA Binary file with an \*.awsxclbin extension that is composed of: Metadata and AGFI-ID.
140+
* Creates an AWS FPGA Binary file with an \*.awsxclbin extension that is composed of: Metadata and AGFI-ID.
141141
* **This \*.awsxclbin is the AWS FPGA Binary file that will need to be loaded by your host application to the FPGA**
142142

143143
```
144-
$ $VITIS_DIR/tools/create_vitis_afi.sh -xclbin=<input_xilinx_fpga_binary_xclbin_filename>
144+
$ $VITIS_DIR/tools/create_vitis_afi.sh -xclbin=<input_xilinx_fpga_binary_xclbin_filename>
145145
-o=<output_aws_fpga_binary_awsxclbin_filename_root> \
146146
-s3_bucket=<bucket-name> -s3_dcp_key=<dcp-folder-name> -s3_logs_key=<logs-folder-name>
147147
```
@@ -151,20 +151,22 @@ The [create_vitis_afi.sh](./tools/create_vitis_afi.sh) script is provided to fac
151151
**NOTE**: *Attempting to load your AFI immediately on an F1 instance will result in an 'Invalid AFI ID' error.
152152
Please wait until you confirm the AFI has been created successfully.*
153153

154-
## Tracking the status of your registered AFI
154+
Refer to [FAQ](./docs/FAQ.md) for details.
155+
156+
## Tracking the status of your registered AFI
155157

156158
The \*_afi_id.txt file generated by the create_vitis_afi.sh also includes the two identifiers for your AFI:
157159
- **FPGA Image Identifier** or **AFI ID**: this is the main ID used to manage your AFI through the AWS EC2 CLI commands and AWS SDK APIs.
158160
This ID is regional, i.e., if an AFI is copied across multiple regions, it will have a different unique AFI ID in each region.
159161
An example AFI ID is **`afi-06d0ffc989feeea2a`**.
160162
- **Global FPGA Image Identifier** or **AGFI ID**: this is a global ID that is used to refer to an AFI from within an F1 instance.
161-
For example, to load or clear an AFI from an FPGA slot, you use the AGFI ID.
163+
For example, to load or clear an AFI from an FPGA slot, you use the AGFI ID.
162164
**This is embedded into the AWS FPGA Binary \*.awsxclbin file generated by create_vitis_afi.sh.**
163165
Since the AGFI IDs is global (by design), it allows you to copy a combination of AFI/AMI to multiple regions, and they will work without requiring any extra setup.
164166
An example AGFI ID is **`agfi-0f0e045f919413242`**.
165167

166168

167-
Use the [describe-fpga-images](../hdk/docs/describe_fpga_images.md) API to check the AFI state during the background AFI generation process.
169+
Use the [describe-fpga-images](../hdk/docs/describe_fpga_images.md) API to check the AFI state during the background AFI generation process.
168170

169171
```
170172
$ aws ec2 describe-fpga-images --fpga-image-ids <AFI ID>
@@ -194,18 +196,18 @@ For help with AFI creation issues, see [create-fpga-image error codes](../hdk/do
194196
* Copy any data files required for execution to the new instance
195197
* [Clone the github repository to the new F1 instance and install runtime drivers](#gitsetenv)
196198

197-
* To setup tools, runtime environment & execute your Host Application:
199+
* To setup tools, runtime environment & execute your Host Application:
198200
```
199201
$ git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR
200202
$ cd $AWS_FPGA_REPO_DIR
201203
$ source vitis_runtime_setup.sh # Other runtime env settings needed by the host app should be setup after this step
202204
# Wait till the MPD service has initialized. Check systemctl status mpd
203-
$ ./hello_world ./vadd.awsxclbin
205+
$ ./hello_world ./vadd.awsxclbin
204206
```
205207
* The runtime setup script also starts the Xilinx XRT Message Proxy Daemon(MPD) service. To learn more about the XRT implementation, check the [XRT Instructions](./docs/XRT_installation_instructions.md#mpd)
206208
207209
<a name="read"></a>
208-
# Additional Vitis Information
210+
# Additional Vitis Information
209211
210212
* [Vitis User Guide](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1393-vitis-application-acceleration.pdf)
211213

Vitis/docs/FAQ.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Frequently Asked Questions (FAQ)
22

3+
## Q: What are the clocks available to the RTL kernel on the AWS F1 Platform?
4+
A: There are 3 clocks provided on the AWS F1 Platform. Their names and default frequencies are shown below.
5+
Among them, DATA_CLK and KERNEL_CLK can be used by the RTL kernel.
6+
7+
* SYSTEM (clock_main_a0) @ 250 MHz
8+
* DATA_CLK (clock_extra_b0) @ 250 MHz
9+
* KERNEL_CLK (clock_extra_c0) @ 500 MHz
10+
11+
**NOTE**: *Frequency scaling can be enabled by Vitis on the kernel clock (DATA_CLK or KERNEL_CLK). This happens when the kernel's timing performance cannot be achieved. Vitis will lower the clock frequency to meet timing. For more details about kernel clock, please refer to [Vitis User Guide](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1393-vitis-application-acceleration.pdf).*
12+
313
## Q: What is the lowest frequency Vitis design supported on the AWS F1 Platform?
414
A: We support creating AFI's from CL's that have been built to work at Frequencies no lower than 80MHz.
515
Re-clocking/Loading a dynamic clock frequency lower than 80MHz will also result in an error.

hdk/hdk_version.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
HDK_VERSION=1.4.21
1+
HDK_VERSION=1.4.22

0 commit comments

Comments
 (0)