We may earn an affiliate commission when you visit our partners.
Course image
Marco Domenico Santambrogio

This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel!

Read more

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.

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.

Enroll now

What's inside

Syllabus

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.
Read more
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.
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.
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Maps well with professional skill development and personal growth and development
Helps learners develop professional expertise
Taught by Marco and Domenico who are distinguished for their leadership in FPGA acceleration
Provides a strong foundation for beginners in FPGA-accelerated applications
Exploits Xilinx SDAccel, which is standard in cloud computing acceleration

Save this course

Save Developing FPGA-accelerated cloud applications with SDAccel: Practice to your list so you can find it easily later:
Save

Reviews summary

Recommended fpga acceleration course

Students largely enjoyed clear, engaging explanations and say this excellent course provides complementary information for further learning. However, one learner hoped for more hands-on and demonstration in the materials.
This course provided clear explanations.
"The explanations are clear and engaging."
"Excellent!! I enjoyed a lot! It was complementary information for my PhD! Thank you! "
This course could benefit from more hands-on learning.
"Expected more demonstration and maybe hands-on SDAccel"
"Good to learn a new course if it would be more hands-on would have much interesting."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Developing FPGA-accelerated cloud applications with SDAccel: Practice with these activities:
Complete five practice projects from SDAccel's online documentation
SDAccel provides lots of examples in their documentation. These will give you the chance to execute their examples and modify them to learn the intricacies.
Browse courses on FPGA
Show steps
  • Locate the SDAccel documentation online and navigate to their examples section
  • Locate at least five projects that are interesting to you
  • Do an initial pass of each example, line by line, to understand the flow
  • Implement these five projects on your local machine
  • Tweak the parameters to see how the different values affect the outcome
Engage in one of the tutorials on the Xilinx website
Xilinx provides a solid number of tutorials that you can leverage to improve your understanding of the course materials.
Show steps
  • Identify areas of weakness in your understanding of the course materials
  • Navigate to Xilinx's website and search for tutorials on the topic
  • Choose a tutorial that corresponds with the concept you are struggling with
  • Take the tutorial and attempt all the exercises
  • If necessary, repeat the steps to take additional tutorials
Read through and summarize 'High-Performance Computing on the Intel Xeon Phi'
This book provides a deep dive into the topic of accelerated computing. It can teach you about the underlying concepts as well as provide practical demonstrations.
Show steps
  • Purchase a copy of the book
  • Devote at least one hour each day to read the book
  • Summarize each chapter in your own words
  • Identify areas of the book that you are struggling with
  • Seek out additional resources to help you understand the difficult concepts
Five other activities
Expand to see all activities and additional details
Show all eight activities
Accelerate Cloud Computing with Xilinx SDAccel Workshop
Attend a workshop to learn how to use Xilinx SDAccel to accelerate cloud computing workloads.
Browse courses on Cloud Computing
Show steps
  • Register for the Xilinx SDAccel Workshop.
  • Attend the workshop and follow the tutorials.
  • Complete the hands-on exercises.
Implement FPGA Kernels Using Amazon EC2 F1 Instances
Practice implementing FPGA kernels using Amazon EC2 F1 instances to solidify your understanding of accelerated computing on cloud platforms.
Show steps
  • Set up your development environment with Xilinx SDAccel.
  • Create a new FPGA kernel project.
  • Implement the FPGA kernel.
  • Compile the kernel and create the FPGA image.
  • Deploy the kernel to an Amazon EC2 F1 instance and test its performance.
Build a High-Performance FPGA-Accelerated Application
Create a high-performance FPGA-accelerated application to demonstrate your skills and understanding of the course material.
Show steps
  • Identify a suitable application for FPGA acceleration.
  • Develop an algorithm and design the FPGA architecture.
  • Implement the FPGA design using Xilinx SDAccel.
  • Optimize the application for performance.
  • Evaluate the application's performance and compare it to other implementations.
