37
Cloud FPGA EENG 428 ENAS 968 bit.ly/cloudfpga

eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Cloud FPGA

EENG 428ENAS 968

bit.ly/cloudfpga

Page 2: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 2

Lecture: Intro to Cloud Computing & FPGAs

Prof. Jakub SzeferDept. of Electrical Engineering, Yale University

EENG 428 / ENAS 968Cloud FPGA

Page 3: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Welcome and Course Logistics

This is coding and project based course, there are no exams, majority of the grade comes from semester project and coding assignments. Rest of grading is based on textbook problems, few homework assignments, and attending seminars.

Course includes guest lectures by academic and industry researchers, it is required to attend the seminars. Also, it is excellent way to learn about latest advances, and possible internships.

Web page for the course is at https://caslab.csl.yale.edu/courses/EENG428 it contains:• Course information• Lecture schedule and videos of lectures• List of assignments• Information about projects

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 3

Page 4: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 4

Short Intro to Cloud Computing

Page 5: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Cloud Computing

“Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”

National Institute of Standardsand Technology (NIST), “The NIST Definition of Cloud Computing”, Special Publication 800-145, Sept. 2011

• Users or devices use compute (storage and network)resources located remotely to off-load local computation

• Need network connection, latency of connectionis sometimes important

• Remote resources are often more powerful than local compute resources

• Backed up and %99.9999… available

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 5

Icons made byhttp://free-icon-rainbow.com

Page 6: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Cloud Computing

• 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 programminglanguages, 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,focus on his course is on IaaS – FaaS: FPGA as a Service

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 6

Icons made by prettyconfrom https://flatIcon.com

CPU GPU FPGA Storage Memory

Page 7: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Cloud Computing and Virtual Machines

In the PaaS model, users have access to Virtual Machines (VM):• VM is a logical abstraction of a physical computer server• Many VMs share one physical machine• Physical resources are partitioned among the VMs on the machine, e.g., different users pay for

different types of VMs and get different amount of resources• Access to the VM is through remote connection, e.g., SSH or remote desktop

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 7Icons made by prettycon

from https://flatIcon.com

Page 8: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Cloud Computing Deployment Models

• Deployment models defined by NIST:• Private cloud – The cloud infrastructure is provisioned for exclusive use by a single organization

comprising multiple consumers (e.g., business units)• Community cloud – The cloud infrastructure is provisioned for exclusive use by a specific

community of consumers from organizations that have shared concerns• Public cloud – The cloud infrastructure is provisioned

for open use by the general public• Hybrid cloud – The cloud infrastructure is

a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability

• Focus on this course is public clouds, but sametools and ideas apply to all types of clouds

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 8

Amazon AWSXilinx

Huawei CloudXilinx

Baidu CloudXilinx

Alibaba CloudXilinx

Tencent CloudXilinx

NimbixXilinx

Alibaba CloudIntel (Altera)

OVHIntel (Altera)

Microsoft AzureIntel (Altera) TACC

Intel (Altera)

Page 9: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 9

Use of FPGAs in Cloud Computing

Page 10: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Cloud FPGAs

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

Components of Cloud FPGA:• Servers with FPGA cards• Development VMs (for writing code, simulation, testing, debug)• Deployment VMs (which interact with actual FPGAs)• Other cloud services, e.g., storage• Remote users

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 10

Focus of the rest of EENG 428(plus lots about Verilog HDL)

Page 11: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Pros and Cons of Cloud FPGAs

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

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 11

Page 12: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Outlook for FPGAs and Cloud Computing

Insights from Gartner, a global research and advisory firm:• Cloud computing is reaching plateau

of productivity in Gartner’s hype cycle, while FPGA accelerators have still few years go to

• FPGAs can deliver extreme performance and power efficiency for a growing number of workloads and are well-suited for AI inference workloads

• Programmability continues to be a major challenge, limiting broader adoption of FPGAs

• Market penetration of FPGAs:less than 5%, much room for growth(and jobs)

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 12

Page 13: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 13

Intro to FPGAs

Page 14: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

What is an FPGA?

FPGA is the Field-Programmable Gate Array• Integrated circuit made (mostly) of digital logic elements

• Flip-flops, simple logic gates, and memories (SRAM)• Can have bigger elements such as DSPs (Digital Signal Processing elements)• Can contain “Hard IP” elements, such as processor cores• Additional elements: I/O, programming logic, unique device ID (OTP fuse or PUFs), etc.

• Gate Array: basic elements are arranged as an array of unconnected elements• Before programming FPGA does not realize any particular digital logic function• Connection and function of basic elements is not specified

• Field-Programmable: function of elements and interconnections is specified during “programming” of the FPGA, in the field

