Eeng428 Lecture 01 Introduction
Eeng428 Lecture 01 Introduction
EENG 428
ENAS 968
bit.ly/cloudfpga
Course Introduction
The course: This is a project-based course which focuses on Field Programmable Gate
Arrays (FPGAs) and their use in Cloud Computing
The goals: Main goal of the course is to teach students about FPGAs, their use in cloud
computing, security of FPGAs, as well as give a chance to work on novel, open-ended
research projects for the class
The staff: course staff for Fall 2023 are:
Instructor:
Prof. Jakub Szefer
Contact e-mail:
[email protected]
Class materials:
• Class slides posted online
• Two books used during the semester:
• Compute resources in the cloud include: CPUs, Storage, GPUs, and now FPGAs
• The resources are provided as (from NIST’s definition):
• Software as a Service (SaaS) – The capability provided to the consumer is to use the provider’s
applications running on a cloud infrastructure
• Platform as a Service (PaaS ) – The capability provided to the consumer
is to deploy onto the cloud infrastructure consumer-created
or acquired applications created using programming
languages, libraries, services, and tools supported
by the provider.
• Infrastructure as a Service (IaaS ) – The capability
provided to the consumer is to provision processing,
storage, networks, and other fundamental computing
resources where the consumer is able to deploy
and run arbitrary software
• Cloud FPGA can be considered PaaS or IaaS, CPU GPU FPGA Storage Memory
focus on his course is on IaaS or FaaS: FPGA as a Service
Genomics Analysis
• The FPGAs in cloud servers can be used to off-load and
accelerate high-performance computations, such as
video processing, genomics analysis, or machine learning
• They provide flexibility to load custom hardware
designed by users, or provided cloud providers,
or by 3rd party vendors Machine Learning
Cloud FPGA describes a cloud computing infrastructures which allow users to access
FPGA resources in the cloud, on-demand, often proving whole tool-stack for
development and deployment of their hardware designs.
• Bare-metal Cloud FPGA – access FPGA resources directly, closest to IaaS model,
can program FPGA with (almost) any hardware design users wishes
• Accelerator Cloud FPGA – access FPGA resources through some framework,
closest to PaaS model, program in high-level language, e.g. use HLS, less control
over actual FPGA hardware
PCIe
Server
FPGA boards
Share: Cloud FPGA Users
EENG 428 / ENAS 968 – Cloud Computing with FPGAs
18
bit.ly/cloudfpga © Jakub Szefer
Infrastructure of Cloud FPGAs
• Single-tenant Cloud FPGAs allow only one user to use each FPGA at a time
• Multi-tenant Cloud FPGAs allow multiple users to share an FPGA at the same time
PCIe PCIe
Server Server
Different servers share Resources
same data center can be
infrastructure: shared
networking, power, within the
cooling, etc. FPGA FPGA boards FPGA boards
Advantages:
• On-demand access to FPGA boards
• No need to buy hardware, licenses, setup software
• Access to high-end FPGAs
• UltraScale+ development board is about 7,000$
• Rent UltraScale+ from Amazon F1 for 1.65$ per hour, includes all license fees, electricity, etc.
• No need to worry about system issues (Linux, PCIe drivers, C and Python support)
Disadvantages:
• Pay-per-use, with long-term use, cheaper to buy your own hardware
• Vendor lock-in, design may be specific to one FPGA offered by one cloud provider
• But most providers use similar FPGAs and similar setups
• No physical access, or control, over FPGAs
• Security issues due to other users
Share: EENG 428 / ENAS 968 – Cloud Computing with FPGAs
20
bit.ly/cloudfpga © Jakub Szefer
Potential and Outlook for Cloud FPGAs
I/O connections
CLBs
Memory blocks
DSP blocks
Synthesis
A
2-Input
LUT 1
B
a 2-Input
O
Map LUT 3
b out
2-Input
c C LUT 2
d
D
B 2
A
C 3 2-Input
LUT 1
B
2-Input
LUT 3 O
D 1
2-Input
C LUT 2
O
D
Programmable
routing switch
• Switch boxes have wires which are connected with transistors, each can be
configured on or off:
• On: two wires are electrically connected
• Off: two wires are not connected
• Final bitstream are all the configuration bits used to specify the functionality of the FPGA
and the design that it realizes
• LUT entries are bits stored in SRAM
• Switch box configuration are bits stored in SRAM
• Memory (RAM) can be pre-initialized
• DSP and other components have configuration bits
...1010011100110000011100011011000001101001010111000110000111...
Share: EENG 428 / ENAS 968 – Cloud Computing with FPGAs Source: D. Göhringer, ACACES
39
bit.ly/cloudfpga © Jakub Szefer Summer School 2019
Tools and Languages for Programming FPGAs
Deploying hardware acceleration with FPGAs require users to first write the description of the
design, which is later synthesized to the bitstream
• VHDL (Very High Speed Integrated Circuits Hardware Description Language)
• IEEE Standard Since 1987
• Propagation: Mainly Europe
• Verilog
• IEEE Standard Since 1995
• Propagation: Mainly USA
Most FPGA tools can handle both languages (as well as others)
• Hardware effectiveness depends on the designer, not so much on language used
• Can mix modules written in different languages
Share: EENG 428 / ENAS 968 – Cloud Computing with FPGAs Source: D. Göhringer, ACACES
41
bit.ly/cloudfpga © Jakub Szefer Summer School 2019
High Level Synthesis (HLS)
Share: EENG 428 / ENAS 968 – Cloud Computing with FPGAs Source: D. Göhringer, ACACES
43
bit.ly/cloudfpga © Jakub Szefer Summer School 2019
Major FPGA Vendors and Tools
• Xilinx and Altera (now part of Intel) control majority of the market for FPGAs
• Each maintains its own design software (Vivado for Xilinx and Quartus for Intel)
• Run on Windows and Linux, Mac users need to use VMs or connect to remote server
• Can use any HDL
• Also have tools for HLS
• Other vendors, see reference [5]:
• Microsemi (now defunct)
• Microchip – low-end FPGAs, radiation-tolerant FPGAs, anitfuse FPGAs
• Lattice Semiconductor – low-power SRAM-based
• QuickLogic – extremely low powered, low density SRAM-based FPGAs
• Achronix – asynchronous FPGAs
IceStorm (http://www.clifford.at/icestorm/)
Commercial FPGA architectures
• Tools: Yosys, Arachne-pnr, and IceStorm and bititstream formats are
• Verilog-to-Bitstream flow for iCE40 FPGAs typically industry secrets,
someone has to reverse-engineer
SymbiFlow (https://symbiflow.github.io/) them to make new tools.
• Verilog-to-Bitstream FPGA synthesis flow
• Currently targeting Xilinx 7-Series, Lattice iCE40 and Lattice ECP5 FPGAs
Archipelago (https://github.com/haojunliu/OpenFPGA)
• An open source FPGA chip architecture + related tools
TinyFPGA (https://tinyfpga.com/)
• Open-source FPGA boards (use commercial FPGA chips)
1. Chen, Shih-Chun, and Yao-Wen Chang. "FPGA placement and routing." Proceedings of the 36th International Conference on
Computer-Aided Design. IEEE Press, 2017.
2. Li, Wuxi, and David Z. Pan. "A new paradigm for FPGA placement without explicit packing." IEEE Transactions on Computer-
Aided Design of Integrated Circuits and Systems(2018).
3. Li, Wuxi, Shounak Dhar, and David Z. Pan. "UTPlaceF: A routability-driven FPGA placer with physical and congestion aware
packing." IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 37.4 (2017): 869-882.
4. David F. Bacon, Rodric Rabbah, Sunil Shukla. “FPGA Programming for the Masses.” Communications of the ACM, April 2013,
Vol. 56 No. 4, Pages 56-63.
5. Wikipedia contributors. “Field-programmable gate array.” Wikipedia, The Free Encyclopedia. Available at:
https://en.wikipedia.org/w/index.php?title=Field-programmable_gate_array&oldid=909616311.