Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS...

16
Enabling Programmable Logic in the Cloud Kimon Karras 27/10/2015

Transcript of Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS...

Page 1: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Enabling Programmable Logic in the Cloud

Kimon Karras

27/10/2015

Page 2: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Overcoming the scaling wall

• Performance improvements through HW has all but stalled.

• Multiple ways out of this have been proposed:• Heterogeneity is always a key element.

• Programmable logic shows impressive performance & power consumption benefits in a multitude of applications.

Page 3: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

FPGA Performance Benefits

• Microsoft Catapult

• Baidu DNN acceleration

Page 4: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Hurdles & Caveats

• FPGAs can yield impressive performance benefits for many workloads but…

• Long and difficult development• Lack of appropriate binding into the existing cloud infrastructure

• Goal: Enable users to leverage programmable logic to speed up their application in a cloud environment

Page 5: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Making FPGAs Cloud-ready

FPGA SoC

Embedded Linux

OpenStackWorker

Static Area

PCAP

AXI DMA

DevC Modifiedlibvirt

Processing System

HW VM(Dynamic Area)

HW Monitoring

HW VMAXI Interconnet

Network I/F

Monitoring Component

• Development time reduction: Provide a ready-made, configurable platform (also know as the doughnut)

• Cloud integration: Through our Openstack platform

Page 6: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

FPGA 101

6

Page 7: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

FPGA Realities & Challenges

7

• FPGAs are fundamentally different than processors:– No hypervisor exists.– Programmed by “bitstreams”.

• Bitstreams are different than SW binaries in fundamental ways:1. They are completely device dependent.2. They are immutable in space.3. They take time to generate (several hours is the norm)

• This creates significant limitations when deploying a “VM” on an FPGA.

Full Configuration Partial Configuration

Static Area

DynamicArea

Page 8: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

HW Platform Overview

FPGA SoC

SDN Controller

Cloud Controller

OpenStack Neutron

VIMProcessing System

Linux

Static Area

OpenStackWorker HW

VM

SW stack consists of a Linux OS running a

modified OpenStack Agent

Static Area consists of the necessary infrastructure to

receive the image & perform PR

Dynamic area is where the VNFC

is deployed

Network data goes directly into the PS

• Design decisions:• FPGA is “single-tenant”• Only “pure” HW VNFCs are supported

Page 9: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

HW Platform Deep Dive

FPGA SoC

SDN Controller

Cloud Controller

OpenStack Neutron

VIM

Embedded Linux

OpenStackWorker

Static Area

PCAP

AXI DMA

DevC Modifiedlibvirt

Processing System

HW VM(Dynamic Area)

HW Monitoring

HW VMAXI Interconnet

Network I/F

Monitoring Component

Connection to other VNFCs

HW/SW monitoring component

High-performance AXI interconnect infrastructure

OpenStack Sub-system

DevC is the linux driver for PCAP which access the actual reconfiguration

memory

Page 10: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

HW VNFC Deployment

FPGA SoC

SDN Controller

Cloud Controller

OpenStack Neutron

VIM

Embedded Linux

OpenStackWorker

Static Area

PCAP

AXI DMA

DevC Modifiedlibvirt

Processing System

HW VM(Dynamic Area)

HW Monitoring

HW VMAXI Interconnet

Network I/F

Monitoring Component

Connection to other VNFCs

Page 11: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

OpenStack Integration

• FPGA works as a compute node• Deploy Worker-only services

• Absence of supported hypervisor → modified nova-compute and scheduler services expose FPGA resources

• Scheduler modified to query & identify FPGA resources.

• Glance image service is used to store the bitstream implementing various „flavors“ of the VNFC.

Page 12: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Orchestration Integration

• Enabling FPGAs as IaaS means enabling their use in Orchestration platforms

• This work is currently being done in the FP7 T-Nova project.

• This work involves providing the appropriates API in the FPGA & adding descriptor support as needed.

Page 13: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Current Status & Future Steps

• First working FPGA SoC-based prototype on a Xilinx Zynqdevoplment board.

• Demonstrates system functionality and performance.

• Engaging with potential customers & looking for additional funding to further development:

1. Design custom system board2. Extend platform capabilities (more peripheral support)

L167.65mm x H68.90mmm

Page 14: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Demo Plan

• Two-pronged approach to demonstrate value proposition:• Stand-alone deployment of a service to the FPGA SoC over OpenStack

• Complete integration with Orchestration framework in a data centerenvironment

FPGA SoC

VIM

Processing System

Linux

Static Area

OpenStackAgent

HW

VM

OrchestratorVNF

Image Repository

Integrated Demo

VIM

Processing System

Linux

Static Area

OpenStackAgent

HW

VM

Stand-alone Demo

• FPGA-compatible

VNFD• Supported

image format

• Maintain I/F compatibility

when adapting OpenStack

• Correct resource identification

• Middeware API

Page 15: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

Summary

• Programmable logic can help overcome current performance issues.

• However, considerable issues exist.

• Programmable Cloud Platform addresses these issues by exposing an FPGA as one more compute resource in a standard cloud environment.

Page 16: Enabling Programmable Logic in the CloudOpenStack Worker HW VM SW stack consists of a Linux OS running a modified OpenStack ... •Design decisions: •FPGA is single-tenant _ •Only

[email protected]

Questions

?

f-in.co.uk