• Fast prototyping of hardware circuits• Low-cost alternative to making ASIC chip (but not lower power)• Deployed in network routers, satellites, and now cloud computing data centers

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 14

Page 15: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Typical Textbook-Style FPGA Architecture

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 15

I/O: input/output cellsCLB: configurable logic blockSB: switch boxLUT: look-up tableFF: flip-flopM: memory (SRAM)

Adapted from Chen, et al. [1] and Yihang Yang

Page 16: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Typical Column-Style FPGA Architecture

I/O connections

CLBs

Memory blocks

DSP blocks

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 16

Adapted from Li, et al. [3] and Yihang Yang

Page 17: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Adapted from Li, et al. [2] and Yihang Yang

Xilinx UltraScale Example

Xilinx UltraScale architecture:• A CLB consists of 8 BLEs• Each BLE has 2 LUTs and 2 FFs• 2 FFs share the same CK and SR signal,

but CE signal can be different• 2 LUTs can be used as a 6-input LUT

or 2 smaller LUTs with distinct inputs no more than 5

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 17

CK: clockSR: set/resetCE: clock enable

Page 18: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Xilinx UltraScale Example

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 18

Adapted from Chen, et al. [1] and Yihang Yang

Clock Region: dedicated circuits for carrying clock signals, e.g., to reduce clock skew; UltraScale has 24 clocks per region, different regions can have different set of 24 clocks

Page 19: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

“Programming” an FPGA

• FPGA is the Field-Programmable Gate Array, it needs to be “programmed” to actually perform useful operation

• The hardware designs are first written or describedin a Hardware Description Language (HDL)

• Verilog• VHDL• Also, can use High-Level Synthesis (HLS) with languages

such as C

• The design is then “synthesized” or “compiled” into a bitstream that can be loaded or “programmed” ontothe FPGA chip

• Many steps (and tools) are used for the whole process,example for Xilinx is on the right

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 19

Figure from Bacon, et al. [4]

Page 20: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Synthesis and Mapping to CLBs

• Example of synthesis of simple Verilog statement and mapping to 2-input LUTs

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 20

abcd

out

2-InputLUT 1

2-InputLUT 2

2-InputLUT 3 O

A

B

C

D

Synthesis

Map

assign out = a && b && c && d

Adapted from Chen, et al. [1] and Yihang Yang

Page 21: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Computing Contents of LUTs

• Given a Boolean expression, it is converted into a truth table• The function described by the truth table (and thus the Boolean expression)

is realized by a decoder which is configured with the desired outputs from the truth table

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 21

Page 22: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Place and Route

• Example of place and route of mapped example onto physical CLBs in the FPGA fabric

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 22

2

3

1

B

C

D

O

A

2-InputLUT 1

2-InputLUT 2

2-InputLUT 3

A

B

C

D

O

Adapted from Chen, et al. [1] and Yihang Yang

Page 23: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Typical Routing in FPGAs

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 23

Programmablerouting switch

Adapted from Chen, et al. [1]and Yihang Yang

Page 24: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Routing and Switch Boxes

• 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

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 24

• Typically use SRAM cells to control the transistors’ gates:

• Store logical 1: gate on• Store logical 0: gate off

• Volatile, loose contents when power is turned off

• High-power, SRAM dissipate power to keep the transistors on or off

Page 25: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

FPGA Bitstream

• Final bitstream are all the configuration bits used to specify the functionality of the FPGAand 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

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 25

...1010011100110000011100011011000001101001010111000110000111...

Page 26: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Storage of Bitstreams in FPGAs

The bistream needs to be stored in FPGA to maintain the configurationSRAM-based• Colatile memory• Can be reprogrammed multiple times• Xilinx, Intel (formerly Altera), Lattice Antifuse-based• Non-volatile memory• Can only be programmed once• MicrosemiFlash-based• non-volatile memory• can be reprogrammed multiple times• Microsemi, Lattice

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 26Source: D. Göhringer, ACACES

Summer School 2019

But FPGA board can contain non-volatile memory and re-program the FPGA chip on boot up

Page 27: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Interfacing with FPGAs

• Part of the FPGA’s logic is used for communication with the outside world• Input and output (I/O) are need to send data to FPGA or get data back

from FPGA after processing is done• Many interface standards exist:

• Serial port, USB• Ethernet, QSFP, QSFP+, SATA• PCI Express (PCIe)• Custom

• In Cloud FPGAs, PCIe is the de-facto standardfor communication between the host serverand the FPGA board

• Send or receive data byte by byte• Send or receive data using Direct Memory Access (DMA)

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 27

PCIewires

FPGA boardServer

FPGA chip

PCIeModuleIP core

