source: anr/task-frontend.tex

Last change on this file was 386, checked in by coach, 14 years ago

ia: modif final v1 et v2.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Revision HeadURL Id Date
File size: 5.1 KB
RevLine 
[291]1\begin{taskinfo}
2\let\LIP\leader
[335]3\let\INRIA\enable
[291]4\end{taskinfo}
5%
6\begin{objectif}
7The objective of this task is to convert the input specification of
8an hardware accelerator, which must be written in a familiar language
9(C/C++) with as few constraints as possible, into a form suitable for
10the HLS tools (i.e. HAS back-end tools of the COACH project). If the
[356]11target is an ASIP, the front-end has to extract
[291]12patterns from the source code and convert them into the definition
13of an extensible processor. If the target is a process network, the
14front end has to distribute the workload and the data sets as fairly
15as possible, identify communication channels, and output an \xcoach
16description.
17\end{objectif}
18%
19\begin{workpackage}
20  \subtask{ASIP compiler}
21  This sub-task aims at providing compiler support for custom instructions
22  within the HAS front-end. It will take as input the COACH intermediate
23  representation, and will output an annotated COACH IR containing the custom
24  instructions definitions along with their occurrence in the application.
25    \begin{livrable}
[335]26      \itemV{0}{12}{x}{\Sinria}{ASIP compilation flow}
[291]27        In this first version of the software, the computations patterns corresponding to
28        custom instructions are specified by the user, and then automatically extracted (when
29        beneficial) from the application intermediate representation.
[363]30      \itemL{12}{27}{x}{\Sinria}{ASIP compilation flow}{6:6:3}
[291]31        In this second version, the software will also be able to automatically identify
32        interesting pattern candidates in the application code, and use them as custom
33        instructions. 
34    \end{livrable}
[356]35%
[291]36 \subtask{Micro-architectural template models for ASIP}
37 In this sub-task, we provide micro-architectural template models for the two target
38 processor architectures (NIOS-II and MIPS) supported within the COACH-ASIP design flow.
39 For each processor, we provide a simulation model (System-C) and a synthesizable model (VHDL)
40 of the architecture, along with its architectural extensions
41    \begin{livrable}
[335]42      \itemV{0}{12}{x}{\Sinria}{SystemC for extensible MIPS }
[291]43      { A SystemC simulation model for a simple extensible MIPS architectural template }
[361]44      \itemL{12}{27}{x}{\Sinria}{SystemC for extensible MIPS}{3:2:1}
[291]45      {A SystemC simulation model for an extensible MIPS with a tight architectural integration of
46      its instruction set extensions}
[335]47      \itemV{3}{18}{h}{\Sinria}{VHDL for an extensible MIPS}
[291]48      {A synthesizable VHDL model for a simple extensible MIPS architectural template}
[363]49      \itemL{18}{27}{h}{\Sinria}{VHDL for extensible MIPS}{8:8.5:3}
[291]50      {A synthesizable VHDL model for an extensible MIPS with a tight architectural integration of
51      its instruction set extensions}
[360]52      \itemL{27}{36}{d}{\Sinria}{Evaluation report }{0:0:3}
[291]53      {An evaluation report with quantitative analysis of the performance/area trade-off induced by
54      the different approaches}
55    \end{livrable}
[356]56%
[328]57 \subtask{Automatic parallelization and memory optimization}
[356]58 This sub-task aims at providing a source-level optimizer in front the
59 HLS back-end tools. The optimizations are threefold:
60    \begin{itemize}
61    \item Extraction of parallelism in polyhedral loops and conversion
62      into a process network.
63    \item Minimization of intra-process local memory
64    \item Construction of inter-process FIFOs
65    \end{itemize}
66    We will design these methods by using polyhedral techniques, as we did
67    in the past for pure HPC optimizations. The program model is typically
68    regular programs where loop bounds, conditions and array indices are
69    affine functions. In a second part, we will extend the program model
70    by using conservative approximations.
[291]71   \begin{livrable}
72    \itemV{0}{6}{d}{\Slip}{Method, Preliminary Definition}
73      Description and specification of a process construction method for programs with
74      polyhedral loops.
75    \itemV{6}{12}{x}{\Slip}{Process construction}
76      Preliminary implementation in the Syntol framework.
77      At this step the software will just implement a single constructor.
[366]78    \itemL{30}{36}{d+x}{\Slip}{Process generation method}{3:0:3}
[328]79      Final assessment of the method and improved version of the specification.
80%
81    \itemV{6}{12}{d}{\Slip} {Arrays and FIFO}
82    Description and specification of the FIFO construction method
[330]83    and the local memory optimization method.
[328]84    \itemV{12}{18}{d+x}{\Slip} {Arrays and FIFO}
85    Preliminary implementation in the Bee framework.
86    Conversion of the input and output of Bee to the \xcoach format.
[330]87    At this step, only local memory optimization will be available.
[367]88    \itemL{18}{30}{d+x}{\Slip}{Arrays and FIFO}{1.5:2.0:1}
[328]89    Final assessment of the method and improved version of the specification.
90%
[291]91    \itemV{18}{30}{d+x}{\Slip}{Non-polyhedral extension}
[328]92      Extension of automatic parallelization and memory optimization
[291]93      to non-polyhedral loops. Implementation in the Bee framework.
[366]94    \itemL{30}{36}{d+x}{\Slip} {Non-polyhedral extension}{0.0:9.0:13.0}
[291]95      Final release taking into account the feedbacks from the
96      demonstrator \STs.
97   \end{livrable}
[356]98%
[291]99\end{workpackage}
100   
Note: See TracBrowser for help on using the repository browser.