Virtualized FPGA accelerators in Cloud Computing Systems

Slides:



Advertisements
Similar presentations
Cloud computing is used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication.
Advertisements

NetFPGA Project: 4-Port Layer 2/3 Switch Ankur Singla Gene Juknevicius
System Center 2012 R2 Overview
1 SECURE-PARTIAL RECONFIGURATION OF FPGAs MSc.Fisnik KRAJA Computer Engineering Department, Faculty Of Information Technology, Polytechnic University of.
Infrastructure as a Service (IaaS) Amazon EC2
Tunis, Tunisia, 28 April 2014 Business Values of Virtualization Mounir Ferjani, Senior Product Manager, Huawei Technologies 2.
SDN and Openflow.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
Scalable Network Virtualization in Software-Defined Networks
NoHype: Virtualized Cloud Infrastructure without the Virtualization Eric Keller, Jakub Szefer, Jennifer Rexford, Ruby Lee ISCA 2010 Princeton University.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Virtualization and the Cloud
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
Cloud computing Tahani aljehani.
Plan Introduction What is Cloud Computing?
Data Center Network Redesign using SDN
Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner, SIGCOM CCR, 2008 Presented.
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical.
Paper on Best implemented scientific concept for E-Governance projects Virtual Machine By Nitin V. Choudhari, DIO,NIC,Akola.
Benefits of Partial Reconfiguration Reducing the size of the FPGA device required to implement a given function, with consequent reductions in cost and.
Cloud Computing Saneel Bidaye uni-slb2181. What is Cloud Computing? Cloud Computing refers to both the applications delivered as services over the Internet.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Software-Defined Networks Jennifer Rexford Princeton University.
A Cloud is a type of parallel and distributed system consisting of a collection of inter- connected and virtualized computers that are dynamically provisioned.
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Brent Salisbury CCIE#11972 Network Architect University of Kentucky 9/22/ OpenStack & OpenFlow Demo.
V IRTUALIZATION Sayed Ahmed B.Sc. Engineering in Computer Science & Engineering M.Sc. In Computer Science.
M.A.Doman Short video intro Model for enabling the delivery of computing as a SERVICE.
Improving Network I/O Virtualization for Cloud Computing.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Chapter 8: Operating Systems and Utility Programs Catherine Gifford Dan Falgares.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Next Generation Operating Systems Zeljko Susnjar, Cisco CTG June 2015.
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
SOFTWARE DEFINED NETWORKING/OPENFLOW: A PATH TO PROGRAMMABLE NETWORKS April 23, 2012 © Brocade Communications Systems, Inc.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Web Technologies Lecture 13 Introduction to cloud computing.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Unit 2 VIRTUALISATION. Unit 2 - Syllabus Basics of Virtualization Types of Virtualization Implementation Levels of Virtualization Virtualization Structures.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
© 2015 MetricStream, Inc. All Rights Reserved. AWS server provisioning © 2015 MetricStream, Inc. All Rights Reserved. By, Srikanth K & Rohit.
SEMINAR ON.  OVERVIEW -  What is Cloud Computing???  Amazon Elastic Cloud Computing (Amazon EC2)  Amazon EC2 Core Concept  How to use Amazon EC2.
Agenda  What is Cloud Computing?  Milestone of Cloud Computing  Common Attributes of Cloud Computing  Cloud Service Layers  Cloud Implementation.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Prof. Jong-Moon Chung’s Lecture Notes at Yonsei University
Unit 3 Virtualization.
Instructor Materials Chapter 7: Network Evolution
SDN challenges Deployment challenges
Chapter 6: Securing the Cloud
Heitor Moraes, Marcos Vieira, Italo Cunha, Dorgival Guedes
The Future? Or the Past and Present?
Cloud Computing By P.Mahesh
Red Hat User Group June 2014 Marco Berube, Cloud Solutions Architect
The Stanford Clean Slate Program
Cloud Computing and Cloud Networking
Software Defined Networking (SDN)
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Cloud computing mechanisms
Implementing an OpenFlow Switch on the NetFPGA platform
Internet and Web Simple client-server model
Windows Virtual PC / Hyper-V
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Cloud Computing: Concepts
An Introduction to Software Defined Networking and OpenFlow
Presentation transcript:

Virtualized FPGA accelerators in Cloud Computing Systems Stuart Byma and Paul Chow University of Toronto Virtualized FPGA accelerators in Cloud Computing Systems November 21, 2013 November FPGA Seminar

What is this “Cloud Computing”? Term still seems to be flung around quite a bit in the business and IT world means different things to different people Not everyone seems to be on the same page with this November 21, 2013 November FPGA Seminar

What is this “Cloud Computing”? Some fundamental characteristics On demand self service I can provision new resources at any time, without human interaction Rapid elasticity I can rapidly expand or contract the amount of resources I have – on the fly Resource pooling The provider resources are abstracted into pools, to enable serving multiple users - On Demand self service – the notion that end users can unilaterally provision resources on demand, without human interaction with the provider - Rapid elasticity – computing or other resources can be rapidly deployed or released, automatically or otherwise. Essentially “scalability”. To the end user, the amount of resources available for provisioning appears infinite. - Resource pooling – provider resources are abstracted into pools, to enable serving multiple users/tenants. http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf November 21, 2013 November FPGA Seminar