User Logic

Page 28: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

End-to-End Cloud FPGA System

A typical end result of deploying a hardwaredesign in Cloud FPGA is a system that integratesmany components:• One or more FPGAs

• Different hardware accelerators• More instances of same accelerator• …

• Other servers• Storage• Other servers with FPGAs• Web front end• …

• End users

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 28

PCIewires

FPGA boardServer

FPGA chip

PCIeModuleIP core

User Logic

OtherFPGAs

PCIewires

Otherservers

Network

Cloud FPGA Users

Network

FPGA-to-FPGAinterconnect

Page 29: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 29

FPGA Tools and Languages

Page 30: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Hardware Description Languages

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

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 30Source: D. Göhringer, ACACES

Summer School 2019

Page 31: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

High Level Synthesis (HLS)

An alternative to use of Hardware Description Language (HDL) is use of HLS tools• Design is specified in a high-level language, such as C, C++, SystemC• Designers add “annotations” or “pragmas” to help specify which parts of the the design

can run in parallel, or which can be pipelined• HLS tools convert the design into bitstream (or into HDL and then convert HDL to bitstream)Many tools exist for HLS:• Examples for commercial tools: Xilinx Vivado HLS (former Xilinx AutoESL),

Calypto, CatapultC (former Mentor Graphics Catapult C), or ImpulseC• Examples for open-source tools: ROCCC/ ROCCC 2.0, Trident, LegUpAdvantages:• No need to know HDL, faster design time, Disadvantages:• Maybe not as efficient resulting design, still need to program in “hardware like” manner

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 31Source: D. Göhringer, ACACES

Summer School 2019

Page 32: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Comparing FPGA “Programming” Methods

Programming Method Pros Cons HDL: e.g. VHDL, Verilog, SystemVerilog

• Very flexible • Hardware skills necessary High development time• Error-prone

Model-based Design: e.g. Matlab/Simulink

• High abstraction level• Library with standard components• Rapid Prototyping

• High Costs• Less flexible

HLS Tools: e.g. Xilinx Vivado HLS, Calypto, CatapultC, Impulse C

• High abstraction level• Fast design space exploration• Rapid Prototyping

• Only for IP-cores, not for a complete FPGA-Design • Quality of results (resources,performance) strongly depends on the C-code • Costs

IP-Cores • Optimized modules • High costs• Source code often not available (only netlists)

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 32Source: D. Göhringer, ACACES

Summer School 2019

Page 33: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

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 according to Wikipedia, see reference [5]:• Microsemi (previously Actel) – antifuse, flash-based, and mixed-signal FPGAs• Atmel – low-end FPGAs• Lattice Semiconductor – low-power SRAM-based• QuickLogic – extremely low powered, low density SRAM-based FPGAs• Achronix – asynchronous FPGAs, founded by Prof. Rajit Manohar, now faculty in our dept. at Yale!

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 33

Page 34: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Open-Source FPGA Resources

IceStorm (http://www.clifford.at/icestorm/)• Tools: Yosys, Arachne-pnr, and IceStorm• Verilog-to-Bitstream flow for iCE40 FPGAs

SymbiFlow (https://symbiflow.github.io/)• 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)

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 34

Commercial FPGA architectures and bititstream formats are typically industry secrets, someone has to reverse-engineer them to make new tools.

Page 35: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 35

Summary and Outlook for Cloud FPGAs

Page 36: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

Potential for Cloud FPGAs

FPGA technology is not new, but keeps advancing in recent years, with a growing market potential• FPGA designs are typically faster than software• Lower-cost alternative to making ASIC chips• Increasing trend to heterogeneous

computing: CPUs, GPUs, and now FPGAs• Biggest recent interest in leveraging FPGAs

for machine learning, as accelerators for inferenceCloud FPGAs lower barrier to entry for peopleand companies wanting to make their own hardware• On-demand access, eliminating up-front costs (have to be careful about long-term costs)• Cloud providers already have other established servicesPotential for Cloud FPGAs• Cloud FPGAs are a new and developing field• Companies using FPGAs: Amazon, Microsoft, Huawei, … all need engineers to make designs

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 36

MarketResearch.com AcademicSource: The2019-2024WorldOutlook forField-ProgrammableGateArrays(FPGA);IconGroupInternational,Inc.

Page 37: eeng428 lecture 001 intro - caslab.csl.yale.edu · Lecture: Intro to Cloud Computing & FPGAs Prof. Jakub Szefer Dept. of Electrical Engineering, Yale University EENG 428 / ENAS 968

Share:bit.ly/cloudfpga

References

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.

EENG 428 / ENAS 968 – Cloud FPGA© Jakub Szefer, Fall 2019 37