Enabling Programmable Logic in the Cloud
Kimon Karras
27/10/2015
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.
FPGA Performance Benefits
• Microsoft Catapult
• Baidu DNN acceleration
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
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
FPGA 101
6
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
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
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
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
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.
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.
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
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
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.
Top Related