ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro...

17
ReconOS: Extending OS Services Over FPGAs Marco Platzner Computer Engineering Group University of Paderborn [email protected]

Transcript of ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro...

Page 1: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

ReconOS:Extending OS Services Over FPGAs

Marco PlatznerComputer Engineering Group University of Paderborn

[email protected]

Page 2: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 2

Reconfigurable Hardware Operating Systems Introduce a new layer of abstraction

u turn hardware accelerators into hardware tasks (threads)u rely on an operating system to schedule, place, and execute these tasks

Motivationu increase productivity and portabilityu exploit partial reconfigurabilityu use reconfigurable hardware for

dynamic task sets

Operating system servicesu task management

load/remove/preempt/resume communication, synchronization scheduling

u resource managementu time management

task 1

task 2

task N

operating systemservices

TN

FPGA

T1

CPU

T2

Page 3: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 3

Main goal: extend the multithreaded programming model to reconfigurable hardware

u threads communicate and synchronize using programming model primitives,e.g., semaphores, mutexes, mailboxes, shared memory

u established model in software-based systems (e.g., POSIX pthreads)

ReconOS

software thread software

threadsoftware thread

operating system

monolithic software

application

operating system

software thread software

thread

operating system

hardware thread

Page 4: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 4

Hardware Threads A hardware thread consists of two parts

u OS synchronization finite state machineu user logic

A hardware thread is connected to theu OS on the main CPU via the OSIFu main memory via the MEMIF

Page 5: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

5M. Platzner

Hardware Threads Function library (VHDL)

for implementing theOS synchronization FSM

Page 6: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 6

A SW delegate thread is associated with every hardware threadu calls the OS kernel on behalf of the hardware thread

Delegate Threads

Page 7: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 7

Example ReconOS Architecture

Hardware threads can be loaded / removed by partial reconfiguration Hardware threads use cooperative multitasking

Page 8: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 8

ReconOS Toolflow

Page 9: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 9

ReconOS Versions

Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (ErlangenSlot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

Version 2.0 Linux, eCos / PowerPC, Virtex-2Pro (XUPV2P) and Virtex-4 (ML403)virtual memory support, FIFO interconnect

Version 3.0 Linux, xilkernel / MicroBlaze, Virtex-6 (ML605)

Version 3.1 Linux / ARM, Xilinx Zynq (Zedboard)

Version ? Linux / ARM, Xilinx Zynq (Zedboard) Vivado HLS for hardware thread design,direct communication between hardware threads

Page 10: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

www.reconos.de

Page 11: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 11

Experience with ReconOS (1)ReconOS supports a step-by-step application design process

software threadsoftware

threadsoftware thread

operating system

monolithic software

application

operating system

1. desktop/Linux 1a. desktop/Linux

operating system

software threadsoftware

threadhardware

thread

3. Zynq/Linux-ARM+accelerators

software threadsoftware

threadsoftware thread

operating system

2. Zynq/Linux-ARM

1.

Page 12: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 12

Experience with ReconOS (2)ReconOS facilitates design space exploration

u Example: video object tracker Virtex-4 FPGA (2 x PPC 405) sw: all threads run in software hw*: a number of threads run in hardware sw*: a number of threads run on second (worker) CPU

frame 5 frame 90

frame 260 frame 150

2.

Page 13: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 13

Experience with ReconOS (3)ReconOS enables (self-)adaptive systems

u Example: video object tracker performance in [7,10] fps minimize number of cores

frame 5 frame 90

frame 260 frame 150

3.

Page 14: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 14

Why isn’t ReconOS used more? ReconOS is an academic project

u good as playground for research ideas, but we have limited resources for making it easily usable for others

u out of the box only a few platforms are supportedu more tutorials and examples needed on the website

ReconOS is (still) a complex environment u requires understanding of platform FPGA architectures and tool flowsu requires some hardware design skills (for creating hardware threads)

Performance more important than productivity / flexibilityu designers tend to optimize to the max, at the end they often have one

big hardware thread and thrown away the OS abstractions

The multi-threading model of ReconOS is obviously not suitable for all types of applications

Page 15: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 15

OS Abstractions for Heterogeneous Nodes Delegate threads, cooperative multitasking (like in ReconOS) for

tasks on FPGA and GPU Allows for preemption and heterogeneous migration of tasks

based on a programming pattern with check-pointing and strip-mining

Page 16: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 16

Scheduling for Heterogeneous Nodes: HETSCHED Experiment

u sets of 32 tasks: Heat Distribution, Correlation Matrix, Gauss Blur, Markov Chainu all tasks implemented on CPU, FPGA, GPUu all schedulers are work-conserving

based on task runtimesbased on task affinities

preemption andheterogeneous migration

Page 17: ReconOS: Extending OS Services Over FPGAs Marco.pdf · Version 1.0 eCos/PowerPC, Virtex-2Pro (XUPV2P), Virtex-2 (Erlangen Slot Machine) and Virtex-4 (Avnet Virtex-4 PCIe Kit, ML403)

M. Platzner 17

Summary: OS Services for FPGAs ReconOS: multithreaded programming for software and hardware

Heterogeneous node: preemption and heterogeneous migration

Does ReconOS get software programmers on FPGAs?

Which OS services are useful for FPGAs in …u embedded systemsu high-performance computingu warehouse scale computers