Developing FPGA-accelerated cloud applications with SDAccel: Practice (Coursera)

Offered by Politecnico di Milano,
Developing FPGA-accelerated cloud applications with SDAccel: Practice (Coursera)

This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel! The more general purpose you are, the more flexible you are and the more kinds of programs and algorithms you can execute on your underlying computing infrastructure. All of this is terrific, but there is no free food and this is happening, quite often, by losing in efficiency.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

This course will present several scenarios where the workloads require more performance than can be obtained even by using the fastest CPUs. This scenario is turning cloud and data center architectures toward accelerated computing. Within this course, we are going to show you how to gain benefits by using Xilinx SDAccel to program Amazon EC2 F1 instances. We are going to do this through a working example of an algorithm used in computational biology.
The huge amount of data the algorithms need to process and their complexity raised the problem of increasing the amount of computational power needed to perform the computation. In this scenario, hardware accelerators revealed to be effective in achieving a speed-up in the computation while, at the same time, saving power consumption. Among the algorithms used in computational biology, the Smith-Waterman algorithm is a dynamic programming algorithm, guaranteed to find the optimal local alignment between two strings that could be nucleotides or proteins. In the following classes, we present an analysis and successive FPGA-based hardware acceleration of the Smith-Waterman algorithm used to perform pairwise alignment of DNA sequences.
Within this context, this course is focusing on distributed, heterogeneous cloud infrastructures, providing you details on how to use Xilinx SDAccel, through working examples, to bring your solutions to life by using the Amazon EC2 F1 instances.

Syllabus

WEEK 1
Reconfigurable cloud infrastructure
Distributed systems, data center and cloud architectures are facing the exponential growth in computing requirements and the impossibility for CPU-based solutions to keep pace. Within this context these complex distributed systems have to move toward accelerated computing. Accelerators complement CPU-based architectures and deliver both performance and power efficiency. Moreover, modern data center, as we know, can be used by several different users to serve different workloads and the idea of having an underlying architecture built on reconfigurable technologies seems to provide an ideal fit for these changing, demanding, workloads. This module provides a description of the main cloud computing components and technologies, as well as detailing the current technologies to accelerate cloud computing workloads.

WEEK 2
On how to accelerate the cloud with SDAccel
Within this module we are going to have a first taste on how to gain the best out of the combination of the F1 instances with SDAccel providing some few practical instructions on how to develop accelerated applications on Amazon F1 by using the Xilinx SDAccel development environment. Then, we are going to present what it is necessary to create FPGA kernels, assemble the FPGA program and to compile the Amazon FPGA Image, or AFI. Finally, we will describe the steps and tasks involved in developing a host application accelerated on the F1 FPGA.

WEEK 3
Summing things up: the Smith-Waterman algorithm
Within this module we are going to introduce you to the Smith-Waterman algorithm that we have chosen to demonstrate how to create a hardware implementation of a system based on FPGA technologies using the Xilinx SDAccel design framework. We are going to dig into the details of the algorithm from its data structures to the computation flow. Then we are going to introduce the Roofline model and we are going to use it to analyze the theoretical peak performance and the operational intensity of the Smith-Waterman algorithm.

WEEK 4
The Smith-Waterman example in details
Within this module we are going to dig deeper in the Smith-Waterman algorithm. We are going to implement a first version of the algorithm on a local server with the Xilinx SDAccel design framework. Then we are going to introduce some optimizations to improve performance, in particular we will add more parallelism in the implementation and we will introduce systolic arrays. Moreover, we will explore how we can perform data compression and then we will leverage multiple memory ports to improve memory access speed. Finally, we are going to port our implementation of the Smith-Waterman algorithm on the AWS F1 instances.
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.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Microprocessors (edX) EdX
Arm Education,ArmEducationX

Introduction to Microprocessors (edX)

An introduction to computer architecture, microprocessors and CPUs. Learn about the basic components of a PC, what they do, how they talk to each other and how object code gets transformed into machine code. The topics covered by this course are key to anyone interested in computer hardware engineering but also an essential foundation for software programming.

Self Paced
Self-Paced
Developing FPGA-accelerated cloud applications with SDAccel: Practice (POK) Polimi OPEN KNOWLEDGE
Politecnico di Milano

