1 | \anrdoc{\begin{itemize} |
---|
2 | \item Decrire les objectifs du projet et detailler les verrous scientifiques et |
---|
3 | techniques a lever par la realisation du projet. Insister sur le caractÚre |
---|
4 | ambitieux et/ou novateur de la proposition. |
---|
5 | \item Decrire eventuellement le ou les produits finaux developpes, presenter les |
---|
6 | resultats escomptes en proposant si possible des critÚres de reussite et |
---|
7 | dâevaluation adaptes au type de projet, permettant dâevaluer les resultats en |
---|
8 | fin de projet. |
---|
9 | \end{itemize}} |
---|
10 | |
---|
11 | % les objectifs scientifiques/techniques du projet. |
---|
12 | The design steps are presented in figure~\ref{coach-flow}. |
---|
13 | The end-user input is |
---|
14 | either an HPC application (an application running on a PC that must be accelerated), |
---|
15 | or an embedded application (a standalone application), |
---|
16 | or a sub-system application of a larger design. |
---|
17 | The figure shows that the design flow of embedded and sub-system applications does not differ |
---|
18 | except in the generation step and that the design flow of HPC application just adds a |
---|
19 | preliminary step. |
---|
20 | \begin{figure}[hbtp]\leavevmode\center |
---|
21 | \includegraphics[width=1.0\linewidth]{flow2} |
---|
22 | \caption{\label{coach-flow} COACH design flow} |
---|
23 | \end{figure} |
---|
24 | \begin{description} |
---|
25 | \item[HPC setup:] During this step, the user splits the application into 2 parts: the host application |
---|
26 | which remains on the PC and the SoC application which is mapped on the FPGA. |
---|
27 | COACH will provide a complete simulation model of the whole system (PC+communication+FPGA-SoC) |
---|
28 | which will allow performance evaluation. |
---|
29 | \item[SoC design:] In this phase, |
---|
30 | COACH will allow the user to obtain virtual prototypes for the SoC at different abstraction levels. |
---|
31 | The user input will consist of a process network describing the coarse grain parallelism |
---|
32 | of the application, an instance of an architectural template |
---|
33 | and a mapping of processes on the architectural template components. |
---|
34 | COACH will offer different targets to map the processes: |
---|
35 | software (the process runs as a software task on a SoC processor), |
---|
36 | ASIP (the process runs as a software task on a SoC processor enhanced with dedicated instructions), |
---|
37 | and hardware (the process is implemented as a synthesized hardware coprocessor). |
---|
38 | \item[Generation:] |
---|
39 | Once the SoC architecture is validated through performances analysis, |
---|
40 | COACH generates its bitstream in the case of HPC or embedded application, |
---|
41 | or its IP-XACT description for its integration in the case of a sub-system application. |
---|
42 | Both descriptions contain the hardware architecture and the application software. |
---|
43 | Furthermore in the HPC case, an executable containing the host application is |
---|
44 | also generated and the user will be able to launch the application by loading |
---|
45 | the bitstream on an FPGA and running the executable on a PC. |
---|
46 | \end{description} |
---|
47 | % Detailler les verrous scientifiques et techniques a lever par la realisation du projet. |
---|
48 | Hardware/Software co-design is a very complex task. To simplify it, COACH will address the |
---|
49 | following scientific and technological barriers: |
---|
50 | \begin{description} |
---|
51 | \item[\textit{Design Space Exploration by Virtual Prototyping}]: |
---|
52 | The COACH environment will allow to easily map a parallel application (formally described as |
---|
53 | an abstract network of process and communication channels). |
---|
54 | COACH will permit the system designer to explore the design space, and to define the best |
---|
55 | hardware/software partitioning of the application. |
---|
56 | \item[\textit{Integration of system level modeling and HLS tools}]: |
---|
57 | COACH will support the automated generation of hardware accelerators when required |
---|
58 | by using High-Level Synthesis (HLS) tools. These HLS tools will be |
---|
59 | fully integrated into a complete system-level design environment. |
---|
60 | Moreover, COACH will support both data and control dominated applications, |
---|
61 | and the HLS tools of COACH will support a common language and coding style |
---|
62 | to avoid re-engineering by the designer. |
---|
63 | COACH will provide a tool which will automatically explore the coprocessor micro-architectural design space. |
---|
64 | \item[\textit{High-level code transformation}]: |
---|
65 | COACH will allow optimization of the memory usage, enhancing the parallelism through |
---|
66 | loop transformations and parallelization. The challenge is to identify the coarse |
---|
67 | grained parallelism and to generate, |
---|
68 | from a sequential algorithm, an application containing multiple communicating processes. |
---|
69 | COACH will adapt techniques which were developed in the 1990 for |
---|
70 | the construction of distributed programs. However, in the context of HLS, there are |
---|
71 | several original problems to be solved, related to the FIFO communication channels and to |
---|
72 | memory optimization. |
---|
73 | COACH will support code transformation by providing a source to source C2C tool. |
---|
74 | \item[\textit{Unified Hardware/Software communication middleware}]: |
---|
75 | COACH will rely on the SoCLib experience to implement an unified hardware/software communication |
---|
76 | infrastructure and communication APIs (Application Programming Interface), to support |
---|
77 | communications between software tasks running on embedded processors and dedicated |
---|
78 | hardware coprocessors. The main issue here is to support easy migration |
---|
79 | from a software implementation to an hardware implementation. |
---|
80 | \item[\textit{Processor customization}]: |
---|
81 | ASIP (Application Specific Instruction Processor) design will be addressed by the COACH project. |
---|
82 | COACH will allow system designers to explore the various level of interactions between |
---|
83 | the original CPU micro-architecture and its extension. It will also allow to retarget |
---|
84 | the compiler instruction-selection pass. Finally, COACH will integrate ASIP synthesis |
---|
85 | in a complete System-level design framework. |
---|
86 | \end{description} |
---|
87 | %Presenter les resultats escomptes en proposant si possible des criteres de reussite |
---|
88 | %et d'evaluation adaptes au type de projet, permettant d'evaluer les resultats en |
---|
89 | %fin de projet. |
---|
90 | The main result is the framework. It is composed concretely of: |
---|
91 | a communication middleware for HPC, |
---|
92 | 5 HAS tools (control dominated HLS, data dominated HLS, Coarse grained HLS, |
---|
93 | Memory optimization HLS and ASIP), |
---|
94 | 3 architectural templates that are synthesizable and that can be prototyped, |
---|
95 | one design space exploration tool, |
---|
96 | 1 operating systems (DNA/OS). |
---|
97 | \\ |
---|
98 | The framework functionalities will be demonstrated with the demonstrators |
---|
99 | (see task-7 page~\pageref{task-demonstrator}) and the tutorial example (see task-8 |
---|
100 | page~\pageref{subtask-tutorial}). |
---|