Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of...

78
stmicroelectronics, university of grenoble/lig laboratory STMicroelectronics LIG University of Grenoble Interactive Debugging of Dynamic Dataflow Embedded Applications. Kevin Pouget , Patricia Lopez Cueva, Miguel Santana, Jean-François Méhaut HIPS’13, Boston, USA — May 20 th 2013

Transcript of Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of...

Page 1: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

STMicroelectronicsLIGUniversity of Grenoble

Interactive Debugging ofDynamic Dataflow Embedded Applications.

Kevin Pouget, Patricia Lopez Cueva,Miguel Santana, Jean-François Méhaut

HIPS’13, Boston, USA — May 20th 2013

Page 2: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Embedded System Development• High-resolution multimedia app. ⇒ high performance expectations.

• H.265 HEVC• Augmented reality,• 4K digital television• . . .

• Sharp time-to-market constraints

⇒ Important demand for• Powerful parallel architectures

• MultiProcessor on Chip (MPSoC)• Convenient programming methodologies

• Dynamic dataflow programming• Efficient verification and validation tools

• Our research contribution

Slide 2 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 3: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

MultiProcessor on Chip (MPSoC)• Parallel architecture

• More difficult to program• Maybe heterogeneous

• Application-specific processors,• Hardware accelerators,• GPU-like architecture (OS-less processors)

• Embedded system• Constrained environment,• On-board debugging complicated→ performance debugging only

• Limited-scale functional debugging on simulators

Slide 3 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 4: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it. +

*

+

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 5: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it. +

*

+

5

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 6: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it.

+

*

+

5 7

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 7: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it.

+

*

+

2 3

⇒ Inherently parallel (“2 PCs” here)

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 8: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it.

+

*

5

+

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 9: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it.

+

*

5

+

12

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 10: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it. +

*

+

60

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 11: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological Context

Dataflow Programming• Alternative to von Neumann model (↔ C/ASM)• Instructions executed when their operandsa are ready,not when the Instruction Pointer(aka. Program Counter, %PC)reaches it. +

*

+

60

⇒ Inherently parallel

⇒ Today: coarser granularity, with imperative/object instruction blocksaoperand == token == message

Slide 4 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 12: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological ContextDifferent Dataflow Models

Decidable Dataflow• Correctness analysis• Deadlock-free static scheduling• Powerful optimization

but:• Strong constraints imposed to dev.• Reduced expressiveness

• no dynamic problem

Dynamic Dataflow

e

ctlr

dyn_filter

out_1

out_2in

WORK() { /* dyn_filter.c */

flg = ctlr.next()

cnt = ctlr.next()

if (flg)

out_1.send(treat(cnt))

else

for (i in 0:cnt)

nxt = in.next()

out_2.send(treat(nxt))

}

1

Slide 5 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 13: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological ContextDifferent Dataflow Models

Decidable Dataflow• Correctness analysis• Deadlock-free static scheduling• Powerful optimization

but:• Strong constraints imposed to dev.• Reduced expressiveness

• no dynamic problem

Dynamic Dataflow• Increased modeling flexibility• Conditional token emission/rcption• Variable input/output rates

but:• Limited static analysis• Debugging is notstraightforward ,

e

ctlr

dyn_filter

out_1

out_2in

WORK() { /* dyn_filter.c */

flg = ctlr.next()

cnt = ctlr.next()

if (flg)

out_1.send(treat(cnt))

else

for (i in 0:cnt)

nxt = in.next()

out_2.send(treat(nxt))

}

1

Slide 5 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 14: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Technological ContextDifferent Dataflow Models

Decidable Dataflow

Dynamic Dataflow• Increased modeling flexibility• Conditional token emission/rcption• Variable input/output rates

but:• Limited static analysis• Debugging is notstraightforward ,

e

ctlr

dyn_filter

out_1

out_2in

WORK() { /* dyn_filter.c */

flg = ctlr.next()

cnt = ctlr.next()

if (flg)

out_1.send(treat(cnt))

else

for (i in 0:cnt)

nxt = in.next()

out_2.send(treat(nxt))

}

1

Slide 5 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 15: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 6 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 16: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 6 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 17: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow Applications

Dataflow applications

Graph-Based Architect. Flow-Fork Instructions Token-Based Execution

pipe

pred_controller

ipredhwcfg

ipf

Single-threaded applications Multi-threaded applications

• only one execution context • multi-sequential execution• flat organization:

• no inter-thread relationshipSlide 7 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 18: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow Applications

Dataflow applications

Graph-Based Architect. Flow-Fork Instructions Token-Based Execution

WORK() { /* dyn_filter.c */

flg = ctlr.next()

cnt = ctlr.next()

if (flg)

out_1.send(treat(cnt))

else

for (i in 0:cnt)

nxt = in.next()

out_2.send(treat(nxt))

}

1

⇐=

after this instruction:• dyn_filr continues• out_1 can run

ctlr

dyn_filter

out_1

out_2in

Single-threaded applications Multi-threaded applications• %PC sequential execution• simple flow-ctrl mechanisms:

• functions, if-else, loops

Slide 7 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 19: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow Applications

Dataflow applications

Graph-Based Architect. Flow-Fork Instructions Token-Based Execution

• no function calls• only async. filter activation

• tokens exchanged among filters

• filter execution conditioned byinput tokens generation

pred_controller

ipredhwcfg

pipe

ipf

1

1

Single-threaded applications Multi-threaded applications• %PC sequential execution• simple flow-ctrl mechanisms:

• functions, if-else, loops

Slide 7 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 20: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow ApplicationsExample

pipe

pred_controller

ipredhwcfg

(asleep)

ipf

• The application is frozen, how can GDB help us?• red filters are starving, waiting for data from the red link• filter hwcfg was not scheduled for execution by pred_controller

• hint: not much!

Slide 8 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 21: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow ApplicationsExample

pipe

pred_controller

ipredhwcfg

(asleep)

ipf

(gdb) info threadsId Target Id Frame1 Thread 0xf7e77b 0xf7ffd430 in __kernel_vsyscall ()

* 2 Thread 0xf7e797 operator= (val=..., this=0xa0a1330)

Slide 9 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 22: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow ApplicationsExample

pipe

pred_controller

ipredhwcfg

(asleep)

ipf

(gdb) thread apply all whereThread 1 (Thread 0xf7e77b):#0 0xf7ffd430 in __kernel_vsyscall ()#1 0xf7fcd18c in pthread_cond_wait@ ()#2 0x0809748f in wait_for_command_completion(struct ... *)#3 0x0809596e in pred_controller_work_function()#4 0x08095cbc in entry(int, char**) ()#5 0x0809740a in host_launcher_entry_point ()#6 0xf7fc9aff in start_thread ()

Slide 10 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 23: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow ApplicationsExample

pipe

pred_controller

ipredhwcfg

(asleep)

ipf

Thread 2 (Thread 0xf7e797):#0 operator= (val=..., this=0xa0a1330)#1 pipeRead (data=0) at pipeFilter.c:154154 Smb = pedf.io.hwcfgSmb[count];#2 0x0804da63 in PipeFilter_work_function () at pipe.c:361#3 0x080a4132 in PedfBaseFilter::controller (this=0xa0a0d18)#4 0x080bec81 in sc_core::sc_process_b::semantics (this=0xa0a3598)#5 0x080c12f0 in sc_core::sc_thread_cor_fn (arg=0xa0a3598)#6 0x08111831 in sc_core::sc_cor_qt_wrapper (...)

Slide 11 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 24: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Debugging Challenges of Dataflow Applications

ObjectiveProvide debugger users with means to

better understand the state of the dataflow executionand easily reach key transition events.

Slide 12 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 25: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 12 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 26: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive Debugging

Idea: Integrate dataflow programming model conceptsin interactive debugging

Slide 13 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 27: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Application State• model the application as a graph• view token distribution• sent/received counters on filter interfaces• filter state: blocked waiting for more data? deadlocked ?

pipe

pred_controller

ipredhwcfg

ipf

Slide 14 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 28: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Application State• model the application as a graph• view token distribution• sent/received counters on filter interfaces• filter state: blocked waiting for more data? deadlocked ?

pipe

pred_controller

ipredhwcfg

ipf1

1

2

3

Slide 14 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 29: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Application State• model the application as a graph• view token distribution• sent/received counters on filter interfaces• filter state: blocked waiting for more data? deadlocked ?

pipe

pred_controller

ipredhwcfg

ipf

10

2010

Slide 14 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 30: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Application State• model the application as a graph• view token distribution• sent/received counters on filter interfaces• filter state: blocked waiting for more data? deadlocked ?

pipe

pred_controller

ipredhwcfg

(asleep)

ipf

Slide 14 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 31: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Application State• model the application as a graph• view token distribution• sent/received counters on filter interfaces• filter state: blocked waiting for more data? deadlocked ?

pipe

pred_controller

ipredhwcfg

ipf

Slide 14 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 32: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 33: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 34: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

break

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 35: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 36: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1break

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 37: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1

1

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 38: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1

1break

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 39: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1

11

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 40: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow ControlCatchpoints on dataflow events:• filter is activated or terminates• token generation/consumption

• and allow conditional stops with token inspection

pipe

pred_controller

ipredhwcfg

ipf

1

11

break

Slide 15 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 41: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow Control / Step-by-step• token exchange ⇐⇒ function calls

pipe

pred_controller

ipredhwcfg

ipf

Slide 16 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 42: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow Control / Step-by-step• token exchange ⇐⇒ function calls

pipe

pred_controller

ipredhwcfg

ipfZ

Slide 16 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 43: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow Control / Step-by-step• token exchange ⇐⇒ function calls

pipe

pred_controller

ipredhwcfg

ipfZ

Slide 16 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 44: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow Control / Step-by-step• token exchange ⇐⇒ function calls

pipe

pred_controller

ipredhwcfg

ipfZ

Slide 16 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 45: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Flow Control / Step-by-step• token exchange ⇐⇒ function calls

pipe

pred_controller

ipredhwcfg

ipfZ

Slide 16 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 46: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Dataflow-Aware Interactive DebuggingIntegrate dataflow programming model concepts in interactive debugging

Two-level Debugging• source-code and symbol breakpoints• line-by-line• watchpoints, processor inspection, etc.

(gdb) next(gdb) step(gdb) break $pc + 0x45F(gdb) break hwcfgFilter.c:27 if *mbType != 0xFFFFFFFF(gdb) watch *pedf.attr.cHwcfgQuant

Slide 17 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 47: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 17 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 48: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationProof-of-concept environment

Platform 2012ST/CEA MPSoC research platform• Heterogeneous• 4x16 CPU OS-less comp. fabric

Slide 18 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 49: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationProof-of-concept environment

Dataflow Programming Model• Predicated Execution DataFlow

• Dataflow framework for H.265

Platform 2012ST/CEA MPSoC research platform• Heterogeneous• 4x16 CPU OS-less comp. fabric

Slide 18 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 50: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationProof-of-concept environment

The Gnu Debugger• Adapted to low level/C debugging

• Large user community

• Extendable with Python API

Dataflow Programming Model• Predicated Execution DataFlow

• Dataflow framework for H.265

Platform 2012ST/CEA MPSoC research platform• Heterogeneous• 4x16 CPU OS-less comp. fabric

Slide 18 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 51: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationProof-of-concept environment

The Gnu Debugger• Adapted to low level/C debugging

• Large user community• Extendable with Python API

Dataflow Programming Model• Predicated Execution DataFlow

• Dataflow framework for H.265

Platform 2012ST/CEA MPSoC research platform• Heterogeneous• 4x16 CPU OS-less comp. fabric

Slide 18 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 52: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events

⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 53: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 54: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 55: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 56: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 57: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 58: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 59: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 60: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 61: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 62: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 63: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 64: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 65: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 66: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 67: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 68: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Proof of Concept ImplementationWork with framework events⇒ Detect and interpret key events in the programming framework

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 69: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 19 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 70: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Case Study: a H.264 Video DecoderOverview

• dynamic dataflow application• exploit P2012 heterogeneous capabilities• eventually, filters ⇒ HW accelerators

front

pred

front_controller

bh

imvp

pred_controller

red

pipe

ipred

hwcfg

3 ipf

4

2

H.264 logo byhttp://bullboykennels.deviantart.com

Slide 20 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 71: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Case Study: a H.264 Video DecoderApplication State