Cloud Resources Meaning of “resources” depends on the Service Model Software as a Service (Google Apps) Provides application software, databases, support Platform as a Service (Windows Azure) OS, dev and execution framework, DB, web server Infrastructure as a Service (Amazon EC2) Virtual machines, storage, connectivity November 21, 2013 November FPGA Seminar

OpenStack – A Cloud Computing Platform OpenStack – an open source cloud computing platform Enabling infrastructure as a service We use OpenStack as our base system (actually the SAVI Testbed, more to come …) OpenStack – open source framework that has the above characteristics Enables infrastructure as a service – end user available resources are virtual machines whose base pool resources are CPUs and RAM Openstack also has other resources – object storage, volume storage, VM image management, Question – can we include FPGAs as pooled resources? And modify OpenStack to support and manage them like VMs? November 21, 2013 November FPGA Seminar

The Point We aim to “Virtualize” FPGAs, enable them as Cloud resources How? Well, how does OpenStack work? And how does it manage resources? November 21, 2013 November FPGA Seminar

It’s Complicated Quick transition slide November 21, 2013 November FPGA Seminar

But basically: VM VM Hypervisor Agent Server OpenStack Controller . . . Hypervisor Agent Server OpenStack Controller To keep things ridiculously simple … User: Give me VM OpenStack: Scheduler, find me available resource Scheduler: (Query DB) Here is agent with resource OpenStack: Agent, boot VM with these parameters Agent: (Agent boots via hypervisor) OK, done. OpenStack: User, here is VM Resource DB API November 21, 2013 November FPGA Seminar

VMs as OpenStack Cloud Resources Virtual Machines Run on top of hypervisors One server = many VMs For many users Agent process Interacts with Openstack controller Instructs hypervisor to boot / destroy VMs VM VM . . . Hypervisor Agent How does OpenStack boot/manage VMs? Agent process runs on physical machine beside hypervisor User requests VM (resource) from controller, controller finds available resources in pool, contacts appropriate Agent Agent interprets command, instructs hypervisor to boot VM with user provided OS image Openstack returns handle to user (usually a network address) Server Can we do something like this for FPGAs? November 21, 2013 November FPGA Seminar

FPGAs as OpenStack Cloud Resources Hypervisor? Non existent One FPGA = One user Agent? Non existent Agent ?? Hypervisor ?? Compare a virtual machine as a cloud resource to an FPGA There is no such thing as an FPGA hypervisor, therefore only one user can use one FPGA at a time There is no agent software that supports offering FPGAs as resources to the openstack controller Now we can think about how to enable FPGAs as an OpenStack controlled resource We need an agent, of some sort, that talks to OpenStack controller – and we need think about what resources agent will control A whole FPGA? This is not good for scalability - a lot of useful hardware accelerators don’t need a whole chip anyway Pieces of an FPGA? This is closer to a VM like abstraction – how? Dynamic partial reconfiguration! Hypervisor = Agent + Static Logic Also important – How will the FPGA resource communicate with users other resources? May not be in same physical machine as VM – only option is over the network Server November 21, 2013 November FPGA Seminar

FPGAs as OpenStack Cloud Resources We want a way to make FPGAs analogous to VMs So they can be managed directly by OpenStack We need an agent To manage the FPGA Creating FPGA resources that the user can “boot” With network connectivity FPGA - We say bootable in analogy to Virtual Machines – also the OpenStack command used to get a VM or a VFR is “$nova boot” Agent November 21, 2013 November FPGA Seminar

Getting there … Single FPGA is still single user - wasteful Relatively slow to configure Security vulnerabilities Direct access to network User could do nasty things! FPGA Agent Server November 21, 2013 November FPGA Seminar

Partial Reconfigurable Regions Fix? Use PR! Virtualized FPGA Resources Multi-tenant Static logic contains chip level IO, memory controllers, etc. Allows us to police VFR interfaces (security) FPGA VFR . . . VFR Agent Server November 21, 2013 November FPGA Seminar

VM VM FPGA(s) . . . VFR . . . VFR Hypervisor Agent Agent Server Server OpenStack Controller Resource DB API Virtual FPGA Resources are layer 2 network devices – accessible from users VMs Now we can “boot” a network connected FPGA accelerator on demand, in seconds! November 21, 2013 November FPGA Seminar

OpenStack Driver How does OpenStack know how to communicate with our agent? We also define a Driver: an object that implements OpenStack boot, release, and general resource management API calls OpenStack Controller Driver ? Agent November 21, 2013 November FPGA Seminar

An Example – Consider: A massive video web service (yootube.com?) Running on top of ten thousand VMs Number of VMs can scale according to current demand Large amount of video transcoding / compression needs to be done We have FPGA cloud resources now, do it in hardware Offload VM workload – less x86 CPUs, save power! November 21, 2013 November FPGA Seminar

