Gaspard tutorial

94

Transcript of Gaspard tutorial

Page 1: Gaspard tutorial
Page 2: Gaspard tutorial

Gaspard2 Tutorial

Rabie Ben Atitalah, Jean-Luc Dekeyser andPierre Boulet

24 September 2008

Page 3: Gaspard tutorial

Overview

Page 4: Gaspard tutorial

Overview

Page 5: Gaspard tutorial

High Performance ApplicationDevelopment: MPSoC

VerificationSimulationSynthesis

Multiple languagesMultiple abst. levels

Page 6: Gaspard tutorial

Application Domain of Gaspard2:intensive signal processing

"Gaspard" stands for

Graphical array specification for parallel anddistributed computing

Page 7: Gaspard tutorial

Hypotheses

É component-basedÉ massive

parallelismÉ regular

applications andhardware

É no complex flow ofcontrol

É static scheduling,no RTOS

Page 8: Gaspard tutorial

MARTE packages used in Gaspard2É Foundations

É Non Functional PropertiesÉ Generic Component Model

É Flow portsÉ Allocation

É Detailed Resource ModelingÉ Hardware Resource Modeling::HwLogical

É Repetitive Structure Modeling

Page 9: Gaspard tutorial

���������������

����������� ������� ������� ����������������������������� � �������������� ���!

�� �� �������

"#$%&'$()*#+*,+-$.&/$0,12345$)1$+565410$75*4893:5$*#+$;:<5++5+$(=()5:(

Page 10: Gaspard tutorial

>

��?������@��������� �A����� ������AB������C!C

>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������������

� �������������������������������������������������������� ������������������ �� �!!�� "����������!���#���$���������%&���%''(

� �������������������������������������������)�� �!!����*�������������)����++���������������� D))0-EEFFFGH*,,1448,5(5*,HDG1,IE

� "������������������,����������������������������� J;"$/KL9$M$H1#)*H)-$(5<*()35#GI5,*,+NH5*G2,O

� PQ*(H*,$;(03#1R*S$LT<*()35#$'T,*,+S$L*21Q*#$9*D*$*#+$U,T+T,3H$9D1:*(G$$

� KV7K"$MH1#)*H)-$71<5,)GW5X(3:1#5N(10D3*G3#,3*G2,O� JD*,45($"#+,TS$71<5,)$+5$L3:1#5S$Y35,,5$Z1Q45)

� 9D*45($979$MH1#)*H)-$/*Q,5#)G,31Q[N)D*45(I,1Q0GH1:O� &*+5453#5$U*QI\,5S$/*Q,5#)$731Q[S$L5<*()35#$W5:*)D35Q

Page 11: Gaspard tutorial

]

��?������@��������� �A����� ������AB������C!C

]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������������������

� .���������������$�������������������������������,���

����������������.�������������������,��������������������

����������

� U1,$W1:*3#$^35F$45654

� U1,$.&/$Y,12345$^35F$/5654

� U1,$.(5,$&1+54$^35F$/5654

Page 12: Gaspard tutorial

e_

��?������@��������� �A����� ������AB������C!C

e_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� ��������������������� 1�

� �����5

� Y4*)21,:$:1+543#I$

� �����6

� 7505)3)365$(),QH)Q,5$:1+543#I

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

Page 13: Gaspard tutorial

e`

��?������@��������� �A����� ������AB������C!C

e`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)�������8���������������������

� ��������

� )������������������������������������������� ����������

���������

� V55+$21,$:*#*I5*<45$*#+$,5Q(*<45$035H5($12$(12)F*,5

� u5=$5[*:045(-$/3ID)F53ID)8JJ&S$LJ"S$"Q)1(*,

� )���������������������������������������!�����1�!�������

����������������

� ;#)3)35($Q#+5,$*#*4=(3(E+5(3I#$<,1l5#$+1F#$3#)1$*$(5,35($12$H1:01#5#)(

� "0043H*<45$*)$+3225,5#)$()*I5($12$)D5$0,1H5((

� W3225,5#)$l3#+-$*H)365$6(G$0*((365$M5GIGS$.&/$*H)365$H4*((5(O

� ;[*:045($12$,54*)5+$4*#IQ*I5(-$L=(&/S$""W/

9D5,5$3($*$#55+$)1$0,163+5$:1+543#I$H1#(),QH)($)1$(Q001,)$)D5(5$H1#H50)($*)$+3225,5#)$45654($12$*<(),*H)31#

Page 14: Gaspard tutorial

ea

��?������@��������� �A����� ������AB������C!C

ea

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

.���������������������?+:

� ?+��������������������������������������������������������

� 9D5$l5,#54$12$)D5$4*#IQ*I5$+523#5($�����$*#+$�������

� !���������������$+523#5($"���$*#+$������$*#+$0,163+5$)D5$*<343)=$)1$+5(H,3<5$*$�����$*($*#$*((5:<4=$12$0*,)(

� #����*#+$"�$�%�%�������$+523#5$)D5$#1)31#$12$H1:01#5#)$,5*43R*)31#$*#+$*++($0*Hl*I3#I$H*0*<343)35(

� K#$*#=$H*(5S$#1$(Q001,)$21,$241F81,35#)5+$H1::Q#3H*)31#(

Page 15: Gaspard tutorial

eb

��?������@��������� �A����� ������AB������C!C

eb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����)�����������

� 0���������������������,���������������8����������

� L=(&/S$L03,3)S$""W/S$/3ID)F53ID)8JJ&S$;"L98"W/>S$"Q)1(*,

� #��������������������������������������������

� ���������������?+�����������������$�������������������������������

!��+�������������������

� ")1:3H$*#+$#1#8*)1:3H$241F$01,)(

� U41F$0,105,)35($*#+$241F$(05H323H*)31#(

� @�����������,��������������������+���������8))$���#+�������! 8

�#+%$�!�����������������

Page 16: Gaspard tutorial

ed

��?������@��������� �A����� ������AB������C!C

ed

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���� �� )����������

Page 17: Gaspard tutorial

ee

��?������@��������� �A����� ������AB������C!C

ee

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

����������������������������

L)*#+*,+$.&/$01,)$)=05+$<=$*$H4*(($)D*)$Q(5($)D5$/1H*)31#"HH5(($3#)5,2*H5

")1:3H$241F$01,)$)=05+$<=$*$J4*((3235,

J1:045[$241F$01,)$)=05+$<=$*$241F$(05H323H*)31#

Page 18: Gaspard tutorial

fgg

��?������@��������� �A����� ������AB������C!C

fgg

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����������������������

.&/$+545I*)31#$H1##5H)1,$Q(5+$F3)D$*#$*)1:3H$241F$01,)

%Q)I13#I$*)1:3H$241F$01,)

K#H1:3#I$*)1:3H$241F$01,)

.&/$+545I*)31#$H1##5H)1,$Q(5+$F3)D$*$#1#8*)1:3H$241F$01,)

Page 19: Gaspard tutorial

fge

��?������@��������� �A����� ������AB������C!C

fge

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� "$H1:01#5#)$:1+54$21,$79E;

� �����5

� ����������������$

� �����6

� 7505)3)365$(),QH)Q,5$:1+543#I

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

Page 20: Gaspard tutorial

ff`

��?������@��������� �A����� ������AB������C!C

ff`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����������2��������

� @���������

� "441H*)5$*#$*0043H*)31#$545:5#)$)1$*#$0,1H5((3#I$04*)21,:$545:5#)

� 7523#5$*$I5#5,*4$545:5#)$3#)1$1#5$1,$(565,*4$:1,5$(05H323H$545:5#)($

� 0�������������!��+������������ J*#$1#4=$*441H*)5$*0043H*)31#$)1$5[5HQ)31#$04*)21,:

� J*#$*))*HD$VUY$H1#(),*3#)($)1$)D5$*441H*)31#

Page 21: Gaspard tutorial

ffa

��?������@��������� �A����� ������AB������C!C

ffa

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������������������������������������

� 0�����������������������������������������������

� #������������������������������������������

vD*)$H*#$(5,65$*($*$)*,I5)$12$*#$*441H*)31#S$)D5$0D=(3H*4$635F-�$*$,5(1Q,H5$1,$*$(5,63H5G

vD*)$H*#$<5$*441H*)5+S$)D5$41I3H*4$635F-�$(),QH)Q,5$1,$<5D*631,

Page 22: Gaspard tutorial

f_b

��?������@��������� �A����� ������AB������C!C

f_b

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������

!��������,�����

&"79;

!�������������

�����;�

��������

����������

P7&

#������-.

�������

!������;��-.�

�������

-�����,��-.�

�������

-.�������

������������

�������

p 3#H4Q+5 q

p 5[)5#+ q

p 3#H4Q+5 q

p 3#H4Q+5 q

p 3#H4Q+5 q

]$Q(5$H*(5($t$]$45654($12$+5)*34(

Page 23: Gaspard tutorial

f_d

��?������@��������� �A����� ������AB������C!C

f_d

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�-�����,�����������������

� -��:

� P3ID$45654$12$�����������

� ������������$635F$12$)D5$Pv$04*)21,:

� v3)D$l5=$0,105,)35(-

� ;GIGS$3#(),QH)31#$(5)$*#+$:5:1,=$(3R5G

� "$21,:*4$635F$12$Q(Q*4$��������������$

� "��

� P3ID$45654$+5(H,30)31#$12$5[3()3#I$*#+$)*,I5)5+$Pv$04*)21,:

� U3,()$()50($12$+5(3I#$12$#5F$Pv$*,HD3)5H)Q,5

� @�

� L=()5:$*,HD3)5H)(

� L12)F*,5$+5654105,(

Page 24: Gaspard tutorial

f_e

��?������@��������� �A����� ������AB������C!C

f_e

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�!������;�����������������

� -��:

� L05H3*43R5+$Pv$����������$:1+54

� V*)Q,5$12$+5)*34($+505#+($1#$)D5$���������,��

� ;[f$-$*Q)1#1:=$*#*4=(3($,5kQ3,5($01F5,$H1#(Q:0)31#$:1+543#I

� ;[>$-$vJ;9$*#*4=(3($#55+$+5)*34($1#$0,1H5((1,$(055+S$H1::Q#3H*)31#$<*#+F3+)D$*#+$:5:1,=$1,I*#3R*)31#m

� "������������������

� @�������;��

Page 25: Gaspard tutorial

f`g

��?������@��������� �A����� ������AB������C!C

f`g

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�#���������������������

� -��:

� P7&$3($*$+5)*345+$Pv$*,HD3)5H)Q,5$+5(3I#$4*#IQ*I5

� /5654$12$+5)*34($+505#+($1#$)D5$+5(H,30)31#$��������

� ;[f-$UQ#H)31#*4$(3:Q4*)1,$12$*$0,1H5((1,$1#4=$,5kQ3,5($3)($3#(),QH)31#$(5)$2*:34=

� ;[>-$Y5,21,:*#H5$(3:Q4*)31#$#55+$*$23#5$+5(H,30)31#$12$0,1H5((1,($:3H,18*,HD3)5H)Q,5G

� "��

� &1+548<*(5+$+*)*(D55)($+5(H,30)31#

� L3:Q4*)31#

� I5#5,*)31#$12$H1#23IQ,*)31#($21,$(3:Q4*)31#$)114(

� @�

� Pv$+5(3I#5,(

Page 26: Gaspard tutorial

f`f

��?������@��������� �A����� ������AB������C!C

f`f

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������

� -��������������������������������������

� LQHH5((365$���������$4*=5,(

� "���$I5#5,3H$H1#H50)($M'7&843l5O

� ,)�������%�������-�,)'����*-�,)�����������������.

� �$(05H323H$*#+$+5)*345+$,5(1Q,H5(

� ,)"�������-�,)#���"�������-�,)����-�,)''/-�,)#��-�,)#���%�-�,)�'�.

� "44$P7&$H1#H50)($*,5$,)�������0�1

� 9F1���������635F(������������������

+�������1���������

F �������G

-�������gGGw

gGGf

1F#5+75(1Q,H5(

F �������G

-�������!�,��

0,163+5+L5,63H5(

fGGw,5kQ3,5+L5,63H5(

gGGw

Page 27: Gaspard tutorial

f`>

��?������@��������� �A����� ������AB������C!C

f`>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������88�+��������������

� ���,������2Q#H)31#*4�����������

� @�����������������������������������������������������=

p PFY,1H5((1, qS$p PFY/W qSp PF"LKJq

p PFJ*HD5 qS$p PF7"&qS$p PF7%&qS$p PFW,365q

p PF&&. qSp PFW&" q

p PF",<3)5, q

p PFZ,3+I5 q

p PF&5+3* qS$p PFZQ( q

p PFW563H5 qS

p PFLQ001,) q

p PFKE% qp PFJ41Hl qSp PF93:5, q

G$$$$$$PFJ1:0Q)3#I$$$$$$ G$$$$$ G$$$$$$PFL)1,*I5$$$$$$ G$$$$$

G$$$$$$PFW563H5$$$$$$ G$$$$$

G$$$$$$PFJ1::Q#3H*)31#$$$$$$ G$$$$$

G$$$$$$PF93:3#I$$$$$$ G$$$$$

Page 28: Gaspard tutorial

f`]

��?������@��������� �A����� ������AB������C!C

f`]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������88�����������������

� ���,������0D=(3H*4��������������������

� @�����������������������������

� PF/*=1Q)

� U1,:(-$JD30S$J*,+S$JD*##54m

� W3:5#(31#(S$*,5*$*#+$*,,*#I5:5#)$:5HD*#3(:$F3)D3#$,5H)343#5*,$I,3+(

� ;#63,1#:5#)*4$H1#+3)31#(-$5GIG$)5:05,*)Q,5S$63<,*)31#S$DQ:3+3)=m

� PFY1F5,

� Y1F5,$H1#(Q:0)31#$*#+$D5*)$+3((30*)31#

G$$$$$$PF/*=1Q)$$$$$$ G$$$$$ G$$$$$$PFY1F5,$$$$$$ G$$$$$

p PFJ1:01#5#) ql3#+$-$xJ*,+S$JD*##54S$JD30S$Y1,)y

p PFJ1143#ILQ004=qp PFY1F5,LQ004=q

Page 29: Gaspard tutorial

f`_

��?������@��������� �A����� ������AB������C!C

f`_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������,�,��

F ������ G

-�

F ������G

-�+������

F ������G

-���������

-�)��������-�!�����

-�)������������

-� �����

-�+�����

-�!����������

-�#,��

F ������G

�� �== ��

p 3:01,) q

-�����

-� ����� -� �����

F ����+������ G

�� �==+������==@����9"�K ���

p 3:01,) q

-�����

Page 30: Gaspard tutorial

f``

��?������@��������� �A����� ������AB������C!C

f``

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-�����

F ������ G

-�

F ������G

-�+������

F ������G

-���������

-�)��������-�!�����

-�)������������

-� �����

-�+�����

-�!����������

-�#,��

F ������G

�� �== ��

p 3:01,) q

-�����

-� ����� -� �����

F ����+������ G

�� �==+������==@����9"�K ���

p 3:01,) q

-�����

Page 31: Gaspard tutorial

f`a

��?������@��������� �A����� ������AB������C!C

f`a

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-�����

:5:1,=L3R5$-$VUYXW*)*L3R5*++,5((L3R5$-$VUYXW*)*L3R5)3:3#I($-$93:3#I$rws

F �������G

-�����

F �������G�� �== �==!�����

F �������G-�������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

1,I*#3R*)31#$-$&5:1,=%,I*#3R*)31#3(L=#HD,1#1Q($-$VUYXZ1145*#3(L)*)3H$ -VUYXZ1145*#3(V1#^14*)345$ -$VUYXZ1145*#,504XY143H=$ -$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#1)*)31#$-$VUYXL),3#I+5(H,30)31#$-$VUYXL),3#I6*4Q5$-$VUYXWQ,*)31#

p +*)*9=05 q �����

#<71F($-$VUYXV*)Q,*4#<J14Q:#($-$VUYXV*)Q,*4#<Z*#l($-$VUYXV*)Q,*4F1,+L3R5$-$VUYXW*)*L3R5

p +*)*9=05q����������;�����

#<L5)($-$VUYXV*)Q,*4<41HL3R5$-$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05 q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p 5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p 5#Q:5,*)31# q���K������

)=05$-$7%&X9=051,I*#3R*)31#$-$&5:1,=%,I*#3R*)31#

F �������G-���

&*(l5+7%&;Y7%&%9YX;Y7%&;;Y7%&U4*(D%)D5,.#+523#5+

p 5#Q:5,*)31#q��K ��

(5H)1,L3R5$-$VUYXW*)*L3R5

F �������G-�#��,

<Q225,x(Q<(5)($1F#5+Pvy

gGGf

-�����

Page 32: Gaspard tutorial

f`b

��?������@��������� �A����� ������AB������C!C

f`b

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� PFJ*HD5$3($*$0,1H5((3#I$:5:1,=$FD5,5$2,5kQ5#)4=$Q(5+$+*)*$H*#$<5$()1,5+$21,$,*03+$*HH5((

� W5)*345+$+5(H,30)31#$12$)D5$PFJ*HD5$3($#5H5((*,=$21,$05,21,:*#H5$*#*4=(3($*#+$(3:Q4*)31#$

Page 33: Gaspard tutorial

f`d

��?������@��������� �A����� ������AB������C!C

f`d

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p 5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$-$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05 q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p 5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p 5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$H*HD5$45654G� W52*Q4)$6*4Q5$3($f

Page 34: Gaspard tutorial

f`e

��?������@��������� �A����� ������AB������C!C

f`e

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$PFJ*HD5$(),QH)Q,5

� PFJ*HD5$3($1,I*#3R5+$Q#+5,$(5)($12$<41Hl(G

� "((1H3*)363)=$3($)D5$#Q:<5,$12$<41Hl($F3)D3#$5*HD$(5)G

� K2$*((1H3*)363)=$t$fS$H*HD5$3($+3,5H)$:*005+

� K2$#<L5)($t$fS$H*HD5$3($2Q44=$*((1H3*)365G

� %J/$,Q45

� �����*!�+��2��!���������!�+������������ ��*

Page 35: Gaspard tutorial

fag

��?������@��������� �A����� ������AB������C!C

fag

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$H*HD5$F,3)5$0143H=$� v,3)5Z*Hl-$J*HD5$F,3)5$3($#1)$3::5+3*)54=$

,5245H)5+$)1$)D5$<*Hl3#I$:5:1,=G

� v,3)59D,1QID-$v,3)5($*,5$3::5+3*)54=$:3,,1,5+G

Page 36: Gaspard tutorial

fb]

��?������@��������� �A����� ������AB������C!C

fb]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� "$H1:01#5#)$:1+54$21,$79E;

� �����5

� Y4*)21,:$:1+543#I$

� �����6

� ������,�����������������

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

Page 37: Gaspard tutorial

fba

��?������@��������� �A����� ������AB������C!C

fba

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������,�!��������������

� ���,�����

� %������������������ ���������������

� V5()5+$4110(

� &Q4)30,1H5((1,$L=()5:(

� ���� ���������������

� "0043H*)31#

� P*,+F*,5$04*)21,:

� "((1H3*)31#

� "���

� V5F$#1)*)31#$E$()5,51)=05(

Page 38: Gaspard tutorial

fbb

��?������@��������� �A����� ������AB������C!C

fbb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)����������������,�!��������������

� @��������=��� ���������� ����

��������������������������

�������������������8������

� 75IQ4*,$(0*H3#I$12$013#)($3#(3+5$*$)345

� 75IQ4*,$(0*H3#I$12$)345(

� K#D5,3)($2,1:$)D5$",,*=8%/$4*#IQ*I5

� J1#H50)(� !���$M5[)5#(31#$12$����������*O

� 91$:1+54$:Q4)3+3:5#(31#*4$*,,*=(

� +������������$M5[)5#(31#$12$�����$*#+$�������O

� 91$:1+54$)D5$)10141I=$12$)D5$43#l($<5)F55#$:Q4)3+3:5#(31#*4$*,,*=(

� Y*))5,#8<*(5+$,5IQ4*,$)10141I35(

Page 39: Gaspard tutorial

fbd

��?������@��������� �A����� ������AB������C!C

fbd

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

!����������

� 9����������� 7523#5:5#)$12$)D5$:Q4)3043H3)=$

#1)*)31#

� ^5H)1,$12$.#43:3)5+V*)Q,*4(

� �������� fa$�$x_S_y

� w$�$x`f>Sf>dSwy

F����������G?+==����������������

F��������G�!

F���������G

!����

(D*05$-$LD*05L05H323H*)31#$rfs

F ���� ��G

F���������� ���G

xH1445H)31#")),3<$t$(3R5y!���!�����������

(3R5$-$.#43:3)5+V*)Q,*4$rgGGws

Page 40: Gaspard tutorial

fbe

��?������@��������� �A����� ������AB������C!C

fbe

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

F����������G

?+==)����������

F����������G

?+==)�������

F���������G

*���!���� �

F���������G#�����+���

F��������G�!

F���������G

0�����������

,505)3)31#L0*H5W505#+5#H5$-$K#)5I5,^5H)1,$rfs3(&1+Q41$-$Z1145*#$t$2*4(5

F���������G ���

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[23))3#I$-$K#)5I5,&*),3[)345,$-$9345,L05H323H*)31#

0*))5,#LD*05$-$LD*05L05H323H*)31#$rfs,505)3)31#L0*H5$-$LD*05L05H323H*)31#$rfs

F���������G

�����

+���� ��������������

Page 41: Gaspard tutorial

fdg

��?������@��������� �A����� ������AB������C!C

fdg

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������������������

� !0#������ fa$0,1H5((1,(

� �������� 91,13+*4$_�_$I,3+

� Z3+3,5H)31#*4$H1##5H)31#(

� V1,)D8L1Q)D

� ;*()8v5()

p$PFKL"$q$x)=05$t$LK&Wy!0#?���

p$PFJ1:0Q)3#I75(1Q,H5$q0$-$;45:5#)*,=Y,1H$rx_S_ys

F 5

(

#

p$3#)5,7505)3)31#$qx,505)3)31#L0*H5W505#+5#H5$txfSgyS

:1+Q41$t$),Q5y

p$3#)5,7505)3)31#$qx,505)3)31#L0*H5W505#+5#H5$txgSfyS

:1+Q41t),Q5y

0g 0f 0> 0]

0_ 0` 0a 0b

0d 0e 0fg 0ff

0f> 0f] 0f_ 0f`

Page 42: Gaspard tutorial

fdf

��?������@��������� �A����� ������AB������C!C

fdf

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

��������������

� 9��������� ",,*=$(D*05

� Y*))5,#$(D*05

� 7505)3)31#$(0*H5$(D*05

� ���� 3����%-$,5IQ4*,$(0*H3#I$12$)D5$013#)($12$

)D5$)345(

� K#+5[$�

� LH*##3#I$)D5$0*))5,#

� "� �%-$,5IQ4*,$(0*H3#I$12$)D5$)345(

� K#+5[$�

� LH*##3#I$)D5$,505)3)31#$(0*H5

F���������G

���

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[23))3#I$-$K#)5I5,&*),3[)345,$-$9345,L05H323H*)31#

F ���� ��G

F����� ���G ���!�����������

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[$rfs23))3#I$-$K#)5I5,&*),3[

1,3I3#�M0*63#I$23))3#IOGM$O���$*,,*=G(D*05��

Page 43: Gaspard tutorial

fd>

��?������@��������� �A����� ������AB������C!C

fd>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������0����������������� ����B/1%C

� "������

� J14Q:#$65H)1,(

� Z*(3($12$)D5$)345

� Y*))5,#$(D*05

� Z1Q#+($12$)D5$23))3#I

� ��,���

� J14Q:#$65H)1,(

� Z*(3($12$)D5$04*H5:5#)$12$)D5$)345(

� 7505)3)31#$(0*H5

� Z1Q#+($12$)D5$0*63#I

� %,3I3#

� J11,+3#*)5($12$)D5$,525,5#H5$013#)$12$)D5$,525,5#H5$)345

Page 44: Gaspard tutorial

fd]

��?������@��������� �A����� ������AB������C!C

fd]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������0����������������� ����B%1%C

� "������

� J14Q:#$65H)1,(

� Z*(3($12$)D5$)345

� Y*))5,#$(D*05

� Z1Q#+($12$)D5$23))3#I

� ��,���

� J14Q:#$65H)1,(

� Z*(3($12$)D5$04*H5:5#)$12$)D5$)345(

� 7505)3)31#$(0*H5

� Z1Q#+($12$)D5$0*63#I

� %,3I3#

� J11,+3#*)5($12$)D5$,525,5#H5$013#)$12$)D5$,525,5#H5$)345

Page 45: Gaspard tutorial

fd_

��?������@��������� �A����� ������AB������C!C

fd_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������������������

� !�����������5/%������������������������������ LD*05$12$)D5$3#0Q)$+*)*$t$`f>��

� ������������"" ��� U1,$5*HD$D=+,10D1#5

� L43+3#I$F3#+1F$12$f>d$(*:045($565,=$]>$)3:5$()50(

"��!���

rx`f>Swys2$-$UU9$rx̀ f>Swys

rx`f>Sf>dSwys

p$)345,$qx1,3I3#txgSgyS23))3#ItxxgSfyyS

0*63#ItxxfSgySxgS]>yy

p$)345,$qx1,3I3#txgSgSgyS23))3#ItxxgSfSgyyS

0*63#ItxxfSgSgySxgSgSfyyy

rxf>dys

rxf>dys

Page 46: Gaspard tutorial

fd`

��?������@��������� �A����� ������AB������C!C

fd`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#�����������

� ���������������������

� !�������������������

��������������

���������

� ��������� 9343#I$<1)D$5#+(

� 9F1$)345,(

� v3)D$)D5$(*:5$)345(

� %#5$0*))5,#$(D*05

� %#5$,505)3)31#$(0*H5

� ����������������� ")$45*()$*44$PYU$+*)*$

+3(),3<Q)31#(

F���������G�����==�������

F��������G�!

F���������G

#��������

0*))5,#LD*05$-$LD*05L05H323H*)31#$rfs,505)3)31#L0*H5$-$LD*05L05H323H*)31#$rfs2,1:9345,$-$9345,L05H323H*)31#$rfs)19345,$-$9345,L05H323H*)31#$ rfs

Page 47: Gaspard tutorial

fda

��?������@��������� �A����� ������AB������C!C

fda

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#������������������

� #������������������"" ��������������������!0#������ V1$(0*)3*4$+3(),3<Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O

� Z41H$+3(),3<Q)31#$12$)D5$`f>$UU9($21,$5*HD$)3:5$()50

� L3R5$12$)D5$<41H$t$]>

� %#$)D5$fa$545:5#)*,=$0,1H5((1,(

Page 48: Gaspard tutorial

fdb

��?������@��������� �A����� ������AB������C!C

fdb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#������������������

� #������������������"" ��������������������!0#������ V1$(0*)3*4$+3(),3<Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O

� Z41H$+3(),3<Q)31#$12$)D5$`f>$UU9($21,$5*HD$)3:5$()50

� L3R5$12$)D5$<41H$t$]>

� %#$)D5$fa$545:5#)*,=$0,1H5((1,(

p$+3(),3<Q)5$qx0*))5,#LD*05$t$x]>yS$,505)3)31#L0*H5$t$x_S_SwyS$2,1:9345,$t$x1,3I3#$t$xgSgyS

$23))3#I$t$xxfSgyyS$0*63#Itxx]>SgySxf>dSgySxgSfyyyS

$)19345,$t$x1,3I3#$t$xgSgyS$$$$$$$$$$$$$$$$23))3#I$t$xxgSgyyS$$$$$$$$$$$$$$$$0*63#I$t$xxfSgySxgSfySxgSgyyyy

U2)L)*I5--2$-$UU9$rx̀ f>Swys

L3:+.#3)--0$-$;45:5#)*,=Y,1H$rx_S_ys

Page 49: Gaspard tutorial

fef

��?������@��������� �A����� ������AB������C!C

fef

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)��������������!

� ����������������������� &Q4)3+3:5#(31#*4$(),QH)Q,5($M*,,*=(O� 9343#I$<=$(Q<8(),QH)Q,5($M#1#$1,)D1I1#*4$1,$(0*,(5$)345($01((3<45O� /3#l($<5)F55#$(QHD$(),QH)Q,5($MH=H43H$1,$#1#$H=H43H$H1##5H)31#$0*))5,#($01((3<45O

� 9���������������������,������������������� J1:0*H)#5(($12$)D5$:1+54� ;223H35#H=S$:*3#)*3#*<343)=S$,5*+*<343)=

� �������������������������� �� .(5($^L/� Z5#523)($2,1:$)D5$H1:01#5#)$:1+54$M241F$01,)(O� "00435($)1$<1)D$*0043H*)31#$*#+$D*,+F*,5$H1:01#5#)(� ;[)5#+($*441H*)31#

� +����������� P*#+45($1#4=$*,,*=($M#1$2*#H35,$(D*05(O� v1Q4+$<5#523)$2,1:$*$HQ()1:$M63(Q*4O$)345,$5+3)1,

� .#+5,$+565410:5#)

Page 50: Gaspard tutorial

Detailed Example(∞)

Downscaler

(352,288,∞)

(132,128,∞)

Horiz. Filter

(352,288) (132,288)

Vert. Filter(132,288)

(132,128)

Page 51: Gaspard tutorial

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Page 52: Gaspard tutorial

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Page 53: Gaspard tutorial

Horizontal Filter: Input Tiler

0 310

17

r =�

00

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Page 54: Gaspard tutorial

Horizontal Filter: Input Tiler

0 310

17

r =�

10

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Page 55: Gaspard tutorial

Horizontal Filter: Input Tiler

0 310

17

r =�

25

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Page 56: Gaspard tutorial

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Page 57: Gaspard tutorial

Horizontal Filter: Output Tiler

0 110

17

r =�

00

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Page 58: Gaspard tutorial

Horizontal Filter: Output Tiler

0 110

17

r =�

10

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Page 59: Gaspard tutorial

Horizontal Filter: Output Tiler

0 110

17

r =�

25

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Page 60: Gaspard tutorial

Vertical Filter

Vertical filter

(132,288) (132,128)(132,32)

Vfilter

(14) (4)

F =

�01

�o =

�00

�P =

�1 00 9

�F =

�01

�o =

�00

�P =

�1 00 4

Page 61: Gaspard tutorial

Vertical Filter: Input Tiler

0 110

17

r =�

00

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

Page 62: Gaspard tutorial

Vertical Filter: Input Tiler

0 110

17

r =�

10

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

Page 63: Gaspard tutorial

Vertical Filter: Input Tiler

0 110

17

r =�

51

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

Page 64: Gaspard tutorial

RSM Semantics Summary

DSL for systematic signal processing

É First order pure functional languageÉ Multidimensional toroidal arraysÉ Pattern based data acess

Data parallel repetition

∀r,0 ≤ r < srepetition

∀i,0 ≤ i < spattern

t(r, i) = o+ (P F) ·�ri

�mod sarray

Page 65: Gaspard tutorial

Overview

Page 66: Gaspard tutorial

Software and hardware co-model for

data-intensive embedded systemco-design

Page 67: Gaspard tutorial

MARTE packages used in Gaspard2

Foundations Non Functional Properties Generic Component Model

Flow ports Allocation

Detailed Resource Modeling Hardware Resource Modeling::HwLogical

Repetitive Structure Modeling

Page 68: Gaspard tutorial

Gaspard2

UML2.0 MM

Gaspard2 MM

Marte MM

Page 69: Gaspard tutorial

Co-model for co-design

Marte and Gaspard Metamodels High level data parallel constructions Hierarchical Repetitive Application, architecture and association models

Iterative dependency expression Data flow and control flow mixing Gaspard2 UML profile available

With MagicDraw and Papyrus

Page 70: Gaspard tutorial

Optimization and compilation techniques

•Data parallel code transformations •Mapping and multi-objective hierarchical scheduling heuristics•Compilation from high-level models down to simulation, execution and synthesis •Eclipse integration•Model transformation techniques

•ModTransf, Momote, Mocode, QVTO

Page 71: Gaspard tutorial

HP-SoC simulation and synthesis

•Simulation for architecture/application/association exploration

•SystemC simulation framework at PVT and CABA level

•Performance and power consumption evaluation

•Synthesis for large and reconfigurable FPGA

•VHDL code generation

•Network on Chip and SIMD design for MppSoC

•MppSoC implementation in FPGA (16-64 PE “à la Maspar”)

•OpenMP execution on SMP

•Synchronous code generation

Page 72: Gaspard tutorial

Downscaler application

Horizontal filter: 8/3

CIF video frame: 352x288

Vertical filter:9/4

Resized video frame

Page 73: Gaspard tutorial

CIF Frame structure

GOBn

GOB.

GOB.

GOB6

GOB5

GOB4

GOB3

GOB2

GOB1

352

288

Y component

+GOBn/2GOB4GOB3GOB2GOB1

176

144

U component

+GOBn/2GOB4GOB3GOB2GOB1

176

144

V component

Page 74: Gaspard tutorial

Example: Downscaler

VFHF FCFGdata

Logical Memory

Sensor

Bus

MIPS processor

Hard Acc

CIF: 352x288

Task allocationData allocation

• First solution: Heterogeneous mono-processor architecture

• Second solution: Multi-processor architecture

Crossbar

4 to 16 MIPS processors

Page 75: Gaspard tutorial

Downscaler: main application

Page 76: Gaspard tutorial

Downscaler: main application

• Horizontal filter task

Page 77: Gaspard tutorial

Downscaler: main application

• Vertical filter task

Page 78: Gaspard tutorial

Downscaler: main application

• Downscaler task

Page 79: Gaspard tutorial

Downscaler: main application

• Main application

Page 80: Gaspard tutorial

Downscaler: main architecture

• Hardware elementary components

Page 81: Gaspard tutorial

Shared Memory MPSoC architecture

Example of MPSoC architecture

Page 82: Gaspard tutorial

Downscaler mapping

Page 83: Gaspard tutorial

Downscaler: Deployment

Hardware and software deployment Intellectual Property block (IP) reuse from libraries A deployment extension is introduced The most important concepts

VirtualIP SoftwareIP, HardwareIP implements CodeFile Specialization Characteristic PowerModel

Page 84: Gaspard tutorial

GaspardLib

GaspardLibSoftware Hardware

FFT, DCT, Convolution, FIR

Processor, cache, DMAC crossbar

EnergyProcessor, cache, DMAC crossbar

Page 85: Gaspard tutorial

Downscaler: Deployment

Page 86: Gaspard tutorial

Downscaler: Deployment

Page 87: Gaspard tutorial

Papyrus modeling editor

Open source UML2 specification compliant Afull Eclipse project such as EMF, etc. Support all UML2 diagrams and profile

MARTE, SysML, CCM

OCL verification Java and C++ code generation Developed and supported by CEA and LIFL (DaRT) www.papyrusuml.org

Page 88: Gaspard tutorial

Technology bases of Gaspard2

Model driven engineering metamodels model transformations

Eclipse platform metamodeling language: Ecore integration framework based on plugins transformation chains

Page 89: Gaspard tutorial

Gaspard2 model transformations

Page 90: Gaspard tutorial

Polyhedron model

Information given by the distribution in the high MPSoC model A polyhedron is generated for each task repetition Parameterized by a processor number (p0) and the task indexes

Page 91: Gaspard tutorial

Loop model

Scanning the polyhedron Corresponding loop generation Task repetition space Using the CLoog tool

Page 92: Gaspard tutorial

Pattern accurate (PA) TLM level

Fast simulation Data transfer observation Hardware/Software simulation before the processor

component is available

Instruction memory

Data memory

NoC Processor 0

Array0 Array1

Not used

Task E

Task C

Processor 1

Task A

TE

Allocation

Allocation

Task D

TB

TA

Task B

TDTC

Application execution graph

Page 93: Gaspard tutorial

Gaspard2 Démo…

UML Gaspard Polyhedron

Loop SystemC PA

https://gforge.inria.fr/projects/gaspard2/

Page 94: Gaspard tutorial

Overview