This course is intended for anyone interested in learning how to create FPGA-accelerated applications with SDAccel!
The more general-purpose you are, the more adaptable you are, and the more programmes and algorithms you can run on your underlying computing infrastructure. All of this is wonderful, but there is no free food, and this occurs frequently as a result of inefficiency.
This course will present several scenarios in which the workloads require more performance than even the fastest CPUs can provide. This scenario is transforming cloud and data centre architectures into accelerated computing platforms. This course will show you how to benefit from using Xilinx SDAccel to programme Amazon EC2 F1 instances. We'll demonstrate this with a working example of a computational biology algorithm.
The enormous amount of data that the algorithms must process, as well as their complexity, raised the issue of increasing the amount of computational power required to perform the computation. In this scenario, hardware accelerators proved to be effective in increasing computation speed while reducing power consumption. The Smith-Waterman algorithm is a dynamic programming algorithm used in computational biology that is guaranteed to find the optimal local alignment between two strings that could be nucleotides or proteins. In the classes that follow, we present an analysis and successive FPGA-based hardware acceleration of the Smith-Waterman algorithm, which is used to perform pairwise DNA sequence alignment.
This course focuses on distributed, heterogeneous cloud infrastructures, showing you how to use Xilinx SDAccel through working examples to bring your solutions to life using Amazon EC2 F1 instances.
1. Reconfigurable cloud infrastructure
- Course introduction
- An overview of cloud infrastructure
- Cloud Computing: few definitions
- Reconfigurable acceleration in the Cloud
- Reconfigurable acceleration in the Cloud: Intel FPGA-based solutions
- Reconfigurable acceleration in the Cloud: Xilinx FPGA-based solutions
- Reconfigurable acceleration in the Cloud: from the past, to the future
- An introduction to the AWS EC2 F1 instances
2. On how to accelerate the cloud with SDAccel
- Applicative domains and Victor's story
- F1: instances and FPGA description
- How FPGA Acceleration Works on AWS
- AWS F1 Platform Model
- Creating Kernels from RTL IP, C/C++, OpenCL
- Compiling the Platform
- Creating an Amazon FPGA Image
- Developing and Executing a Host Application on F1
- Start Accelerating
3. Summing things up: the Smith-Waterman algorithm
- Problem description
- Algorithm and code analysis
- Roofline model 1/2
- Roofline model 2/2
- Code profiling
- Static Code Analysis 1/2
- Static Code Analysis 2/2
- Performance Prediction via Roofline Model
4. (A) The Smith-Waterman example in details
- A first implementation 1/3
- A first implementation 2/3
- A first implementation 3/3
- Parallelism in the Smith-Waterman Algorithm
- Systolic Array Architecture 1/2
- Systolic Array Architecture 2/2
- Input Compression
- Shift Register
- Dual Physical Ports
- Smith-Waterman accelerated on the Amazon EC2 F1 instances 1/3
- Smith-Waterman accelerated on the Amazon EC2 F1 instances 2/3
- Smith-Waterman accelerated on the Amazon EC2 F1 instances 3/3
(B) Course conclusions
- We are working at the edge of the research in the area of reconfigurable computing. FPGA technologies are not used only as standalone solutions/platforms but are now included into cloud infrastructures. They are now used both to accelerate infrastructure/backend computations and exposed as-a-Service that can be used by anyone. Within this context we are facing the definition of new research opportunities and technologies improvements and the time cannot be better under this perspective. This module is concluding this course but posing interesting questions towards possible future research directions that may also point the students to other Coursera courses on FPGAs.