synchronous modeling of data intensive applications
play

Synchronous Modeling of Data-Intensive Applications e, Huafeng. - PowerPoint PPT Presentation

Synchronous Modeling of Data-Intensive Applications e, Huafeng. Yu, A. Gamati E. Rutten, P. Boulet and J.-L. Dekeyser { Yu, Gamatie, Boulet, Dekeyser } @lifl.fr Eric.Rutten@inrialpes.fr DART project, INRIA Futurs / WEST group, LIFL This


  1. Synchronous Modeling of Data-Intensive Applications e, ´ Huafeng. Yu, A. Gamati´ E. Rutten, P. Boulet and J.-L. Dekeyser { Yu, Gamatie, Boulet, Dekeyser } @lifl.fr Eric.Rutten@inrialpes.fr DART project, INRIA Futurs / WEST group, LIFL

  2. This talk : ◮ Detailed presentation of Array-OL / Gaspard ◮ First results of study

  3. Plan Introduction Gaspard methodology General scheme Data-intensive processing Array-OL language Existing works Simple synchronous modeling of Gaspard models Parallel model Serialized model Validation issues Conclusions

  4. Introduction Context : data-intensive applications (DIA) in embedded systems ◮ regular multidimensional data processing ◮ parallel processing in System-on-Chip (SoC) Motivations : adequate techniques for ◮ efficient data manipulation ◮ analysis of implementation properties Approach : combination of ◮ a formalism dedicated to DIA ( Array-OL ) ◮ data-flow synchronous equation models

  5. Gaspard methodology Refactoring Array-OL Appli archi pretty editors PIM PIM Association PIM Synchronous Technologies Depolyed TLM PIMs High Perf Corba SystemC PSM PSM PSM produce RTL PIM Fortran SystemC Corba code code code Interop Bridge SystemC Verilog VHDL PSM Performance PSM PSM Analysis SystemC Verilog VHDL files code files Interop Bridge

  6. General scheme diagnosis, debug codesign analysis transformations verification compilation clock calculus simulation TLM, RTL simulation code Lustre generators synchronous transf1 equations Lucid Synchrone Gaspard2 (metamodel) (Array-OL metamodel) Signal + + transf2 control control formal modeling intermediate specification language format language

  7. Introduction Gaspard methodology General scheme Data-intensive processing Array-OL language Existing works Simple synchronous modeling of Gaspard models Parallel model Serialized model Validation issues Conclusions

  8. Array-OL Array-OL (Array-Oriented Language) : initially proposed by Thomson Marconi Sonar [DD98] ◮ Specification language for full parallelism ◮ Data manipulation through arrays ◮ Deadlock free and deterministic by construction

  9. Array-OL Array-OL (Array-Oriented Language) : initially proposed by Thomson Marconi Sonar [DD98] ◮ Specification language for full parallelism ◮ Data manipulation through arrays ◮ Deadlock free and deterministic by construction ◮ Descriptions independent from implementation platforms ◮ Two types of parallelism in application specifications : Task parallelism and Data parallelism

  10. Array-OL (cont’d) Task parallelism and data dependencies : (1920 , 1080 , ∞ ) (720 , 1080 , ∞ ) Task1 (720 , 1080 , ∞ ) Task3 (720 , 480 , ∞ ) (720 , 1080 , ∞ ) Task2 (1600 , 1200 , ∞ ) (720 , 1080 , ∞ )

  11. Array-OL (cont’d) Different task models : ◮ Elementary task : atomic computation block (instantaneous function)

  12. Array-OL (cont’d) Different task models : ◮ Elementary task : atomic computation block (instantaneous function) ◮ Hierarchical task : task represented by hierarchical acyclic graphs in which ◮ each node consists of a task, and ◮ edges are labeled by the arrays

  13. Array-OL (cont’d) Different task models : ◮ Elementary task : atomic computation block (instantaneous function) ◮ Hierarchical task : task represented by hierarchical acyclic graphs in which ◮ each node consists of a task, and ◮ edges are labeled by the arrays ◮ Repetition task : expression of data parallelism

  14. Array-OL (cont’d) Data parallelism ◮ Repetition element : the subtask to be repeated ◮ Repetition space : limitation of repetition number and link between inputs and outputs ◮ Interface : input and output arrays ◮ Tiler : defines how to obtain sub-arrays from a input array and how to store sub-arrays in a output array

  15. Array-OL (cont’d) Example of a repetition task R (3 , 2) (9 , 8) (3 , 4) (2 , 3) (11 , 6) E (3 , 2) (1) � 1 � � 1 � � 2 � 0 1 F = F = F = 0 1 0 0 1 � 0 � � 0 � � 0 � o = o = o = 0 0 0 � � � � � � 3 0 0 0 3 0 P = P = P = 0 4 0 1 0 3

  16. Array-OL (cont’d) Tiler specification : ◮ o : original point of the array or reference pattern ◮ P : paving matrix (how the array is tiled by patterns) ◮ F : fitting matrix (how patterns are filled by array elements)

  17. Array-OL (cont’d) Paving : how the array is tiled by patterns. These patterns are calculated in any order. Paving example : o = ( 0 0 ), P = ( 2 0 0 3 ) Original point Repetition space : [5,4], limitation of pattern repetitions.

  18. Array-OL (cont’d) Paving : how the array is tiled by patterns. These patterns are calculated in any order. Paving example : o = ( 0 0 ), P = ( 2 0 0 3 ) Original point ��� ��� ��� ��� Point obtained from the iteration on the first vector ��� ��� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Repetition space : [5,4], limitation of pattern repetitions.

  19. Array-OL (cont’d) Paving : how the array is tiled by patterns. These patterns are calculated in any order. Paving example : o = ( 0 0 ), P = ( 2 0 0 3 ) �� �� �� �� �� �� �� �� Original point �� �� ��� ��� ��� ��� Point obtained from the iteration on the first vector ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� Point obtained from the iteration on the second vector ��� ��� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� Repetition space : [5,4], limitation of pattern repetitions.

  20. Array-OL (cont’d) Paving : how the array is tiled by patterns. These patterns are calculated in any order. Paving example : o = ( 0 0 ), P = ( 2 0 0 3 ) �� �� �� �� �� �� �� �� �� �� Original point �� �� �� �� ��� ��� ��� ��� Point obtained from the iteration on the first vector �� �� ��� ��� ��� ��� ��� ��� �� �� ��� ��� ��� ��� ��� ��� �� �� ��� ��� Point obtained from the iteration on the second vector ��� ��� ��� ��� �� �� �� �� �� �� �� �� ��� ��� Point obtained from the iteration on the two vectors �� �� �� �� �� �� �� �� ��� ��� �� �� �� �� �� �� �� �� Repetition space : [5,4], limitation of pattern repetitions.

  21. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 0 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  22. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 0 1 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  23. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  24. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  25. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  26. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 5 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1

  27. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 5 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1 Fitting example 2 : o = ( 0 ), F = ( 2 6 ) 0 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 2

  28. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 5 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1 Fitting example 2 : o = ( 0 ), F = ( 2 6 ) 0 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 2

  29. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 5 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1 Fitting example 2 : o = ( 0 ), F = ( 2 6 ) 0 2 4 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 2

  30. Array-OL (cont’d) Fitting : how each pattern is filled by array elements. Fitting example 1 : o = ( 0 ), F = ( 1 3 ) 3 4 5 0 1 2 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 1 Fitting example 2 : o = ( 0 ), F = ( 2 6 ) 6 0 2 4 0 1 2 3 4 5 6 7 8 9 10 Pattern Array 2

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend