Programming-Model Centric Debugging for Multicore Embedded Systems - - PowerPoint PPT Presentation

programming model centric debugging for multicore
SMART_READER_LITE
LIVE PREVIEW

Programming-Model Centric Debugging for Multicore Embedded Systems - - PowerPoint PPT Presentation

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y STMicroelectronics LIG University of Grenoble Programming-Model Centric Debugging for Multicore Embedded Systems Kevin Pouget, UJF-LIG,


slide-1
SLIDE 1

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

STMicroelectronics LIG University of Grenoble

Programming-Model Centric Debugging for Multicore Embedded Systems

Kevin Pouget, UJF-LIG, STMicroelectronics

Miguel Santana, STMicroelectronics Jean-Fran¸ cois M´ ehaut, UJF-CEA/LIG

MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-2
SLIDE 2

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Consumer Electronics Devices

  • 4K digital televisions
  • Smartphones
  • Hand-held music players
  • High-resolution multimedia apps
  • H.265 HEVC
  • Augmented reality
  • 3D video games
  • . . .

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-3
SLIDE 3

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Consumer Electronics Devices

  • 4K digital televisions
  • Smartphones
  • Hand-held music players
  • High-resolution multimedia apps
  • H.265 HEVC
  • Augmented reality
  • 3D video games
  • . . .

⇒ high performance expectations.

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-4
SLIDE 4

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Current applications have high performance expectations...

⇒ important demand for:

  • Powerful parallel architectures
  • High-level development methodologies
  • Efficient verification & validation tools

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-5
SLIDE 5

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Current applications have high performance expectations...

STHORM Fabric L2 L3 (DRAM) Cluster 0 L1 TCDM Cluster 1 L1 TCDM Cluster 2 L1 TCDM Cluster 3 L1 TCDM ARM Host FC

⇒ important demand for:

  • Powerful parallel architectures
  • MultiProcessor Systems-on-a-Chip (MPSoCs)
  • High-level development methodologies
  • Efficient verification & validation tools

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-6
SLIDE 6

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Current applications have high performance expectations...

front pred front_controller bh imvp pred_controller red pipe ipred hwcfg 3 ipf 20

⇒ important demand for:

  • Powerful parallel architectures
  • MultiProcessor Systems-on-a-Chip (MPSoCs)
  • High-level development methodologies
  • Programming models & environments
  • Efficient verification & validation tools

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-7
SLIDE 7

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Introduction

Embedded Systems and MPSoC

Current applications have high performance expectations...

– – –

– What‘s

SoC’s

  • ⇒ important demand for:
  • Powerful parallel architectures
  • MultiProcessor Systems-on-a-Chip (MPSoCs)
  • High-level development methodologies
  • Programming models & environments
  • Efficient verification & validation tools
  • Workshop and our research effort

Slide 2 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-8
SLIDE 8

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Agenda

1 Background: MPSoC Programming and Debugging 2 Programming Model Centric Interactive Debugging 3 Model-Centric Debugger Case-Study

Slide 3 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-9
SLIDE 9

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Agenda

1 Background: MPSoC Programming and Debugging 2 Programming Model Centric Interactive Debugging 3 Model-Centric Debugger Case-Study

Slide 3 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-10
SLIDE 10

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

MPSoC and GPU Systems

MultiProcessor System on-a-Chip

Multi-core CPU GPU Many-core

MPSoC

More programmability More parallelism

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-11
SLIDE 11

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

MPSoC and GPU Systems

MultiProcessor System on-a-Chip

Multi-core CPU GPU Many-core

MPSoC

More programmability More parallelism

  • Many-core processor for embedded systems
  • Low energy-consumption
  • Heterogeneous computing power

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-12
SLIDE 12

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

MPSoC and GPU Systems

MultiProcessor System on-a-Chip

Multi-core CPU GPU Many-core

MPSoC

More programmability More parallelism

  • Many-core processor for embedded systems
  • Low energy-consumption
  • Heterogeneous computing power

How to program such complex architectures?

Slide 4 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-13
SLIDE 13

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models and Supportive Environments

... with programming models!

  • Programmability with high-level abstractions
  • Portability thanks to an hardware-independent interface
  • Separation of concerns between application / lower levels

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-14
SLIDE 14

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models and Supportive Environments

... with programming models!

  • Programmability with high-level abstractions
  • Portability thanks to an hardware-independent interface
  • Separation of concerns between application / lower levels

→ application written on top of an abstract machine

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-15
SLIDE 15

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models and Supportive Environments

... with programming models!

  • Programmability with high-level abstractions
  • Portability thanks to an hardware-independent interface
  • Separation of concerns between application / lower levels

→ application written on top of an abstract machine ... implemented by supportive environments: programming frameworks, runtime libraries, APIs

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-16
SLIDE 16

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models and Supportive Environments

... with programming models!

  • Programmability with high-level abstractions
  • Portability thanks to an hardware-independent interface
  • Separation of concerns between application / lower levels

→ application written on top of an abstract machine ... implemented by supportive environments: programming frameworks, runtime libraries, APIs

Slide 5 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-17
SLIDE 17

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models for ST MPSoCs

Components Dataflow

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-18
SLIDE 18

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models for ST MPSoCs

Components

  • code/data encapsulation
  • lang.-free interfaces

Dataflow

Interface not connected «Runnable» interface Type 2 interface Type 1 interface component 2a component 1 component 3 component 2b

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-19
SLIDE 19

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models for ST MPSoCs

Components Dataflow

  • streams of data
  • implicit parallelism

actor 1 actor 2 actor 3 actor 4

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-20
SLIDE 20

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models for ST MPSoCs

Components

  • code/data encapsulation
  • lang.-free interfaces

Dataflow

  • streams of data
  • implicit parallelism

large programming domain coverage...

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-21
SLIDE 21

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Programming Models for ST MPSoCs

Components

  • code/data encapsulation
  • lang.-free interfaces

Dataflow

  • streams of data
  • implicit parallelism

large programming domain coverage... ... but what about Verification & Validation

  • f MPSoC applications?

Slide 6 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-22
SLIDE 22

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Tools and Techniques, Advantages of Interactive Debugging

Live Debugging Post-Mortem Debugging Pre-Execution Analysis Validate the results Execute Write code

Interactive Debugging (eg.: GDB)

  • Developers mental representation VS. actual execution
  • Understand the different steps of the execution

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-23
SLIDE 23

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Tools and Techniques, Advantages of Interactive Debugging

Interactive Debugging (eg.: GDB)

  • Developers mental representation VS. actual execution
  • Understand the different steps of the execution
  • Breakpoints, memory watchpoints, event catchpoints, . . .
  • Step-by-step execution
  • Memory and processor inspection

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-24
SLIDE 24

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Tools and Techniques, Advantages of Interactive Debugging

Interactive Debugging (eg.: GDB)

  • Developers mental representation VS. actual execution
  • Understand the different steps of the execution
  • Breakpoints, memory watchpoints, event catchpoints, . . .
  • Step-by-step execution
  • Memory and processor inspection

... but nothing related to Supportive Environments ...

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-25
SLIDE 25

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Tools and Techniques, Advantages of Interactive Debugging

Interactive Debugging (eg.: GDB)

  • Developers mental representation VS. actual execution
  • Understand the different steps of the execution
  • Breakpoints, memory watchpoints, event catchpoints, . . .
  • Step-by-step execution
  • Memory and processor inspection

... but nothing related to Supportive Environments ... ⇒ Debuggers cannot access the abstract machine!

Slide 7 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-26
SLIDE 26

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Background: MPSoC Programming and Debugging

Objective

Provide developers with means to better understand the state of the high-level applications and control more easily their execution, suitable for various models and environments.

Slide 8 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-27
SLIDE 27

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Agenda

1 Background: MPSoC Programming and Debugging 2 Programming Model Centric Interactive Debugging 3 Model-Centric Debugger Case-Study

Slide 8 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-28
SLIDE 28

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

Idea: Integrate programming model concepts in interactive debugging

Slide 9 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-29
SLIDE 29

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

1 Provide a Structural Representation

  • Draw application architecture diagrams
  • Represent the relationship between the entities
  • Offer catchpoints on architecture-related operations

front_controller imvp pred_controller bh red pipe ipred hwcfg ipf

pushpushpushpush

Dataflow graph from the case-study

Slide 10 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-30
SLIDE 30

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-31
SLIDE 31

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages X

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-32
SLIDE 32

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages X

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-33
SLIDE 33

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages break

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-34
SLIDE 34

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages X

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-35
SLIDE 35

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

2 Monitor Dynamic Behaviors

  • Monitor the collaboration between the tasks
  • Detect communication, synchronization events
  • interpret their pattern and semantics

(one-to-one, one-to-many, global or local barriers)

  • Offer communication-aware catchpoint mechanisms

actor 1 actor 2 actor 3 actor 4

Catch all messages X break

Slide 11 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-36
SLIDE 36

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine

  • Recognize the different entities of the model
  • Provide details about their state, schedulability, callstack, ...
  • Provide support to understand how they reached their current state

