Skip to content

Commit ad58106

Browse files
authored
rc v2.1.0 (#715)
1 parent 40e200b commit ad58106

File tree

5,378 files changed

+1592
-11676615
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,378 files changed

+1592
-11676615
lines changed

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@
22
path = vitis/examples/Vitis_Accel_Examples
33
url = https://github.com/Xilinx/Vitis_Accel_Examples.git
44
branch = 2024.1
5+
[submodule "hdk/common/ip"]
6+
path = hdk/common/ip
7+
url = https://github.com/aws/aws-fpga-resources.git
8+
ignore = dirty

ERRATA.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,34 @@ Shell errata is [documented here](./hdk/docs/AWS_Shell_ERRATA.md)
4242

4343
## SDK
4444

45+
1. The following fpga_mgmt flags are not supported for F2:
46+
* `FPGA_CMD_FORCE_SHELL_RELOAD`
47+
* `FPGA_CMD_DRAM_DATA_RETENTION`
48+
* `FPGA_CMD_EXTENDED_METRICS_SIZE`
49+
50+
These flags will cause a run-time error if passed to:
51+
* `fpga_mgmt_describe_local_image`
52+
* `fpga_mgmt_load_local_image_flags`
53+
* `fpga_mgmt_load_local_image_with_options`
54+
* `fpga_mgmt_load_local_image_sync_flags`
55+
* `fpga_mgmt_load_local_image_sync_with_options`
56+
57+
If your application passes these flags, you have two options:
58+
1. Edit your application to no longer pass these flags
59+
2. If your application links against `libfpga_mgmt.so`, you can uncomment the following line from the `Makefile` in the `<SDK>/userspace/fpga_libs/fpga_mgmt` directory:
60+
61+
```makefile
62+
#IGNORE_DEPRECATION=-DUNSUPPORTED_OPTIONS_ACKNOWLEDGED
63+
```
64+
65+
After editing the Makefile, run `source sdk_setup.sh` in the root of this repository. Rebuild your application as normal and the options will be ignored. Alternatively, passing `-DUNSUPPORTED_OPTIONS_ACKNOWLEDGED` to the compiler when compiling the `fpga_mgmt.c` source file will also ignore the options.
66+
67+
2. The `-F` flag is not supported when passed to the `fpga-load-local-image` CLI. The CLI will not error, but it will print a message indicating that the option is not supported and will be ignored.
68+
4569
## Software defined Accelerator Development (Vitis)
4670

47-
1. Only hardware emulation via Vitis 2024.1 is currently supported.
71+
1. Only hardware emulation via Vitis 2024.1 and 2024.2 is currently supported.
4872

49-
2. Support for Vitis 2024.1 accelerator binary creation and AFI creation is not supported, but will be released at a later time.
73+
2. Support for Vitis 2024.1 and 2024.2 accelerator binary creation and AFI creation is not supported, but will be released at a later time.
5074

5175
3. Support for Vitis software emulation has been deprecated by AMD, therefore, no longer supported.

RELEASE_NOTES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# F2 Developer Kit Release Notes
22

3+
## v2.1.0
4+
5+
* Support for Vivado and Vitis 2024.2 tools.
6+
* [Releasing New Developer AMI for 2024.2 tools.](http://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq)
7+
* Updating the asynchronous fpga_mgmt_examples to poll each FPGA once before moving to the next.
8+
39
## v2.0.7
410

511
* Documentation updates to improve [ReadTheDocs](https://awsdocs-fpga-f2.readthedocs-hosted.com/latest/) navigation and inline snippets.

User_Guide_AWS_EC2_FPGA_Development_Kit.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ The development kit includes example designs to get you familiar with developing
1414
- [Hardware Development Kit (HDK)](#hardware-development-kit-hdk)
1515
- [Software-Defined Development Environment](#software-defined-development-environment)
1616
- [FPGA Developer AMI](#fpga-developer-ami)
17-
- [Getting Started](#getting-started)
1817
- [Getting Familiar with AWS](#getting-familiar-with-aws)
1918
- [Next Steps](#next-steps)
2019

@@ -47,7 +46,7 @@ This table lists the F2 development flows currently enabled and supported in the
4746
| Hardware accelerator development using Vivado (HDK) | This environment supports the Hardware Development Kit (HDK) design flow, which empowers FPGA developers to create accelerator designs from scratch, using HDL source code and IPs. <br><br>The AMD Vivado tool synthesizes, implements, and generates the Design Check Point (DCP) file used in F2 AFI creation. AWS FPGA developers benefit from the suite of scripts supplied in the HDK that help to automate different design steps. This allows for flexibility in architecting, implementing, and optimizing accelerator designs while using the HDK.| Verilog/SystemVerilog/VHDL | User-implemented DMA engine or Streaming Data Engine (SDE) | Simulation | Hardware developers with advanced FPGA experience |
4847
| Hardware accelerator development using Vitis | This environment supports the Vitis design flow, which enables software developers to write C++ code, which may then be compiled into RTL and used in cycle-accurate hardware simulation. After it may then be built into an accelerator design. This step is not necessary, but is encouraged. Vitis may also be used to implement accelerator designs from scratch, using HDL and IPs directly, similar to Vivado. Vitis offers additional analysis tools to aid in the refinement of designs. | Verilog/System Verilog/VHDL | XDMA Engine (coming soon) | Hardware Emulation | Advanced software developers or hardware developers with intermediate to advanced FPGA experience |
4948

50-
On-premise environment: Customers can set up a on-premise development environment using 2024.1 AMD tools with their own licenses. Refer to this guide [here](./hdk/docs/on_premise_licensing_help.md) for licensing requirements.
49+
On-premise environment: Customers can set up a on-premise development environment. See the [supported AMD tool versions here.](#hardware-development-kit-hdk) Refer to this guide [here](./hdk/docs/on_premise_licensing_help.md) for licensing requirements.
5150

5251
### Quick Start Links
5352

@@ -154,11 +153,10 @@ The [HDK directory structure](./hdk/README.md) contains:
154153

155154
The HDK currently supports the following tool versions:
156155

157-
| Tool | Version |
158-
|:----------------------------------------|:--------------|
159-
|AMD Vivado Design Suite | 2024.1 |
160-
|Synopsys VCS (Bring your own license) | U-2023.03-SP2 |
161-
|Siemens Questa (Bring your own license) | 2023.3 |
156+
| AMD Vivado Design Suite | Synopsys VCS (Bring your own license) | Siemens Questa (Bring your own license) |
157+
|:------------------------|:---------------------------------------|:----------------------------------------|
158+
| 2024.2 | V-2023.12-SP1 | 2024.1_2 |
159+
| 2024.1 | U-2023.03-SP2 | 2023.3 |
162160

163161
Our scripts require a minimum Python version of 3.10, under `/usr/bin/env python3`:
164162

@@ -181,14 +179,13 @@ A free-to-use FPGA developer AMI is available for on-cloud F2 development with A
181179

182180
| FPGA Developer AMI Version | FPGA Developer AMI ID | Vivado/Vitis Version Supported | Operating System Version |
183181
|----------------------------|-----------------------|--------------------------------|-----------------------------|
182+
| 1.17.0 | [ami-01198b89d80ebfdd2](https://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq) | 2024.2 | Ubuntu 24.04 (kernel 6.8.0-1021-aws)|
184183
| 1.16.1 | [ami-092fc5deb8f3c0f7d](https://aws.amazon.com/marketplace/pp/prodview-f5kjsenkfkz5u) | 2024.1 | Ubuntu 20.04.6 (kernel 5.15)|
185184

186185
Given the large size of the FPGA used for F2, AMD tools work best with at least 4 vCPU’s and 32GiB Memory. We recommend [Compute Optimized and Memory Optimized instance types](https://aws.amazon.com/ec2/instance-types/) to successfully run the synthesis of acceleration code. Developers may start coding and run simulations on low-cost `General Purpose` [instances types](https://aws.amazon.com/ec2/instance-types/).
187186

188187
Note that the tools used by the HDK are only supported on x86-based EC2 instances (Graviton-based instances are not compatible with the tools).
189188

190-
## Getting Started
191-
192189
### Getting Familiar with AWS
193190

194191
If you have never used AWS before, we recommend you start with [AWS getting started training](https://aws.amazon.com/getting-started/), focusing on the basics of the [AWS EC2](https://aws.amazon.com/ec2/) and [AWS S3](https://aws.amazon.com/s3/) services. Understanding the fundamentals of these services will further enhance the developer experience with AWS F2 instances and the FPGA Developer Kit.

docs-rtd/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ sphinx>=6.1.0,<9.0.0
22
sphinx_book_theme>=1.1.3,<2.0.0
33
sphinx-sitemap==2.6.0
44

5-
sphinxcontrib-spelling==8.0.1
5+
sphinxcontrib-spelling==7.7.0
66
pyenchant==3.2.2
77
docutils>=0.18,<0.21
88

docs-rtd/source/ERRATA.rst

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,42 @@ HDK
7171
SDK
7272
---
7373

74-
* N/A
74+
.. role:: raw-html(raw)
75+
:format: html
76+
77+
1. The following fpga_mgmt flags are not supported for F2:
78+
79+
- ``FPGA_CMD_FORCE_SHELL_RELOAD``
80+
- ``FPGA_CMD_DRAM_DATA_RETENTION``
81+
- ``FPGA_CMD_EXTENDED_METRICS_SIZE``
82+
83+
These flags will cause a run-time error if passed to:
84+
85+
- ``fpga_mgmt_describe_local_image``
86+
- ``fpga_mgmt_load_local_image_flags``
87+
- ``fpga_mgmt_load_local_image_with_options``
88+
- ``fpga_mgmt_load_local_image_sync_flags``
89+
- ``fpga_mgmt_load_local_image_sync_with_options``
90+
91+
If your application passes these flags, you have two options:
92+
93+
1. Edit your application to no longer pass these flags
94+
95+
2. If your application links against ``libfpga_mgmt.so``, you can uncomment the following line from the ``Makefile`` in the ``<SDK>/userspace/fpga_libs/fpga_mgmt`` directory:
96+
97+
:raw-html:`<br />`
98+
``#IGNORE_DEPRECATION=-DUNSUPPORTED_OPTIONS_ACKNOWLEDGED``
99+
100+
After editing the Makefile, run ``source sdk_setup.sh`` in the root of this repository. Rebuild your application as normal and the options will be ignored. Alternatively, passing ``-DUNSUPPORTED_OPTIONS_ACKNOWLEDGED`` to the compiler when compiling the ``fpga_mgmt.c`` source file will also ignore the options.
101+
102+
2. The ``-F`` flag is not supported when passed to the ``fpga-load-local-image`` CLI. The CLI will not error, but it will print a message indicating that the option is not supported and will be ignored.
75103

76104
Software defined Accelerator Development (Vitis)
77105
------------------------------------------------
78106

79-
1. Only hardware emulation via Vitis 2024.1 is currently supported.
107+
1. Only hardware emulation via Vitis 2024.1 and 2024.2 is currently supported.
80108

81-
2. Support for Vitis 2024.1 accelerator binary creation and AFI creation is not supported, but will be released at a later time.
109+
2. Support for Vitis 2024.1 and 2024.2 accelerator binary creation and AFI creation is not supported, but will be released at a later time.
82110

83111
3. Support for Vitis software emulation has been deprecated by AMD, therefore, no longer supported.
84112

docs-rtd/source/RELEASE-NOTES.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
F2 Developer Kit Release Notes
22
==============================
33

4+
.. _v210:
5+
6+
v2.1.0
7+
------
8+
9+
- Support for Vivado and Vitis 2024.2 tools.
10+
- `Releasing New Developer AMI for 2024.2 tools. <http://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq>`__
11+
- Updating the asynchronous fpga_mgmt_examples to poll each FPGA once before moving to the next.
412

513
.. _v207:
614

docs-rtd/source/User-Guide-AWS-EC2-FPGA-Development-Kit.rst

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,28 @@
44
The development kit includes example designs to get you familiar with
55
developing for AWS EC2 FPGA Instances.
66

7-
- `AWS EC2 FPGA Development Kit <#aws-ec2-fpga-development-kit>`__
7+
- `AWS EC2 F2 Instance Overview <#aws-ec2-f2-instance-overview>`__
88

9-
- `AWS EC2 F2 Instance Overview <#aws-ec2-f2-instance-overview>`__
9+
- `Instance Types <#instance-types>`__
10+
- `Second Generation On-Cloud FPGA Accelerator
11+
Card <#second-generation-on-cloud-fpga-accelerator-card>`__
12+
- `Comparison to F1 <#comparison-to-f1>`__
1013

11-
- `Instance Types <#instance-types>`__
12-
- `2nd Generation On-Cloud FPGA Accelerator
13-
Card <#second-generation-on-cloud-fpga-accelerator-card>`__
14-
- `Comparison to F1 <#comparison-to-f1>`__
14+
- `AWS EC2 F2 FPGA Development
15+
Kit <#aws-ec2-f2-fpga-development-kit>`__
1516

16-
- `AWS EC2 F2 FPGA Development
17-
Kit <#aws-ec2-f2-fpga-development-kit>`__
17+
- `Development Environments <#development-environments>`__
18+
- `Quick Start Links <#quick-start-links>`__
19+
- `AWS Shells <#aws-shells>`__
20+
- `Hardware Development Kit (HDK) <#hardware-development-kit-hdk>`__
21+
- `Software-Defined Development
22+
Environment <#software-defined-development-environment>`__
1823

19-
- `Development Environments <#development-environments>`__
20-
- `Quick Start Links <#quick-start-links>`__
21-
- `AWS Shells <#aws-shells>`__
22-
- `Hardware Development Kit (HDK) <#hardware-development-kit-hdk>`__
23-
- `Software-Defined Development
24-
Environment <#software-defined-development-environment>`__
24+
- `FPGA Developer AMI <#fpga-developer-ami>`__
2525

26-
- `FPGA Developer AMI <#fpga-developer-ami>`__
26+
- `Getting Familiar with AWS <#getting-familiar-with-aws>`__
2727

28-
- `Getting Started <#getting-started>`__
29-
30-
- `Getting Familiar with AWS <#getting-familiar-with-aws>`__
31-
32-
- `Next Steps <#next-steps>`__
28+
- `Next Steps <#next-steps>`__
3329

3430
.. _aws-ec2-f2-instance-overview:
3531

@@ -65,8 +61,8 @@ Instance Types
6561

6662
.. _second-generation-on-cloud-fpga-accelerator-card:
6763

68-
2nd Generation On-Cloud FPGA Accelerator Card
69-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64+
Second-Generation On-Cloud FPGA Accelerator Card
65+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7066

7167
|image1|
7268

@@ -130,7 +126,7 @@ supported in the development kit.
130126
with intermediate to advanced FPGA experiences
131127

132128
On-premise environment: Customers can set up a on-premise development
133-
environment using 2024.1 AMD tools with their own licenses. Refer to
129+
environment. See the `supported AMD tool versions here. <#hardware-development-kit-hdk>`__ Refer to
134130
this guide `here <./hdk/docs/on-premise-licensing-help.html>`__ for
135131
licensing requirements.
136132

@@ -294,15 +290,16 @@ The HDK currently supports the following tool versions:
294290
.. list-table::
295291
:header-rows: 1
296292
:class: user-guide-simulators-table
297-
:widths: 50 30
293+
:widths: 30 30 30
298294

299-
* - Tool
300-
- Version
301295
* - AMD Vivado Design Suite
302-
- 2024.1
303-
* - Synopsys VCS (Bring your own license)
296+
- Synopsys VCS (Bring your own license)
297+
- Siemens Questa (Bring your own license)
298+
* - 2024.2
299+
- V-2023.12-SP1
300+
- 2024.1_2
301+
* - 2024.1
304302
- U-2023.03-SP2
305-
* - Siemens Questa (Bring your own license)
306303
- 2023.3
307304

308305
Our scripts require a minimum Python version of 3.10, under
@@ -357,6 +354,10 @@ currently released to customers:
357354
- FPGA Developer AMI ID
358355
- Vivado/Vitis Version Supported
359356
- Operating System Version
357+
* - 1.17.0
358+
- `ami-01198b89d80ebfdd2 <https://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq>`__
359+
- 2024.2
360+
- Ubuntu 24.04 (kernel 6.8.0-1021-aws)
360361
* - 1.16.1
361362
- `ami-092fc5deb8f3c0f7d <https://aws.amazon.com/marketplace/pp/prodview-f5kjsenkfkz5u>`__
362363
- 2024.1
@@ -373,11 +374,6 @@ types <https://aws.amazon.com/ec2/instance-types/#General_Purpose>`__.
373374
Note that the tools used by the HDK are only supported on x86-based EC2
374375
instances (Graviton-based instances are not compatible with the tools).
375376

376-
.. _getting-started:
377-
378-
Getting Started
379-
---------------
380-
381377
.. _getting-familiar-with-aws:
382378

383379
Getting Familiar with AWS

docs-rtd/source/hdk/README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Table of Contents
99

1010
- `Table of Contents <#table-of-contents>`__
1111
- `HDK Overview <#hdk-overview>`__
12-
- `Getting Started <#getting-started>`__
12+
- `Getting Started <#getting-started-hdk>`__
1313

1414
- `Build Accelerator AFI using HDK Design
1515
Flow <#build-accelerator-afi-using-hdk-design-flow>`__

docs-rtd/source/hdk/cl/examples/CL-TEMPLATE/README.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Table of Content
1010
- `Design <#design>`__
1111
- `Verification <#verification>`__
1212
- `Software <#software>`__
13-
- `Build <#Build>`__
13+
- `Build <#build-cl-template>`__
1414

15-
- `CL Template Quick Start Guide <#cl_template-quick-start-guide>`__
15+
- `CL Template Quick Start Guide <#cl-template-quick-start-guide>`__
1616

1717
Overview
1818
--------
@@ -135,6 +135,8 @@ CL_TEMPLATE does not yet support stand alone software tests. Please
135135
refer to other examples such as
136136
`CL_DRAM_HBM_DMA <https://github.com/aws/aws-fpga/tree/f2/hdk/cl/examples/cl_dram_hbm_dma/software>`__
137137

138+
.. _build-cl-template:
139+
138140
Build
139141
~~~~~
140142

@@ -199,6 +201,8 @@ For more information on how to populate the constraint files and build
199201
scripts, please refer to other examples such as
200202
`CL_DRAM_HBM_DMA <https://github.com/aws/aws-fpga/tree/f2/hdk/cl/examples/cl_dram_hbm_dma/build>`__.
201203

204+
.. _cl-template-quick-start-guide:
205+
202206
CL_TEMPLATE Quick Start Guide
203207
-----------------------------
204208

docs-rtd/source/hdk/cl/examples/cl-dram-hbm-dma/README.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,15 @@ DDR and HBM. So, if a particular memory is disabled, then the developer
8383
should take care to handle transactions to that address range since
8484
there will be no controller to respond to the request. The address
8585
ranges for each controller is described below in the `dma_pcis AXI4 bus
86-
section <#dma_pcis>`__.
86+
section <#dma-pcis>`__.
8787

8888
Test Changes
8989
------------
9090

9191
If a particular controller is disabled, make sure that the test is not
9292
accessing address space for that controller.
9393

94-
Please look at `dma_pcis AXI4 bus section <#dma_pcis>`__ for address
94+
Please look at `dma_pcis AXI4 bus section <#dma-pcis>`__ for address
9595
ranges.
9696

9797
If DDR is enabled, make sure that the DDRs are initialized using the
@@ -106,6 +106,8 @@ eg: To initialize DDR
106106
Make sure that the Host to Card and Card to Host DMA transfers only
107107
access enabled DDR controller address space.
108108

109+
.. _dma-pcis:
110+
109111
dma_pcis AXI4 bus
110112
-----------------
111113

0 commit comments

Comments
 (0)