• Model the application as a graph• View token distribution

front

pred

front_controller

bh

imvp

pred_controller

red

pipe

ipred

hwcfg

3 ipf

4

2

(gdb) info connections pipe#tk #interface #remote itf #remote filter

Red2PipeLumaDC_in < Red2PipeLumaDC_out front.red(3) HwcfgQuant_in < pipe_HwcfgQuant_out hwcfg

Pipe2AddCrMB_out > Pipe2AddCrMB_in ipred(2) LumaCBF_out > LumaCBF_in ipf

Slide 21 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 72: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Case Study: a H.264 Video DecoderStep-by-step

• Next token send / received

(gdb) filter pipe next token out...[Stopped on token enqueued in ‘Pipe2IpredCrMB_out -> ipred’]120 pedf.io.Pipe2IpredCrMB_out[count++] = *Pipe2IpredCrMB;

(gdb) filter ipred next token in...[Stopped on token received from ‘Pipe2IpredCrMB_in <- pipe’]204 pedf.data.Pipe2IpredCrMB = pedf.io.Pipe2IpredCrMB_in[count++];

(gdb) filter pipe itf Pipe2IpredCrMB_out follow last

Slide 22 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 73: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Case Study: a H.264 Video DecoderStep-by-step

• Next token send / received

(gdb) filter pipe next token out...[Stopped on token enqueued in ‘Pipe2IpredCrMB_out -> ipred’]120 pedf.io.Pipe2IpredCrMB_out[count++] = *Pipe2IpredCrMB;

(gdb) filter ipred next token in...[Stopped on token received from ‘Pipe2IpredCrMB_in <- pipe’]204 pedf.data.Pipe2IpredCrMB = pedf.io.Pipe2IpredCrMB_in[count++];

(gdb) filter pipe itf Pipe2IpredCrMB_out follow last

Slide 22 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 74: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Agenda

1 Debugging Challenges of Dataflow Applications

2 Dataflow-Aware Interactive Debugging

3 Proof of Concept Implementation

4 Case Study: a H.264 Video Decoder

5 Conclusion

Slide 22 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 75: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Conclusion• Debugging complex applications is challenging• Lack of high level information about programming frameworks

• Our work: bring debuggers closer to dataflow programming models• Better understanding application behavior• Keep programmers focused on bug tracking

• Proof-of-concept• P2012 dataflow programming environment

• component debugging published earlier• different models, same approach⇒ first step towards programming-model centric debugging

• GDB and its Python interface• missing hooks contributed to the project

• Going further with programming-model aware debugging• GPU computing, OpenCL API• Visualization to aid in understanding app. behavior

Slide 23 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 76: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Conclusion• Debugging complex applications is challenging• Lack of high level information about programming frameworks

• Our work: bring debuggers closer to dataflow programming models• Better understanding application behavior• Keep programmers focused on bug tracking

• Proof-of-concept• P2012 dataflow programming environment

• component debugging published earlier• different models, same approach⇒ first step towards programming-model centric debugging

• GDB and its Python interface• missing hooks contributed to the project

• Going further with programming-model aware debugging• GPU computing, OpenCL API• Visualization to aid in understanding app. behavior

Slide 23 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 77: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Conclusion• Debugging complex applications is challenging• Lack of high level information about programming frameworks

• Our work: bring debuggers closer to dataflow programming models• Better understanding application behavior• Keep programmers focused on bug tracking

• Proof-of-concept• P2012 dataflow programming environment

• component debugging published earlier• different models, same approach⇒ first step towards programming-model centric debugging

• GDB and its Python interface• missing hooks contributed to the project

• Going further with programming-model aware debugging• GPU computing, OpenCL API• Visualization to aid in understanding app. behavior

Slide 23 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013

Page 78: Interactive Debugging of Dynamic Dataflow Embedded ... · stmicroelectronics, university of grenoble/lig laboratory TechnologicalContext EmbeddedSystemDevelopment High-resolutionmultimediaapp.

s tm icroelectron i c s , un i ver s i ty of grenoble/l ig laboratory

Thanks for your attention

Slide 24 — [email protected] — Dynamic Dataflow Applications Debugging — HIPS’13, Boston, USA — May 20th 2013