課程信息
1,807 次近期查看

100% 在線

立即開始,按照自己的計劃學習。

可靈活調整截止日期

根據您的日程表重置截止日期。

中級

This course is aimed at students with prior programming experience and a desire to understand computation approaches to problem solving.

完成時間大約為12 小時

建議:4-10 hours/week...

英語(English)

字幕:英語(English)

您將獲得的技能

Programming PrinciplesComputer ArchitectureProgramming Language Concepts

100% 在線

立即開始,按照自己的計劃學習。

可靈活調整截止日期

根據您的日程表重置截止日期。

中級

This course is aimed at students with prior programming experience and a desire to understand computation approaches to problem solving.

完成時間大約為12 小時

建議:4-10 hours/week...

英語(English)

字幕:英語(English)

教學大綱 - 您將從這門課程中學到什麼

1
完成時間為 2 小時

Familizarize youself with FPGA technologies

From the mid-1980s, reconfigurable computing has become a popular field due to the FPGA technology progress. An FPGA is a semiconductor device containing programmable logic components and programmable interconnects but no instruction fetch at run time, that is, FPGAs do not have a program counter. In most FPGAs, the logic components can be programmed to duplicate the functionality of basic logic gates or functional Intellectual Properties (IPs). FPGAs also include memory elements composed of simple flip-flops or more complex blocks of memories. Hence, FPGA has made possible the dynamic execution and configuration of both hardware and software on a single chip. This module provides a detailed description of FPGA technologies starting from a general description down to the discussion on the low-level configuration details of these devices, to the bitstream composition and the description of the configuration registers.

...
9 個視頻 (總計 57 分鐘), 2 個測驗
9 個視頻
FPGA-based systems and reconfiguration4分鐘
Programmable System-on-Multiple Chips7分鐘
Programmable System-on-Chips4分鐘
FPGAs main building blocks7分鐘
How to program an FPGA: bitstream and configuration5分鐘
How to program an FPGA: system description and physical design7分鐘
CAD Tools for FPGA-based systems design6分鐘
An introuction to the SDx development environment9分鐘
2 個練習
QUIZ 140分鐘
QUIZ 230分鐘
2
完成時間為 3 小時

A bird's eye view on SDAccel

The Xilinx SDAccel Development Environment let the user express kernels in OpenCL C, C++ and RTL (as an example we can think of, SystemVerilog, Verilog or VHDL) to run on Xilinx programmable platforms. The programmable platform is composed of (1) the SDAccel Xilinx Open Code Compiler (XOCC), (2) a Device Support Archive (DSA) which describes the hardware platform, (3) a software platform, (4) an accelerator board, and5. last but not least, the SDAccel OpenCL runtime. Within this module, after an introduction to OpenCL, we are going to see how this language has been sued in SDAccel and the main "components" of this toolchain.

...
7 個視頻 (總計 37 分鐘), 1 個閱讀材料, 1 個測驗
7 個視頻
An introduction to SDAccel and the OpenCL-based flow5分鐘
OpenCL computational model: global and local sizes4分鐘
Not only OpenCL! The Rationale behind the RTL and C flows5分鐘
SDAccel memory model5分鐘
SDAccel "emulations"5分鐘
SDAccel runtime4分鐘
1 個閱讀材料
SDAccel Environment Programmers Guide2小時
1 個練習
QUIZ 330分鐘
3
完成時間為 3 小時

On how to optmize your system

Within this module, Before getting into the optimisation, we will first understand how an FPGA is working, also from a computational point of view. Although the traditional FPGA design flow is more similar to a regular IC than a processor, an FPGA provides significant cost advantages in comparison to an IC development effort and offers the same level of performance in most cases. Another advantage of the FPGA when compared to the IC is its ability to be dynamically reconfigured. This process, which is the same as loading a program in a processor, can affect part or all of the resources available in the FPGA fabric. When compared with processor architectures, the structures that comprise the FPGA fabric enable a high degree of parallelism in application execution. The custom processing architecture generated by SDAccel for an OpenCL kernel presents a different execution paradigm. This must be taken into account when deciding to port an application from a processor to an FPGA. To better understand such a scenario we will briefly compare a processor sequential execution with the intrinsic parallel nature of an FPGA implementation. Furthermore, within this module we are going to familiarise ourselves with the application optimisation flow.The Xilinx SDAccel Environment is a complete Software Development Environment, for creating, compiling, and optimising OpenCL applications with the objective of being accelerated on Xilinx FPGAs. From a designer perspective we can organise the flow for optimising an application in the SDAccel Environment as a three phases flow. Those three phases are: (1) baselining functionalities and performance, (2) optimising data movement and (3) optimising kernel computation

