Coursera
Coursera Logo

Developing FPGA-accelerated cloud applications with SDAccel: Theory 

  • Offered byCoursera
  • Public/Government Institute

Developing FPGA-accelerated cloud applications with SDAccel: Theory
 at 
Coursera 
Overview

Duration

19 hours

Total fee

Free

Mode of learning

Online

Difficulty level

Intermediate

Official Website

Explore Free Course External Link Icon

Credential

Certificate

Developing FPGA-accelerated cloud applications with SDAccel: Theory
Table of content
Accordion Icon V3
  • Overview
  • Highlights
  • Course Details
  • Curriculum

Developing FPGA-accelerated cloud applications with SDAccel: Theory
 at 
Coursera 
Highlights

  • Shareable Certificate Earn a Certificate upon completion
  • 100% online Start instantly and learn at your own schedule.
  • Flexible deadlines Reset deadlines in accordance to your schedule.
  • Intermediate Level This course is aimed at students with prior programming experience and a desire to understand computation approaches to problem solving.
  • Approx. 19 hours to complete
  • English Subtitles: English
Read more
Details Icon

Developing FPGA-accelerated cloud applications with SDAccel: Theory
 at 
Coursera 
Course details

More about this course
  • This course is for anyone passionate in learning how to develop FPGA-accelerated applications with SDAccel!
  • We are entering in an era in which technology progress induces paradigm shifts in computing!
  • As a tradeoff between the two extreme characteristics of GPP and ASIC, we can find a new concept, a new idea of computing... the reconfigurable computing, which has combined the advantages of both the previous worlds. Within this context, we can say that reconfigurable computing will widely, pervasively, and gradually impact human lives. Hence, it is time that we focus on how reconfigurable computing and reconfigurable system design techniques are to be utilised for building applications.
  • One one hand reconfigurable computing can have better performance with respect to a software implementation but paying this in terms of time to implement. On the other hand a reconfigurable device can be used to design a system without requiring the same design time and complexity compared to a full custom solution but being beaten in terms of performance.
  • Within this context, the Xilinx SDx tools, including the SDAccel environment, the SDSoC environment, and Vivado HLS, provide an out-of-the-box experience for system programmers looking to partition elements of a software application to run in an FPGA-based hardware element, and having that hardware work seamlessly with the rest of the application running in a processor or embedded processor.
  • The out-of-the-box experience will provide interesting and, let us say, ?good enough? results for many applications.
  • However, this may not be true for you, you may be looking for better performance, data throughput, reduced latency, or to reduce the resources usage... This course is focusing exactly on this. After introducing you to the FPGAs we are going to dig more into the details on how to use Xilinx SDAccel providing you also with working examples on how to optimize the hardware logic to obtain the best of of your hardware implementations. In this case, certain attributes, directives, or pragmas, can be used to direct the compilation and synthesis of the hardware kernel, or to optimise the function of the data mover operating between the processor and the hardware logic.
  • Furthermore, In this course we are going to focus on distributed, heterogeneous infrastructures, presenting how to bring your solutions to life by using the Amazon EC2 F1 instances.
Read more

Developing FPGA-accelerated cloud applications with SDAccel: Theory
 at 
Coursera 
Curriculum

Familizarize youself with FPGA technologies

Reconfigurable Computing and FPGA technologies

FPGA-based systems and reconfiguration

Programmable System-on-Multiple Chips

Programmable System-on-Chips

FPGAs main building blocks

How to program an FPGA: bitstream and configuration

How to program an FPGA: system description and physical design

CAD Tools for FPGA-based systems design

An introuction to the SDx development environment

QUIZ 1

QUIZ 2

A bird's eye view on SDAccel

Hardware Design Flow

An introduction to SDAccel and the OpenCL-based flow

OpenCL computational model: global and local sizes

Not only OpenCL! The Rationale behind the RTL and C flows

SDAccel memory model

SDAccel "emulations"

SDAccel runtime

SDAccel Environment Programmers Guide

QUIZ 3

On how to optmize your system

Introduction

FPGA Parallelism vs Processor Architecture 1/2

FPGA Parallelism vs Processor Architecture 2/2

Scheduling, Pipelining, and Dataflow

Application Optimization Flow

SDAccel Environment Profiling and Optimisation Guide

QUIZ 4

A bird's eye view on SDAccel optimizations

Interface optimizations: Overall context and an overview of a typical target architecture

Interface optimizations: a first example

Burst data transfer

Using full AXI data width

Using multiple memory banks

SDAccel Environment Profiling and Optimisation Guide

Sources Codes

QUIZ 5

Other optimizations

Kernel optimization: loop unrolling 1/2

Kernel optimization: loop unrolling 2/2

Kernel optimization: loop pipelining

Kernel optimization: array partitioning 1/2

Kernel optimization: array partitioning 2/2

Host optimizations

SDAccel Environment Profiling and Optimisation Guide

Source Codes

QUIZ 6

FPGA-enable cloud infrastructures

An introduction to SDAccel and the AWS EC2 F1 instances

Closing remarks and future directions

A Scalable FPGA Design for Cloud N-Body Simulation

QUIZ 7

Other courses offered by Coursera

– / –
3 months
Beginner
– / –
20 hours
Beginner
– / –
2 months
Beginner
– / –
3 months
Beginner
View Other 6726 CoursesRight Arrow Icon
qna

Developing FPGA-accelerated cloud applications with SDAccel: Theory
 at 
Coursera 

Student Forum

chatAnything you would want to ask experts?
Write here...