Skip to content

Commit 934000f

Browse files
committed
Doc updates only: Fixes to links and additional SDAccel updates based on customer feedback and AWS forum posts
1 parent e107da6 commit 934000f

File tree

9 files changed

+157
-74
lines changed

9 files changed

+157
-74
lines changed

FAQs.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ AWS FPGA generation and EC2 F1 instances are supported in us-east-1 (N. Virginia
112112

113113
**Q: What is the process for creating an AFI?**
114114

115-
The AFI process starts by creating Custom Logic (CL) code that conforms to the [Shell Specification]((./hdk/docs/AWS_Shell_Interface_Specification.md). Then, the CL must be compiled using the HDK scripts which leverages Vivado tools to create a Design Checkpoint (DCP). That DCP is submitted to AWS for generating an AFI using the `aws ec2 create-fpga-image` API.
115+
The AFI process starts by creating Custom Logic (CL) code that conforms to the [Shell Specification](./hdk/docs/AWS_Shell_Interface_Specification.md). Then, the CL must be compiled using the HDK scripts which leverages Vivado tools to create a Design Checkpoint (DCP). That DCP is submitted to AWS for generating an AFI using the `aws ec2 create-fpga-image` API.
116116

117117
Use the AWS CLI `describe-fpga-images` API to get information about the created AFIs using the AFI ID provided by `create-fpga-image`, or to list available AFIs for your account. See [describe-fpga-images](./hdk/docs/describe_fpga_images.md) document for details on how to use this API.
118118

@@ -153,7 +153,7 @@ If a developer uses local tools and license, please check the [supported version
153153

154154
**Q: Is there a “best practice” system template?**
155155

156-
AWS prefers not to limit developers to a specific template in terms of how we advise to use AWS FPGAs. A good overview of these interfaces can be found [here](https://github.com/aws/aws-fpga/blob/master/hdk/docs/Programmer_View.md)
156+
AWS prefers not to limit developers to a specific template in terms of how we advise to use AWS FPGAs. A good overview of these interfaces can be found [here](./hdk/docs/Programmer_View.md)
157157

158158

159159
**Q: Do I need to get a Xilinx license to generate an AFI?**
@@ -374,7 +374,7 @@ Details on the Shell Interface to the FPGA Link IP blocks are provided in the [S
374374

375375
**Q: What clock speed does the FPGA utilize?**
376376

377-
The FPGA Shell provides a selectable frequency clocks (up to 8 clocks) from the Shell to the Custom Logic (CL) region, please refer to the [Shell Interface Specification](./hdk/docs/AWS_Shell_interface_Specification.md) and the [available clock recipe](./hdk/docs/clock_recipes.csv) for the available clocks and frequency options.
377+
The FPGA Shell provides a selectable frequency clocks (up to 8 clocks) from the Shell to the Custom Logic (CL) region, please refer to the [Shell Interface Specification](./hdk/docs/AWS_Shell_Interface_Specification.md) and the [available clock recipe](./hdk/docs/clock_recipes.csv) for the available clocks and frequency options.
378378

379379
*Note: All the AXI interfaces between Shell and CL are synchronous to `clk_main_a0`, which has a default of 125Mhz using `A0` clock recipe.
380380

SDAccel/FAQ.md

+47-47
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
# Frequently Asked Questions (FAQ)
22

3-
This section lists issues/perceived issue and their associated investigations or solutions.
3+
## Q: When I run my application on F1, I see these errors: ERROR: Failed to load xclbin ERROR: No program executable for device ERROR: buffer (2) is not resident in device (0)", how to debug these errors?
4+
5+
A: First double check that your AFI has been generated successfully by reviewing the SDAccel README. Second, check that you are running your application on F1 using sudo. Lastly, check that your AWS CLI (configure) was configured using output format as json.
6+
7+
## Q: During AFI generation (create_sdaccel_afi.sh), how do I resolve this error: "An error occurred (AuthFailure) when calling the CreateFpgaImage operation: AWS was not able to validate the provided access credentials"?
8+
9+
A: The script has output an error, therefore, for AFI generation to complete you will need to resolve this error.
10+
"An error occurred (AuthFailure) when calling the CreateFpgaImage operation: AWS was not able to validate the provided access credentials"
11+
12+
This error message means your AWS credentials were not setup properly or your IAM does not have access to the API (CreateFpgaImage). Here is some additional info on how to setup IAM privileges.
13+
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html
14+
15+
You may want to test you IAM policy using DescribeFpgaImage API:
16+
https://github.com/aws/aws-fpga/blob/master/hdk/docs/describe_fpga_images.md
17+
18+
## Q: During AFI generation (create_sdaccel_afi.sh), my AFI failed to generate and I see this error message in the log: "Provided clocks configuration is illegal. See AWS FPGA HDK documentation for supported clocks configuration. Frequency 0 is lower than minimal supported frequency of 80", how do I debug this message?
19+
20+
A: Please confirm that you successfully compiled your kernel for HW. For the quick start examples, you will need to have completed the quick start and successfully passed this command: make TARGETS=hw DEVICES=$AWS_PLATFORM all
21+
22+
## Q: What is a xclbin or binary container on SDAccel?
23+
24+
A: The [xclbin](https://www.xilinx.com/html_docs/xilinx2017_2/sdaccel_doc/topics/design-flows/concept-create-compute-unit-binary.html) file or the "Binary Container" is a binary library of kernel compute units that will be loaded together into an OpenCL context for a specific device.
25+
AWS uses a modified version of the xclbin called awsxclbin. The awsxclbin contains the xclbin metadata and AFI ID.
426

527
## Q: What can we investigate when xocc fails with a path not meeting timing?
628
A: An example is WARNING: [XOCC 60-732] Link warning: One or more timing paths failed timing targeting <ORIGINAL_FREQ> MHz for <CLOCK_NAME>. The frequency is being automatically changed to <NEW_SCALED_FREQ> MHz to enable proper functionality.
@@ -29,28 +51,11 @@ A:
2951
1. Add assert where run fails and check same conditions for hw_emu
3052
1. See "Chapter 8 - Debugging Applications in the SDAccel Environment" in [latest SDAccel Environment User Guide]
3153

32-
## Q: Host code failed to link?
33-
A:
34-
1. Is the code linking to *.so libs and are they setup correctly on the compiler command line argument
35-
- Note, there has been issues reported where -ldl or -lxilinxopencl needed to be put as the last argument of the comman line for the compiler; try linking on the command line and see if moving the -l options corrects the issue.
36-
1. Check if LD_LIBRARY_PATH is setup correctly
37-
38-
## Q: sw_emu passes but hw_emu fails
39-
A:
40-
1. arrow down failure: what mismatches, only LSB bits different?
41-
1. Differences due to floating point?
42-
1. Run valgrind on executable to assert no seg faults or out of bounds accesses
43-
1. Have a reduced testcase data size if hw_emu takes too long
44-
1. Have sdaccel.ini configured with [Emulation] section using launch_waveform=gui or batch to generate waveform for analysis; see "Application Timeline" in [latest SDAccel Environment User Guide]
45-
4654
## Q: Bitstream creation fails to create design less that 60 MHz?
4755
A: SDAccel flow does not allow clocks running less that 60 MHz kernel clock, therefore, you will need to debug further using [HLS Debug suggestions](./docs/SDAccel_HLS_Debug.md)
4856

49-
## Q: Using the .xcp file generated from xocc results in an error
50-
A:
51-
1. Raw xclbin (.xcp file) from xocc is not usable
52-
1. Directly using the .xcp file without conversion to .xclbin file will result in an error - Error: ... invalid binary
53-
1. See [Instructions on how to create AFI and subsequent execution process](../README.md#create-an-amazon-fpga-image-afi-for-your-kernel)
57+
## Q: Using the .xcp file generated from xocc results in an error?
58+
A: Directly using the .xcp file without conversion to .xclbin file will result in an error - Error: ... invalid binary. See [Instructions on how to create AFI and subsequent execution process](../README.md#create-an-amazon-fpga-image-afi-for-your-kernel)
5459

5560

5661
# Additional Resources
@@ -60,32 +65,27 @@ The [AWS SDAccel README].
6065
Xilinx web portal for [Xilinx SDAccel documentation] and for [Xilinx SDAccel GitHub repository]
6166

6267
Links pointing to **latest** version of the user guides
63-
[UG1023: SDAccel Environment User Guide][latest SDAccel Environment User Guide]
64-
[UG1021: SDAccel Environment Tutorial: Getting Started Guide (including emulation/build/running on H/W flow)][latest UG1021]
65-
[UG1207: SDAccel Environment Optimization Guide][latest SDAccel Environment Optimization Guide]
66-
[UG949: UltraFast Design Methodology Guide for the Vivado Design Suite][latest UG949]
68+
* [UG1023: SDAccel Environment User Guide][latest SDAccel Environment User Guide]
69+
* [UG1021: SDAccel Environment Tutorial: Getting Started Guide (including emulation/build/running on H/W flow)][latest UG1021]
70+
* [UG1207: SDAccel Environment Optimization Guide][latest SDAccel Environment Optimization Guide]
71+
* [UG949: UltraFast Design Methodology Guide for the Vivado Design Suite][latest UG949]
6772

6873
Links pointing to **2017.1** version of the user guides
69-
[UG1023: SDAccel Environment User Guide][UG1023 2017.1]
70-
[UG1021: SDAccel Environment Tutorial: Getting Started Guide (including emulation/build/running on H/W flow)][UG1021 2017.1]
71-
[UG1207: SDAccel Environment Optimization Guide][UG1207 2017.1]
72-
[UG1238: SDx Development Environment Release Notes, Installation, and Licensing Guide][UG1238 2017.1]
73-
74-
[SDAccel_landing_page]: https://www.xilinx.com/products/design-tools/software-zone/sdaccel.html
75-
[VHLS_landing_page]: https://www.xilinx.com/products/design-tools/vivado/integration/esl-design.html
76-
[Vivado_landing_page]: https://www.xilinx.com/products/design-tools/vivado.html
77-
78-
[latest SDAccel Environment User Guide]: https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1023-sdaccel-user-guide.pdf
79-
[latest UG1021]: https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1021-sdaccel-intro-tutorial.pdf
80-
[latest SDAccel Environment Optimization Guide]: https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1207-sdaccel-optimization-guide.pdf
81-
[latest UG949]: https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug949-vivado-design-methodology.pdf
82-
83-
[UG1023 2017.1]: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1023-sdaccel-user-guide.pdf
84-
[UG1021 2017.1]: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1021-sdaccel-intro-tutorial.pdf
85-
[UG1207 2017.1]: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1207-sdaccel-optimization-guide.pdf
86-
[UG1238 2017.1]:http://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1238-sdx-rnil.pdf
87-
[Xilinx SDAccel documentation]: https://www.xilinx.com/products/design-tools/software-zone/sdaccel.html#documentation
88-
[Xilinx SDAccel GitHub repository]: https://github.com/Xilinx/SDAccel_Examples
89-
90-
[AWS SDAccel Readme]: ../README.md
91-
[Debug HLS Performance: Limited memory ports]: ./docs/SDAccel_HLS_Debug.md
74+
* [UG1023: SDAccel Environment User Guide][UG1023 2017.1]
75+
* [UG1021: SDAccel Environment Tutorial: Getting Started Guide (including emulation/build/running on H/W flow)][UG1021 2017.1]
76+
* [UG1207: SDAccel Environment Optimization Guide][UG1207 2017.1]
77+
* [UG1238: SDx Development Environment Release Notes, Installation, and Licensing Guide][UG1238 2017.1]
78+
* [SDAccel_landing_page](https://www.xilinx.com/products/design-tools/software-zone/sdaccel.html)
79+
* [Vivado HLS landing page](https://www.xilinx.com/products/design-tools/vivado/integration/esl-design.html
80+
* [Vivado landing page](https://www.xilinx.com/products/design-tools/vivado.html)
81+
* [SDAccel Environment User Guide](https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1023-sdaccel-user-guide.pdf)
82+
* [SDAccel Intro Tutorial](https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1021-sdaccel-intro-tutorial.pdf)
83+
* [SDAccel Environment Optimization Guide](https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug1207-sdaccel-optimization-guide.pdf)
84+
* [Vivado Design Methodology](https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug949-vivado-design-methodology.pdf)
85+
* [2017.1 SDAccel User Guide](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1023-sdaccel-user-guide.pdf)
86+
* [2017.1 SDAccel Intro Tutorial](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1021-sdaccel-intro-tutorial.pdf)
87+
* [2017.1 SDAccel Environment Optimization Guide](https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug1207-sdaccel-optimization-guide.pdf)
88+
* [Xilinx SDAccel documentation](https://www.xilinx.com/products/design-tools/software-zone/sdaccel.html#documentation)
89+
* [Xilinx SDAccel GitHub repository](https://github.com/Xilinx/SDAccel_Examples)
90+
* [AWS SDAccel Readme](README.md)
91+
* [Debug HLS Performance: Limited memory ports](./docs/SDAccel_HLS_Debug.md)

SDAccel/README.md

+15-15
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ There are three simple steps for accelerating your application on an AWS F1 inst
55
2. Create an AFI
66
3. Run the FPGA accelerated application on AWS FPGA instances
77

8-
This quick start guide will use a simple "Hello World" SDAccel example to get you started
8+
This quick start guide will use a simple "Hello World" SDAccel example to get you started.
9+
10+
It is highly recommended you read the documentation and utilize software and hardware emulation prior to running on F1. The F1 HW compile time is 4-5hrs, therefore, software and hardware emulation should be used during development.
911

1012

1113
# Table of Content
@@ -39,15 +41,14 @@ This quick start guide will use a simple "Hello World" SDAccel example to get yo
3941
<a name="iss"></a>
4042
## AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)
4143
* [Setup an AWS Account](https://aws.amazon.com/free/)
42-
* Launch an [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) which comes pre-installed with SDAccel and required licenses on an F1 instance
43-
* You may use this F1 instance to [Build your Host Application and Xilinx FPGA Binary](#createapp), however, it may be more cost efficient to either:
44-
* Launch a second [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) on a lower cost EC2 instance, with a minimum of 30GiB RAM), **OR**
45-
* Follow the [On-Premises Instructions](../../hdk/docs/on_premise_licensing_help.md) to install and obtain a license from Xilinx.
46-
* 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) <!-- #TBF Is there a better guide (syntax/links to for explicitly making this update? -->
44+
* Launch an instance using the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) which comes pre-installed with SDAccel and required licenses.
45+
* You may use this F1 instance to [build your host application and Xilinx FPGA binary](#createapp), however, it may be more cost efficient to either:
46+
* Launch the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) on a lower cost EC2 instance, with a minimum of 30GiB RAM), **OR**
47+
* Follow the [On-Premises Instructions](../../hdk/docs/on_premise_licensing_help.md) to purchase and install a license from Xilinx.
48+
* 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.
4749
* [Setup AWS CLI and S3 Bucket](docs/Setup_AWS_CLI_and_S3_Bucket.md) to enable AFI creation.
48-
49-
50-
50+
* 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.
51+
* Additional dependancies may get flagged during the AWS SDAccel scripts as warnings or errors.
5152

5253
<a name="gitsetenv"></a>
5354
## Github and Environment Setup (Once per new instance or machine)
@@ -56,15 +57,14 @@ This quick start guide will use a simple "Hello World" SDAccel example to get yo
5657
* [AWS Platform](./aws_platform/xilinx_aws-vu9p-f1_4ddr-xpr-2pr_4_0) that allows Xilinx FPGA Binary files to target AWS F1 instances
5758
* [AFI Creation script](./tools/create_sdaccel_afi.sh) that generates an AFI and AWS FPGA Binary from a Xilinx FPGA Binary
5859
* [SDAccel HAL](./userspace) source code and binary files for mapping SDAccel/OpenCL runtime libraries to AWS FPGA instance.
59-
* Installing the required libraries and drivers
60+
* Installing the required libraries and drivers
6061

6162
```
6263
$ git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR
6364
$ cd $AWS_FPGA_REPO_DIR
6465
$ source sdaccel_setup.sh
6566
```
6667

67-
6868
<a name="createapp"></a>
6969
# 1. Build the host application, Xilinx FPGA binary and verify you are ready for FPGA acceleration
7070

@@ -148,7 +148,7 @@ The [create_sdaccel_afi.sh](./tools/create_sdaccel_afi.sh) script is provided to
148148
**Save the \*.awsxclbin, you will need to copy it to your F1 instance along with your executable host application.**
149149

150150
**NOTE**: *Attempting to load your FPGA Binary immediately on an F1 instance will result in an 'Invalid AFI ID' error.
151-
Please wait until you confirm the AFI is created successfully.*
151+
Please wait until you confirm the AFI has been created successfully.*
152152

153153
## Tracking the status of your registered AFI
154154

@@ -163,7 +163,7 @@ The \*_afi_id.txt file generated by the create_sdaccel_afi.sh also includes the
163163
An example AGFI ID is **`agfi-0f0e045f919413242`**.
164164

165165

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

168168
```
169169
$ aws ec2 describe-fpga-images --fpga-image-ids <AFI ID>
@@ -180,7 +180,7 @@ When AFI creation completes successfully, the output should contain:
180180

181181
If the “State” code indicates the AFI generation has "failed", the AFI creation logs can be found in the bucket location (```s3://<bucket-name>/<logs-folder-name>```) provided to create_sdaccel_afi.sh above. These will detail the errors encountered during the AFI creation process.
182182

183-
For help with AFI creation issues, see [create-fpga-image error codes](../../hdk/docs/create_fpga_image_error_codes.md)
183+
For help with AFI creation issues, see [create-fpga-image error codes](../hdk/docs/create_fpga_image_error_codes.md)
184184

185185

186186

@@ -189,7 +189,7 @@ For help with AFI creation issues, see [create-fpga-image error codes](../../hdk
189189
# 3. Run the FPGA accelerated application on F1
190190

191191
Here are the steps:
192-
* Start an F1 instance using [FPGA Developer AMI on AWS Marketplace](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ). Currently, the developer AMI is the only supported AMI for running SDAccel applications on F1.
192+
* Start an F1 instance using [FPGA Developer AMI on AWS Marketplace](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ), alternatively you can [create your own Runtime AMI](docs/Create_Runtime_AMI.md) for running your SDAccel applications on F1.
193193
* *Assuming the developer flow (compilation) was done on a separate instance you will need to:*
194194
* Copy the compiled host executable (exe) to new instance
195195
* Copy the \*.awsxclbin AWS FPGA binary file to the new instance

0 commit comments

Comments
 (0)