[26] | 1 | \begin{taskinfo} |
---|
| 2 | \let\LIP\leader |
---|
| 3 | \let\IRISA\enable |
---|
[126] | 4 | \let\UBS\enable |
---|
| 5 | \let\UPMC\enable |
---|
| 6 | \let\TIMA\enable |
---|
[26] | 7 | \end{taskinfo} |
---|
| 8 | % |
---|
| 9 | \begin{objectif} |
---|
[41] | 10 | The objective of this task is to convert the input specification of |
---|
| 11 | an hardware accelerator, which must be written in a familiar language |
---|
| 12 | (C/C++) with as few constraints as possible, into a form suitable for |
---|
[109] | 13 | the HLS tools (i.e. HAS back-end tools of the COACH project). If the |
---|
| 14 | target is an ASIP, the frontend has to extract |
---|
[41] | 15 | patterns from the source code and convert them into the definition |
---|
| 16 | of an extensible processor. If the target is a process network, the |
---|
| 17 | front end has to distribute the workload and the data sets as fairly |
---|
| 18 | as possible, identify communication channels, and output an \xcoach |
---|
| 19 | description. |
---|
[26] | 20 | \end{objectif} |
---|
| 21 | % |
---|
[52] | 22 | \begin{workpackage} |
---|
[123] | 23 | \subtask This sub-task aims at providing compiler support for custom instructions |
---|
[85] | 24 | within the HAS front-end. It will take as input the COACH intermediate |
---|
[86] | 25 | representation, and will output an annotated COACH IR containing the custom |
---|
| 26 | instructions definitions along with their occurrence in the application. |
---|
[26] | 27 | \begin{livrable} |
---|
[114] | 28 | \itemV{0}{18}{X}{\Sirisa}{ASIP compilation flow} |
---|
[85] | 29 | In this first version of the software, the computations patterns corresponding to |
---|
[121] | 30 | custom instructions are specified by the user, and then automatically extracted (when |
---|
[86] | 31 | beneficial) from the application intermediate representation. |
---|
[85] | 32 | %\mustbecompleted{FIXME .....} |
---|
[121] | 33 | \itemL{18}{24}{X}{\Sirisa}{ASIP compilation flow}{6:9:0} |
---|
[86] | 34 | In this second version, the software will also be able to automatically identify |
---|
[85] | 35 | interesting pattern candidates in the application code, and use them as custom |
---|
| 36 | instructions. |
---|
[26] | 37 | \end{livrable} |
---|
[85] | 38 | |
---|
[123] | 39 | \subtask In this sub-task, we provide micro-architectural template models for the two target |
---|
[121] | 40 | processor architectures (NIOS-II and MIPS) supported within the COACH-ASIP design flow. |
---|
[85] | 41 | For each processor, we provide a simulation model (System-C) and a synthesizable model (VHDL) |
---|
| 42 | of the architecture, along with its architectural extensions |
---|
[26] | 43 | \begin{livrable} |
---|
[114] | 44 | \itemV{0}{12}{X}{\Sirisa}{SystemC for extensible MIPS } |
---|
[121] | 45 | { A SystemC simulation model for a simple extensible MIPS architectural template } |
---|
| 46 | \itemL{12}{20}{X}{\Sirisa}{SystemC for extensible MIPS}{2:3:0} |
---|
| 47 | {A SystemC simulation model for an extensible MIPS with a tight architectural integration of |
---|
[93] | 48 | its instruction set extensions} |
---|
[121] | 49 | \itemL{0}{12}{X}{\Sirisa}{SystemC for NIOS processor}{2:0:0} |
---|
[95] | 50 | { A SystemC simulation model for an extensible NIOS processor template, the VHDL model being |
---|
| 51 | already available from Altera} |
---|
[114] | 52 | \itemV{12}{18}{H}{\Sirisa}{VHDL for an extensible MIPS} |
---|
[121] | 53 | {A synthesizable VHDL model for a simple extensible MIPS architectural template} |
---|
| 54 | \itemL{18}{24}{H}{\Sirisa}{VHDL for an extensible MIPS}{9:12:0} |
---|
| 55 | {A synthesizable VHDL model for an extensible MIPS with a tight architectural integration of |
---|
[93] | 56 | its instruction set extensions} |
---|
[121] | 57 | \itemL{24}{36}{D}{\Sirisa}{Evaluation report }{0:0:2} |
---|
| 58 | {An evaluation report with quantitative analysis of the performance/area trade-off induced by |
---|
[93] | 59 | the different approaches} |
---|
[26] | 60 | \end{livrable} |
---|
[85] | 61 | |
---|
[123] | 62 | \subtask Extraction of parallelism in polyhedral loops and conversion into a process network. |
---|
[85] | 63 | |
---|
[41] | 64 | \begin{livrable} |
---|
[52] | 65 | \itemV{0}{6}{d}{\Slip}{Method, Preliminary Definition} |
---|
[87] | 66 | Description of the process network construction method for programs with |
---|
[110] | 67 | polyhedral loops. User manual. |
---|
[112] | 68 | \mustbecompleted{ FIXME :: User manual ou Specification. Si user manual alors le mettre en dissemination} |
---|
[87] | 69 | \itemL{30}{36}{d}{\Slip}{Process generation method}{0:0:0} |
---|
[42] | 70 | Final assessment of the method and improved version of the user manual. |
---|
[112] | 71 | \mustbecompleted {FIXME :: User manual ou Specification. Si user manual alors le mettre en dissemination} |
---|
[110] | 72 | \itemV{6}{12}{x}{\Slip}{Process construction} |
---|
[83] | 73 | Preliminary implementation in the Syntol framework. |
---|
[86] | 74 | At this step the software will just implement a single constructor. |
---|
[83] | 75 | \itemV{12}{18}{x}{\Slip} {Arrays and FIFO} |
---|
| 76 | Implementation of the array contraction and FIFO construction algorithm. |
---|
| 77 | Conversion of the input and output to the \xcoach format. |
---|
[87] | 78 | \itemV{18}{30}{d+x}{\Slip}{Non-polyhedral extension} |
---|
[84] | 79 | Extension of automatic parallelization and array contraction |
---|
[87] | 80 | to non-polyhedral loops. Implementation in the Bee framework. |
---|
[114] | 81 | \itemL{30}{36}{x}{\Slip} {Process and FIFO construction}{0:0:0} |
---|
[83] | 82 | Final release taking into account the feedbacks from the |
---|
| 83 | demonstrator \STs. |
---|
[41] | 84 | \end{livrable} |
---|
[83] | 85 | |
---|
[41] | 86 | \end{workpackage} |
---|
| 87 | |
---|