Example x10 000 VM Resource VFR Web Server Video Transcode/ Compress Outside World Data Center VM Resource VFR Web Server Video Transcode/ Compress Site Requests Internal Network Uploads x10 000 Dynamically scalable according to demand Same OpenStack command to boot/release either resource! November 21, 2013 November FPGA Seminar

Boot/Release Sequence On boot, OpenStack sends request, image(bitstream), networking information to agent via driver Agent configures bitstream into available region, programs MAC address VFR is then network connected device belonging to the user On release, agent configures black box – removes user IP, conserves power November 21, 2013 November FPGA Seminar

Partial Bitstream as an Image A Virtual Machine has an operating system image A VFR has a partial bitstream as an image In OpenStack infrastructure, users can upload their own images Result – user designed custom hardware accelerators! Template HDL file provided, compiles with already placed and routed static logic November 21, 2013 November FPGA Seminar

FPGA System-Level Architecture JTAG Agent (Host PC) Soft Processor Bus MACs DRAM VFR Stream Interface Output Queues Input Arbiter VFR November 21, 2013 November FPGA Seminar

Packet Forwarding and Interface Policing Input arbiter uses a CAM to match incoming packet dst field to correct VFR – no match? Drop CAM programmable by soft proc, which receives MAC from agent Input Arbiter CAM MACs Bus to VFR_0 Pkt In Stream . . . to VFR_n November 21, 2013 November FPGA Seminar

FPGA System-Level Architecture JTAG Agent (Host PC) Soft Processor Bus MACs DRAM VFR Stream Interface Output Queues Input Arbiter VFR November 21, 2013 November FPGA Seminar

System Partial Reconfiguration Control Bus to Soft Proc, DRAM MMap Register PR Interface Enable PR Reset Stream Out VFR – User Logic Mem Op Queues (Bus Master) Stream In Streams frozen after current transaction finishes – no fragmented pkts! November 21, 2013 November FPGA Seminar

What else can we use this for? Line rate packet processing Custom firewalls Rate limiters Custom traffic classifiers Any other type of accelerator With data sent over Ethernet November 21, 2013 November FPGA Seminar

SAVI Smart Applications on Virtual Infrastructure SAVI Testbed Canada-wide experimental research network SAVI Testbed OpenStack based cloud computing infrastructure Linux KVM based Virtual Machines Complete tenant isolation GPUs + Reconfigurable Hardware OpenFlow SDN + network virtualization November 21, 2013 November FPGA Seminar

VM VM FPGA(s) VFR VFR Hypervisor Agent Agent Server Server OpenFlow Network VM VM FPGA(s) . . . VFR . . . VFR Hypervisor Agent Agent Server Server OpenStack Controller Resource DB API November 21, 2013 November FPGA Seminar

Software Defined Networking, OpenFlow Separation of control plane and forwarding hardware Control Plane (Software) OpenFlow Protocol Image Credit: Nick McKeown November 21, 2013 November FPGA Seminar

Network 1 Network 2 App App API Network OS OpenFlow Protocol 28 Image Credit: Nick McKeown November 21, 2013 November FPGA Seminar

Switches Switches are now dumb forwarding logic Rule tables are set by the controller software Basic operation: pkt in, match, action Now we have a complete view of the entire network Which enables complete control November 21, 2013 November FPGA Seminar

Accelerator Chaining OpenFlow controls the flow of packets/data Accelerators process normally, do not worry about forwarding OpenFlow Network Down Sample Transcode Encrypt November 21, 2013 November FPGA Seminar

Accelerator Chaining Simpler hardware Partitioned designs Need not worry about forwarding Complex forwarding control moved to software Partitioned designs Spread across multiple VFRs Enabling large and complex processing pipelines Maintaining high throughput Easier debugging? Downside – must design your own OpenFlow controller November 21, 2013 November FPGA Seminar

Performance Still under investigation Boot latency From command entry to point that accelerator can process packets Approximately 2.6 seconds – much faster than a VM! Overhead cost of virtualization (static logic)? Simulations show 3 cycles latency difference from non-virtualized system November 21, 2013 November FPGA Seminar

To Wrap Up Virtualized FPGA resources in the cloud Same boot command as a virtual machine Dynamically scalable and flexible hardware acceleration User designed, user controlled Prototype implemented, work is ongoing November 21, 2013 November FPGA Seminar

Thanks! Questions? November 21, 2013 November FPGA Seminar

Research Applications with SAVI SAVI Testbed is based on OpenStack Our prototype is implemented within the SAVI Testbed SAVI has virtualized networks We can get our own isolated custom-controlled Ethernet network Can enable testing of non-IP Internet-routing protocols VFRs could provide line rate routing infrastructure for these non-IP networks Facilitate wide area, large scale testing of future protocols in true Layer 3 – i.e. not on top of IP November 21, 2013 November FPGA Seminar

Virtex 5 VTX240T 1 Region: ~12,000 Slices November 21, 2013 November FPGA Seminar