Slide 12 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-37
SLIDE 37

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine

  • Recognize the different entities of the model
  • Provide details about their state, schedulability, callstack, ...
  • Provide support to understand how they reached their current state

Slide 12 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-38
SLIDE 38

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Programming Model Centric Interactive Debugging

3 Interact with the Abstract Machine

  • Support interactions with real machine
  • memory inspection
  • breakpoints
  • step-by-step

Slide 13 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-39
SLIDE 39

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Agenda

1 Background: MPSoC Programming and Debugging 2 Programming Model Centric Interactive Debugging 3 Model-Centric Debugger Case-Study

Slide 13 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-40
SLIDE 40

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Proof-of-concept Environment

STHORM / Platform 2012

ST/CEA MPSoC research platform

  • x86 platform simulators

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-41
SLIDE 41

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Proof-of-concept Environment

STHORM Progr. Environments

  • Dataflow (PEDF)
  • Components (NPM)
  • Kernels (OpenCL)

STHORM / Platform 2012

ST/CEA MPSoC research platform

  • x86 platform simulators

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-42
SLIDE 42

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Proof-of-concept Environment

The Gnu Debugger

  • Adapted to low level/C debugging
  • Large user community

STHORM Progr. Environments

  • Dataflow (PEDF)
  • Components (NPM)
  • Kernels (OpenCL)

STHORM / Platform 2012

ST/CEA MPSoC research platform

  • x86 platform simulators

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-43
SLIDE 43

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Proof-of-concept Environment

The Gnu Debugger

  • Adapted to low level/C debugging
  • Large user community
  • Extendable with Python API

STHORM Progr. Environments

  • Dataflow (PEDF)
  • Components (NPM)
  • Kernels (OpenCL)

STHORM / Platform 2012

ST/CEA MPSoC research platform

  • x86 platform simulators

Slide 14 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-44
SLIDE 44

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-45
SLIDE 45

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-46
SLIDE 46

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-47
SLIDE 47

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-48
SLIDE 48

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-49
SLIDE 49

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-50
SLIDE 50

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-51
SLIDE 51

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-52
SLIDE 52

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-53
SLIDE 53

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-54
SLIDE 54

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Interpreting Execution Events

⇒ Detect and interpret the exec. events of the runtime framework

Slide 15 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-55
SLIDE 55

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study

Dataflow Video Decoder

logo by bullboykennels

Slide 16 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-56
SLIDE 56

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

hint: not much!

pred_controller ipred hwcfg pipe ipf

(static graph provided by the compiler)

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-57
SLIDE 57

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller ipred hwcfg pipe ipf

(gdb) info threads

Id Target Id Frame 1 Thread 0xf7e77b 0xf7ffd430 in __kernel_vsyscall () * 2 Thread 0xf7e797

  • perator= (val=..., this=0xa0a1330)

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-58
SLIDE 58

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller ipred hwcfg pipe ipf

(gdb) thread apply all where

Thread 1 (Thread 0xf7e77b): #0 0xf7ffd430 in __kernel_vsyscall () #1 0xf7fcd18c in pthread_cond_wait@ () #2 0x0809748f in wait_for_step_completion(struct... *) #3 0x0809596e in pred_controller_work_function() #4 0x08095cbc in entry(int, char**) () #5 0x0809740a in host_launcher_entry_point ()

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-59
SLIDE 59

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can GDB help us?

pred_controller ipred hwcfg pipe ipf

X

(gdb) thread apply all where

Thread 2 (Thread 0xf7e797): #0 operator= (val=..., this=0xa0a1330) #1 pipeRead (data=0) at pipeFilter.c:154 ւ 154 Smb = pedf.io.hwcfgSmb[count]; #2 0x0804da63 in PipeFilter_work_function () at pipe.c:361 #3 0x080a4132 in PedfBaseFilter::controller (this=0xa0d18) #4 0x080c12f0 in sc_core::sc_thread_cor_fn (arg=0xa0a3598)

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-60
SLIDE 60

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can mcGDB help us?

(mcgdb) info graph

pred_controller ipred hwcfg z pipe ipf

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-61
SLIDE 61

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Model-Centric Debugger Case-Study: Dataflow Video Decoder

The application is frozen, how can mcGDB help us?

(mcgdb) info graph

pred_controller ipred hwcfg z pipe ipf

(mcgdb) info actors +state

#0 Controller ‘pred_controller’: Blocked, waiting for step completion #1/2/3 Actor ‘pipe/ipref/ipf’: Blocked, reading from #4 ‘hwcfg’ #4 Actor ‘hwcfg’: Asleep, Step completed

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-62
SLIDE 62

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Agenda

Conclusions and Future Work

Slide 17 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-63
SLIDE 63

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Conclusions and Future Work

  • Debugging high-level applications is challenging
  • Lack of information about programming models and frameworks

Our contribution: model-centric interactive debugging, applied to

  • Component, dataflow and kernel (GPU) programming

Slide 18 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-64
SLIDE 64

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Conclusions and Future Work

  • Debugging high-level applications is challenging
  • Lack of information about programming models and frameworks

Our contribution: model-centric interactive debugging, applied to

  • Component, dataflow and kernel (GPU) programming

Proof-of-concept: mcGDB, a prototype for Sthorm platform

  • Extends GDB and its Python interface:
  • Interface patches contributed to the community
  • Usage studied through embedded and scientific applications

Slide 18 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-65
SLIDE 65

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Conclusions and Future Work

Perspectives for programming-model centric debugging:

  • Industrial side
  • Strengthen the implementation
  • Conduct extensive impact studies
  • Research side
  • Apply to different programming models
  • Visualization-assisted interactive debugging
  • Enrich debugging information generated by compilers
  • work funded by Nano 2017 R&D project

Slide 19 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-66
SLIDE 66

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

STMicroelectronics LIG University of Grenoble

Programming-Model Centric Debugging for Multicore Embedded Systems

Kevin Pouget, UJF-LIG, STMicroelectronics

Miguel Santana, STMicroelectronics Jean-Fran¸ cois M´ ehaut, UJF-CEA/LIG

MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-67
SLIDE 67

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Publications

Kevin Pouget. Programming-Model Centric Debugging for Multicore Embedded Systems. PhD thesis, Universit´ e de Grenoble, ´ Ecole Doctorale MSTII, feb 2014. Kevin Pouget, Marc P´ erache, Patrick Carribault, and Herv´ e Jourdren. User level DB: a debugging API for user-level thread libraries. In Parallel Distributed Processing, Workshops and Phd Forum (IPDPSW), 2010 IEEE International Symposium on, pages 1–7, 2010. Kevin Pouget, Miguel Santana, Vania Marangozova-Martin, and Jean-Fran¸ cois Mehaut. Debugging Component-Based Embedded Applications. In Joint Workshop Map2MPSoC (Mapping of Applications to MPSoCs) and SCOPES (Software and Compilers for Embedded Systems), St Goar, Germany, may 2012. Published in the ACM library. Kevin Pouget, Patricia L´

  • pez Cueva, Miguel Santana, and Jean-Fran¸

cois M´ ehaut. Interactive Debugging of Dynamic Dataflow Embedded Applications. In Proceedings of the 18th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS), Boston, Massachusetts, USA, may 2013. Held in conjunction of IPDPS. Kevin Pouget, Patricia L´

  • pez Cueva, Miguel Santana, and Jean-Fran¸

cois M´ ehaut. A novel approach for interactive debugging of dynamic dataflow embedded applications. In Proceedings of the 28th Symposium On Applied Computing (SAC), pages 1547–1549, Coimbra, Portugal, apr 2013.

Slide 21 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-68
SLIDE 68

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Conclusions and Future Work

Interact with the Abstract Machine

ST Sthorm Platform — our reference MPSoC

  • CPU + 4 clusters × 16 lightweight/energy-efficient cores
  • ± dedicated hardware accelerators
  • GPU-like architecture

STHORM Fabric L2 L3 (DRAM) Cluster 0

L1 TCDM

Cluster 1

L1 TCDM

Cluster 2

L1 TCDM

Cluster 3

L1 TCDM

ARM Host FC

Bj¨

  • rn K¨
  • nig, Wikimedia

How to program such complex architectures?

Slide 22 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014

slide-69
SLIDE 69

s t m i c r o e l e c t r o n i c s , u n i v e r s i t y o f g r e n o b l e / l i g l a b o r a t o r y

Conclusions and Future Work

Dataflow Video Decoder

Dataflow Environment (PEDF)

  • Dynamic dataflow programming
  • Good for multimedia application
  • No verification/validation help
  • Heterogeneous computing:
  • actors ⇒ HW accelerators

logo by bullboykennels

  • Flexible video decoding standard
  • for HD television, blu-ray disks,

broadcast, telephony, . . .

  • Good dataflow decomposition
  • Developed to validate PEDF design

Slide 23 — Kevin Pouget — Programming-Model Centric Debugging — MAD Workshop’14, Athens, Greece — October 8th, 2014