Developing FPGA-accelerated cloud applications with SDAccel: Practice (POK)

This course, which is the fourth one of a “series”, is for anyone passionate about practicing how to develop FPGA-accelerated applications with SDAccel. This course will present several scenarios where the workloads require more performance than can be obtained even by using the fastest CPUs. This scenario is turning cloud and data center architectures toward accelerated computing.

Available
5-12 Weeks
Electrónica Digital Bit a Bit: Aprendiendo fundamentos (Coursera) Coursera
Pontificia Universidad Católica de Chile

Electrónica Digital Bit a Bit: Aprendiendo fundamentos (Coursera)

Es desafiante y hasta atemorizante entender un circuito digital cuando observamos la cantidad de transistores que puede contener, y aún más difícil diseñarlo eficientemente para su implementación en un circuito integrado o una FPGA. Sin embargo, saber diseñar circuitos digitales simples nos abre las puertas para diseñar sistemas digitales más complejos a partir de estos.

Jun 22nd 2026
5-12 Weeks
FPGA computing systems: Partial Dynamic Reconfiguration (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: Partial Dynamic Reconfiguration (Coursera)

INTRONew application domains demand ever increasing adaptability and performance. In order to cope with changing user requirements, improvements in system features, changing protocol and data-coding standards, and demands for support of a variety of different user applications, many emerging applications in communication, computing and consumer electronics demand that their functionality stays flexible after the system has been manufactured. Reconfigurable Systems-on-a-Chips (SoCs) employing different microprocessor cores and different types of reconfigurable fabrics are one attractive solution for these domains.

Jun 15th 2026
4 Weeks
High Performance Computer Architecture (Udacity) Udacity
Georgia Institute of Technology,Udacity

High Performance Computer Architecture (Udacity)

The course begins with a lesson on performance measurement, which leads to a discussion on the necessity of performance improvement. Pipelining, the first level of performance refinement, is reviewed. The weaknesses of pipelining will be exposed and explored, and various solutions to these issues will be studied. The student will learn hardware, software, and compiler based solutions to these issues.

Self Paced
Self-Paced
Fondamenti di informatica (Federica Web Learning) Federica Web Learning
University of Naples Federico II

Fondamenti di informatica (Federica Web Learning)

Il mondo moderno è sempre più dipendente dall’Informatica e conoscerne i fondamenti e le relative applicazioni risulta essenziale per comprendere il funzionamento degli attuali Sistemi di Elaborazione delle Informazioni, oramai diffusi nei contesti più disparati ed imprescindibili per molte delle attività della nostra vita quotidiana. Il corso di Fondamenti di Informatica si propone di fornire ai discenti le nozioni preliminari alla base dell’informatica, ed in particolare quelle relative al trattamento delle informazioni mediante procedure “automatizzabili”.

No sessions available
13-24 Weeks
How Computers Work: Demystifying Computation (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

How Computers Work: Demystifying Computation (FutureLearn)

Explore the fundamentals of computing - computer architecture, binary logic, data processing, circuits, and more. Understand computation, the basis of every computer system. On this course, you’ll gain an understanding of how computers work at a fundamental level.

Jan 2nd 2023
4 Weeks
Energy Efficient Programming (openHPI) OpenHPI
Hasso-Plattner-Institut

Energy Efficient Programming (openHPI)

Efficiency in computer science often refers to the runtime or memory usage, that a certain algorithm needs to produce an output. However, efficiency can also describe the amount of energy, that is consumed by the hardware during the runtime of an algorithm. This course explains the relevant computer architecture components, as well as different coding techniques, that allow computer scientists to design and program energy efficient algorithms.

Mar 27th 2023
2 Weeks
FPGA Softcore Processors and IP Acquisition (Coursera) Coursera
University of Colorado Boulder

FPGA Softcore Processors and IP Acquisition (Coursera)

This course will introduce you to all aspects of development of Soft Processors and Intellectual Property (IP) in FPGA design. You will learn the extent of Soft Processor types and capabilities, how to make your own Soft Processor in and FPGA, including how to design the hardware and the software for a Soft Processor. You will learn how to add IP blocks and custom instructions to your Soft Processor.

Jun 22nd 2026
4 Weeks