...
5 個視頻 (總計 37 分鐘), 1 個閱讀材料, 1 個測驗
5 個視頻
FPGA Parallelism vs Processor Architecture 1/27分鐘
FPGA Parallelism vs Processor Architecture 2/28分鐘
Scheduling, Pipelining, and Dataflow8分鐘
Application Optimization Flow6分鐘
1 個閱讀材料
SDAccel Environment Profiling and Optimisation Guide1 小時 30 分
1 個練習
QUIZ 430分鐘
完成時間為 5 小時

Optimize your system via SDAccel

In this module we will provide a bird's eye view on the available SDAccel optimisations. The presented optimisations are not the only available ones, but they are more a list of recommendations to optimise the performance of an OpenCL application that have to be used as a starting point for ideas to consider or investigate further. Within this context we will organise these “recommendations” in three sets of optimisations: (1) arithmetic optimisations, (2) data-related optimisations, and finally (3) memory-related optimisations.

...
6 個視頻 (總計 34 分鐘), 2 個閱讀材料, 1 個測驗
6 個視頻
Interface optimizations: Overall context and an overview of a typical target architecture6分鐘
Interface optimizations: a first example5分鐘
Burst data transfer3分鐘
Using full AXI data width4分鐘
Using multiple memory banks3分鐘
2 個閱讀材料
SDAccel Environment Profiling and Optimisation Guide2小時
Sources Codes1 小時 30 分
1 個練習
QUIZ 530分鐘
4
完成時間為 4 小時

Other optimizations

After an overall description of possibile optimisations, within this module we will focus on four specific optimisations (1) loop unrolling, (2) loop pipelining, (3) array partitioning and (4) the host optimisations. First, we will describe loop unrolling which means to unroll the loop iterations so that, the number of iterations of the loop reduces, and the loop body performs extra computation. This technique allows to expose additional instruction level parallelism that Vivado HLS can exploit to implement the final hardware design. After that we will present the loop pipelining optimisation, where we will move from a sequential execution of the loop iterations to a pipelined execution in which the loop iterations are overlapped in time. After that we will present the array partitioning optimisation which allows to optimise the usage of BRAM resources in order to improve the performance of the kernel. Finally, at the end of this module we are going to discuss optimisations related to the host system that is responsible for transferring the data to and from the FPGA board, as well as to send the command to start the execution of a kernel.

...
6 個視頻 (總計 43 分鐘), 2 個閱讀材料, 1 個測驗
6 個視頻
Kernel optimization: loop unrolling 2/26分鐘
Kernel optimization: loop pipelining9分鐘
Kernel optimization: array partitioning 1/28分鐘
Kernel optimization: array partitioning 2/27分鐘
Host optimizations5分鐘
2 個閱讀材料
SDAccel Environment Profiling and Optimisation Guide1 小時 30 分
Source Codes1 小時 30 分
1 個練習
QUIZ 630分鐘
完成時間為 3 小時

An introduction to FPGA-augmented cloud infrastructures

...
3 個視頻 (總計 14 分鐘), 1 個閱讀材料, 1 個測驗
3 個視頻
An introduction to SDAccel and the AWS EC2 F1 instances8分鐘
Closing remarks and future directions1分鐘
1 個閱讀材料
A Scalable FPGA Design for Cloud N-Body Simulation2小時
1 個練習
QUIZ 720分鐘

講師

Avatar

Marco Domenico Santambrogio

Associate Professor
DEIB - Dept. of Electronics, Information and Bioengineering

關於 米兰理工大学

Politecnico di Milano is a scientific-technological University, which trains engineers, architects and industrial designers. From 2014 Politecnico di Milano started the release of several MOOCs, developed by the service for digital learning METID (Methods and Innovative Technologies for Learning), giving everybody the chance to enhance personal skills....

常見問題

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您购买证书后,将有权访问所有课程材料,包括评分作业。完成课程后,您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

還有其他問題嗎?請訪問 學生幫助中心