Introduction | 1. Connecting to your F1 instance | 2. Developing an Application using SDAccel GUI | 3. Developing F1 applications | 4. Host Code Optimization | 5. Wrapping-up |
Welcome to the re:Invent 2018 Developer Workshop. During this session you will gain hands-on experience with AWS F1 and learn how to develop accelerated applications using the AWS F1 Software Defined Accelerator Development- SDAccel flow.
The architecture of the AWS F1 platform and the SDAccel development flow are pictured below:
- Amazon EC2 F1 is a compute instance combining Intel CPUs with Xilinx FPGAs. The FPGAs are programmed with custom accelerators which can accelerate complex workloads up to 100x when compared with servers that use CPUs alone.
- An F1 application consists of an x86 executable for the host application and an FPGA binary (also referred to as Amazon FPGA Image or AFI) for the custom hardware accelerators. Communication and data movement between the host application and the accelerators are automatically managed by the XRT runtime.
- Software Defined Accelerator Development- SDAccel is the development environment used to create applications accelerated on the F1 instance. It comes with a fully fledged IDE, x86 and FPGA compilers, profiling and debugging tools.
- The host application is written in C or C++ and uses the OpenCL APIs to interact with the accelerated functions on the FGPA. The accelerated functions (also referred to as kernels) can be written in C, C++, OpenCL or even RTL.
This developer workshop is divided in 4 modules. It is recommended to complete each module before proceeding to the next.
- Connecting to an F1 instance
You will start an EC2 F1 instance based on the FPGA developer AMI and connect to it using a remote desktop client. Once connected, you will confirm you can execute a simple application on F1. - Developing an Application using SDAccel GUI
You will learn about creating a project workspace using SDAccel GUI and its layout. You will learn how to run software & hardware emulation flow, profile and how to debug an example application using SDAccel GUI. Finally you will build the application on hardware and execute it on AWS F1 Instance. - Developing and optimizing F1 applications with SDAccel
You will use the SDAccel development environment to create and optimize an F1 accelerator. The workshop focuses on the 2D video frame Filter, a compute intensive function which is widely used in image processing. - Optimizing host code
You will experiment with profiling & debug tools to optimize host code to enhance your application. - Wrap-up and next steps
Explore next steps to continue your F1 experience after the re:Invent 2018 Developer Workshop.
Since building FPGA binaries is not instantaneous, all the modules of this Developer Workshop will use precompiled FPGA binaries.
Start the next module: 1. Connecting to your F1 instance