GNU Radio runtime. Reinventing a very fast wheel. Andrej Rode FOSDEM Andrej Rode GNU Radio runtime FOSDEM / 21

Similar documents
Equinox: A C++11 platform for realtime SDR applications

From 0 to 6 GHz in 30 minutes bootstrap your SDR Experience!

Execution Architecture

A Case Study in Optimizing GNU Radio s ATSC Flowgraph

RFNoC : RF Network on Chip Martin Braun, Jonathon Pendlum GNU Radio Conference 2015

GNU Radio Technical Update

Seamless Dynamic Runtime Reconfiguration in a Software-Defined Radio

Maximum Performance. How to get it and how to avoid pitfalls. Christoph Lameter, PhD

SPIN Operating System

Introducing the Cray XMT. Petr Konecny May 4 th 2007

Embedded Multicore Building Blocks (EMB²)

Processor Architecture and Interconnect

What s Wrong with the Operating System Interface? Collin Lee and John Ousterhout

The Anatomy of A FOSS Project

AWS Lambda: Event-driven Code in the Cloud

Tessellation: Space-Time Partitioning in a Manycore Client OS

DMA safety in buffers for Linux Kernel device drivers

HTTP/2: Ease the Transition, Remove Implementation Barriers. Robert Haynes Ronnie Dockery

Chapter 8 & Chapter 9 Main Memory & Virtual Memory

Programmable Peer-to-Peer Systems

Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology

CS162 Operating Systems and Systems Programming Lecture 11 Page Allocation and Replacement"

ClearSpeed Visual Profiler

How Rust views tradeoffs. Steve Klabnik

An Incubator Project in the Apache Software Foundation. 13 July 2016

OpenACC Course. Office Hour #2 Q&A

Abstraction: Distributed Ledger

Map-Reduce. Marco Mura 2010 March, 31th

COSC3330 Computer Architecture Lecture 20. Virtual Memory

Implementing Symmetric Multiprocessing in LispWorks

What is MariaDB 5.5? w: e: Daniel Bartholomew Oct 2012

EXOCHI: Architecture and Programming Environment for A Heterogeneous Multicore Multithreaded System

EbbRT: A Framework for Building Per-Application Library Operating Systems

PostgreSQL on FreeBSD

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

A unified multicore programming model

Grassroots ASPLOS. can we still rethink the hardware/software interface in processors? Raphael kena Poss University of Amsterdam, the Netherlands

CSC Operating Systems Fall Lecture - II OS Structures. Tevfik Ko!ar. Louisiana State University. August 27 th, 2009.

Announcements. Computer System Organization. Roadmap. Major OS Components. Processes. Tevfik Ko!ar. CSC Operating Systems Fall 2009

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1

HIGH-PERFORMANCE NETWORKING :: USER-LEVEL NETWORKING :: REMOTE DIRECT MEMORY ACCESS

Operating Systems. Operating System Structure. Lecture 2 Michael O Boyle

JazzScheme: Evolution of a Lisp-Based Development System. Guillaume Cartier Louis-Julien Guillemette SFP 2010

SELLING NODE.JS TO YOUR COLLEAGUES

Designing and debugging real-time distributed systems

Resource Containers. A new facility for resource management in server systems. Presented by Uday Ananth. G. Banga, P. Druschel, J. C.

A common scenario... Most of us have probably been here. Where did my performance go? It disappeared into overheads...

ADAPTING A SDR ENVIRONMENT TO GPU ARCHITECTURES

Twitter Heron: Stream Processing at Scale

Designing for Performance: Concurrency and Parallelism

CS 4300 Computer Graphics

CLICK TO EDIT MASTER TITLE STYLE. Click to edit Master text styles. Second level Third level Fourth level Fifth level

The name of the Show What will you enjoy learning?

Using Java for Scientific Computing. Mark Bul EPCC, University of Edinburgh

Main Memory (Part II)

Last Time. Internet in a Day Day 2 of 1. Today: TCP and Apps

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

ProfileMe: Hardware-Support for Instruction-Level Profiling on Out-of-Order Processors

Maximizing heterogeneous system performance with ARM interconnect and CCIX

Combining Arm & RISC-V in Heterogeneous Designs

Mobile Offloading. Matti Kemppainen

HPX A GENERAL PURPOSE C++ RUNTIME SYSTEM FOR PARALLEL AND DISTRIBUTED APPLICATIONS OF ANY SCALE

! Readings! ! Room-level, on-chip! vs.!

FP Implementation. Simon Marlow PLMW 15

Hardware Accelerators

CSci 4061 Introduction to Operating Systems. (Thread-Basics)

Extensibility, Safety, and Performance in the Spin Operating System

The Google File System

Network File System (NFS)

Best Practices for Setting BIOS Parameters for Performance

Dynamic Accommodation of Performance, Power, and Reliability Tradeoffs

The Convergence of Storage and Server Virtualization Solarflare Communications, Inc.

Network File System (NFS)

A Report on RMI and RPC Submitted by Sudharshan Reddy B

RTEMS Development Roadmap

Operating System Structure

IP Mobility vs. Session Mobility

Basic Concepts & OS History

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

GPU Programming Using NVIDIA CUDA

The Journey of an I/O request through the Block Layer

Custom UDP-Based Transport Protocol Implementation over DPDK

Lecture 12: Hardware/Software Trade-Offs. Topics: COMA, Software Virtual Memory

SpaceComRTOS. A distributed formal RTOS adapted to SpaceWire enabled systems

Multi-level Page Tables & Paging+ segmentation combined

TLDK Overview. Transport Layer Development Kit Ray Kinsella February ray.kinsella [at] intel.com IRC: mortderire

Manual Android Galaxy S3 4.3 Features List

The OS and Multitasking: An Example

Getting Things GNOME! Documentation

CUDA GPGPU Workshop 2012

Active source routing for ad-hoc network: seamless integration of wireless environment

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8

Qt a Framework for the Multi-Screen World

HDFS Architecture. Gregory Kesden, CSE-291 (Storage Systems) Fall 2017

Reactive Programming Models for IoT. Todd L.

X10 specific Optimization of CPU GPU Data transfer with Pinned Memory Management

OS Design Approaches. Roadmap. OS Design Approaches. Tevfik Koşar. Operating System Design and Implementation

Implementing Architectures

Operating System Structure

Transcription:

GNU Radio runtime Reinventing a very fast wheel Andrej Rode FOSDEM 2018 Andrej Rode GNU Radio runtime FOSDEM 2018 1 / 21

Table of Contents 1 Introduction 2 State of the GNU Radio runtime 3 GNU Radio runtime in retrospective History Achievements Shortcomings 4 Future of the GNU Radio runtime Comparison to Similar Projects Runtime design Development timeline Andrej Rode GNU Radio runtime FOSDEM 2018 2 / 21

Introduction GNU Radio user and contributor since 2016 EE Master student @ KIT GNU Radio CI & web infrastructure guy arode@gnuradio.org Interested in contributing and improving GNU Radio Has fun with SDRs sometimes Andrej Rode GNU Radio runtime FOSDEM 2018 3 / 21

Table of Contents 1 Introduction 2 State of the GNU Radio runtime 3 GNU Radio runtime in retrospective History Achievements Shortcomings 4 Future of the GNU Radio runtime Comparison to Similar Projects Runtime design Development timeline Andrej Rode GNU Radio runtime FOSDEM 2018 4 / 21

State of the GNU Radio runtime (1/2) Upcoming GNU Radio 3.8 release contains no mentionable new runtime features aside of removing the single threaded scheduler GNU Radio 3.8 will contain a lot of dependency bumps which are a great load of work This state leads to the question if development on the runtime is completed and GR runtime can be considered stable Andrej Rode GNU Radio runtime FOSDEM 2018 5 / 21

State of the GNU Radio runtime (2/2) Unfortunately no new features in the runtime don t necessarily mean it s done. DSP engineers are more attracted to DSP problems Hacking on the runtime is just a necessary evil Andrej Rode GNU Radio runtime FOSDEM 2018 6 / 21

Table of Contents 1 Introduction 2 State of the GNU Radio runtime 3 GNU Radio runtime in retrospective History Achievements Shortcomings 4 Future of the GNU Radio runtime Comparison to Similar Projects Runtime design Development timeline Andrej Rode GNU Radio runtime FOSDEM 2018 7 / 21

History 2008-10-19: multithreaded scheduler (tpb) is merged into trunk 2009-08-15: message passing is merged into trunk 2010-11-29: tagging capability is merged into next 2012-12-04: ctrlport is merged into next 2013-03-17: tagged stream blocks are merged into next 2016-09-03: single threaded scheduler is removed from next Lots of fixes were added and some restructuring happened during this period of time. Andrej Rode GNU Radio runtime FOSDEM 2018 8 / 21

Achievements backpressure driven architecture concurrency (leave scheduling to the OS) strict block boundaries thread per block paradigm low block intercommunication overhead simple block API These lead to a lot of new projects emerging and creating own blocks based on the GNU Radio runtime capabilities and existing in-tree blocks. Andrej Rode GNU Radio runtime FOSDEM 2018 9 / 21

Shortcomings (1/2) Cache invalidation (high thread count) Missing tests for core features Missing runtime API docs Organic grown code Lacking thread-safety for direct method calls Varying code quality Andrej Rode GNU Radio runtime FOSDEM 2018 10 / 21

Example of varying code quality: Test Coverage Andrej Rode GNU Radio runtime FOSDEM 2018 11 / 21

Shortcomings (2/2) Lacking Integration with heterogeneous computing GPU/FPGA/CPU Cloud low latency packetized streams security flowgraph introspection loose API/impl boundary Andrej Rode GNU Radio runtime FOSDEM 2018 12 / 21

Table of Contents 1 Introduction 2 State of the GNU Radio runtime 3 GNU Radio runtime in retrospective History Achievements Shortcomings 4 Future of the GNU Radio runtime Comparison to Similar Projects Runtime design Development timeline Andrej Rode GNU Radio runtime FOSDEM 2018 13 / 21

Comparison to Similar Projects (1/2) Do we need to improve the GR runtime itself? Or could it be possible to use already finished work in that domain? Should we learn from acomplishments and failures of similar projects? Andrej Rode GNU Radio runtime FOSDEM 2018 14 / 21

Comparison to Similar Projects (2/2) Similar projects include: Microsoft SoRa (BSD 2-clause) srslte (AGPLv3) RedHawk (various licenses) Pothos (Boost License) liquid-dsp (MIT) LuaRadio (GPLv3) OS kernels (various licenses) Other projects don t really match GNU Radio in terms of goal and ecosystem. Andrej Rode GNU Radio runtime FOSDEM 2018 15 / 21

Runtime design questions Main questions: What are challenges we see today not being solved by the current runtime? What should an API look like for writing blocks extending GNU Radio? What has to be done to ease maintenance? How can already implemented signal processing blocks be kept around with little effort? Andrej Rode GNU Radio runtime FOSDEM 2018 16 / 21

Runtime design theory Is there a theoretical way to express to express the work done by the GNU Radio runtime? concurrent computing. Design goals heavily depend on application. Example: Latency vs. Throughput. Andrej Rode GNU Radio runtime FOSDEM 2018 17 / 21

Runtime design goals (1/2) API before implementation Configurable scheduling inside the runtime Buffer management (DMA/GPU/CPU buffers) flowgraph introspection remote computation Keep existing features: synchronuous streaming, safe async message passing, stream tags, packetized streams, multi-threading Andrej Rode GNU Radio runtime FOSDEM 2018 18 / 21

Runtime design goals (2/2) Don t reinvent the wheel! Foster other FOSS projects work to keep maintenance low Andrej Rode GNU Radio runtime FOSDEM 2018 19 / 21

Development timeline Steps to take: 1 Write down API 2 Agree on used technology for implementation 3 Implement new API 4 Port/glue existing ecosystem to new runtime Andrej Rode GNU Radio runtime FOSDEM 2018 20 / 21

Questions? Please ask now! I m available at mail@andrejro.de or using the nick noc0lour on the GNU Radio Slack and freenode IRC. We will keep the GNU Radio community in the loop about development on the runtime Andrej Rode GNU Radio runtime FOSDEM 2018 21 / 21