Build a presentation summarizing the benefits and challenges of using FPGAs for accelerated computing
This activity will force you to research the topic of FPGA-based accelerated computing and craft a convincing presentation to your peers.
Browse courses on FPGA
Show steps
  • Gather information about the benefits and challenges of FPGAs for accelerated computing
  • Organize the information into a logical flow
  • Consider various presentation formats
  • Determine the appropriate multimedia for the presentation
  • Deliver a presentation
Volunteer at a local tech organization or open source project
This will immerse you in the field of accelerated computing and allow you to network with experts in the industry.
Browse courses on FPGA
Show steps
  • Identify a local tech organization or open source project that aligns with your interests
  • Reach out to the organization or project and inquire about volunteer opportunities
  • Attend volunteer training or onboarding sessions
  • Actively participate in the organization or project's activities
  • Network with other volunteers and industry professionals

Career center

Learners who complete Developing FPGA-accelerated cloud applications with SDAccel: Practice will develop knowledge and skills that may be useful to these careers:
FPGA Engineer
FPGA Engineers are experts in developing and designing hardware using FPGA (Field-Programmable Gate Array) technology. They use their knowledge of computer architecture and digital design to create custom hardware solutions for various industries like aerospace, defense, and telecommunications. This course provides a comprehensive overview of FPGA design and implementation using SDAccel, which can equip you with the skills and knowledge needed to succeed as an FPGA Engineer.
Hardware Accelerator Architect
Hardware Accelerator Architects design and develop hardware accelerators to enhance the performance of computing systems. They work on optimizing hardware architectures and algorithms to accelerate specific computations. This course provides a solid foundation in FPGA-based hardware acceleration using SDAccel, which can be valuable for individuals aspiring to become Hardware Accelerator Architects.
Cloud Architect
Cloud Architects design, build, and manage cloud computing solutions. They possess expertise in cloud platforms, distributed systems, and virtualization technologies. This course provides insights into cloud computing architectures and the use of FPGA acceleration in the cloud, which can be beneficial for Cloud Architects looking to enhance their skills in cloud-based hardware acceleration.
Data Scientist
Data Scientists use their knowledge of statistics, machine learning, and data analysis techniques to extract insights from large datasets. This course provides an introduction to FPGA-accelerated data processing using SDAccel, which can be helpful for Data Scientists seeking to leverage hardware acceleration for their data-intensive workloads.
Computational Biologist
Computational Biologists apply computational methods to analyze and interpret biological data. They use their expertise in bioinformatics, computer science, and mathematics to solve problems related to genomics, proteomics, and other areas of biology. This course focuses on FPGA-accelerated implementations of the Smith-Waterman algorithm, a fundamental algorithm in bioinformatics. It can provide valuable insights for Computational Biologists interested in leveraging hardware acceleration for their research.
Computer Architect
Computer Architects design and develop the hardware and software architectures of computer systems. They work on optimizing system performance, energy efficiency, and reliability. This course provides a foundation in reconfigurable computing and FPGA-based hardware acceleration, which can be beneficial for Computer Architects seeking to explore new approaches to computer architecture.
Software Engineer
Software Engineers design, develop, and maintain software applications. They work on various aspects of software development, including coding, testing, debugging, and deployment. This course provides an overview of FPGA-based hardware acceleration and its integration with software applications using SDAccel. It can be useful for Software Engineers interested in exploring hardware acceleration techniques to enhance the performance of their software systems.
Systems Engineer
Systems Engineers are responsible for designing, developing, and integrating complex systems involving hardware, software, and networks. They work on ensuring system functionality, reliability, and performance. This course provides insights into the use of FPGA-based hardware acceleration in distributed systems and cloud computing environments. It can be beneficial for Systems Engineers looking to gain expertise in hardware acceleration for system-level design.
Embedded Systems Engineer
Embedded Systems Engineers design and develop embedded systems, which are computer systems embedded within larger mechanical or electrical systems. They work on optimizing system performance, memory usage, and power consumption. This course provides an introduction to FPGA-based hardware acceleration in the context of embedded systems. It can be useful for Embedded Systems Engineers interested in exploring hardware acceleration techniques to enhance the capabilities of their embedded systems.
Research Scientist
Research Scientists conduct research in various scientific disciplines, including computer science, engineering, and natural sciences. They work on developing new theories, models, and technologies. This course provides an overview of FPGA-based hardware acceleration and its potential applications in scientific research. It can be beneficial for Research Scientists seeking to explore hardware acceleration as a tool for their research endeavors.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, white papers, and training materials. They work on conveying complex technical information to a wider audience. This course provides an understanding of FPGA-based hardware acceleration and its use in various applications. It can be beneficial for Technical Writers seeking to gain expertise in hardware acceleration for effective technical writing in this field.
Technical Product Manager
Technical Product Managers are responsible for managing the development and marketing of technical products. They work on defining product requirements, setting development roadmaps, and launching products to market. This course provides insights into the use of FPGA-based hardware acceleration in various industries and applications. It can be valuable for Technical Product Managers seeking to gain knowledge in hardware acceleration for developing and managing innovative technical products.
Business Analyst
Business Analysts work on understanding business needs and translating them into technical requirements. They work with stakeholders to define project scope, analyze data, and develop solutions. This course provides an overview of the business value of FPGA-based hardware acceleration and its potential impact on various industries. It can be beneficial for Business Analysts seeking to gain insights into hardware acceleration for effective business analysis and decision-making.
Project Manager
Project Managers are responsible for planning, executing, and controlling projects. They work on ensuring project success by managing resources, timelines, and budgets. This course provides an understanding of the role of FPGA-based hardware acceleration in project development and implementation. It can be useful for Project Managers seeking to gain knowledge in hardware acceleration for effective project management in this field.
Quality Assurance Engineer
Quality Assurance Engineers are responsible for ensuring the quality of software and hardware products. They work on testing, debugging, and verifying product functionality. This course provides an overview of techniques for testing and debugging FPGA-based hardware acceleration systems. It can be beneficial for Quality Assurance Engineers seeking to gain expertise in hardware acceleration for effective quality assurance in this field.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Developing FPGA-accelerated cloud applications with SDAccel: Practice.
Offers an in-depth exploration of advanced FPGA design techniques. Covers topics like FPGA architectures, logic synthesis, and physical design.
Provides a foundational understanding of reconfigurable computing principles and their applications. Explores topics like FPGA architecture, design tools, and case studies.
Provides a solid foundation in parallel programming concepts and techniques. Covers essential concepts like parallelism, concurrency, and synchronization.
Offers a thorough exploration of cloud computing principles, systems, and applications. Covers topics like cloud computing models, virtualization techniques, and cloud security.
Offers a comprehensive overview of cloud computing concepts, technologies, and applications. It delves into topics like virtualization, distributed systems, and cloud security.
Offers a thorough exploration of cloud computing concepts, technologies, and architectures. Covers topics like cloud service models, deployment models, and cloud security.
Provides a comprehensive overview of high-performance computing architectures and systems. Covers topics like parallel processing, memory hierarchies, and interconnection networks.
Provides a comprehensive overview of distributed and cloud computing concepts and technologies. Covers topics like distributed systems, cloud computing architectures, and big data analytics.
Offers a practical guide to data-intensive text processing using MapReduce. Covers topics like data preprocessing, natural language processing, and machine learning.
Provides a practical guide to bioinformatics algorithm design and implementation in Python. Covers topics like sequence analysis, genome assembly, and phylogenetic analysis.
Offers practical guidance on FPGA prototyping using SystemVerilog. Covers aspects like design entry, simulation, verification, and implementation.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Developing FPGA-accelerated cloud applications with SDAccel: Practice.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser