source: anr/body.tex @ 1

Last change on this file since 1 was 1, checked in by coach, 15 years ago

creation

File size: 40.4 KB
Line 
1\section{Project context}
2\hspace{2cm}\begin{scriptsize}\begin{verbatim}
3% 1.    CONTEXTE ET POSITIONNEMENT DU PROJET
4% (1 page maximum) Présentation générale du problème qu'il est proposé de traiter
5% dans le projet et du cadre de travail (recherche fondamentale, industrielle ou
6% développement expérimental).
7\end{verbatim}
8\end{scriptsize}
9An embedded system is an application integrated into one or several chips
10in order to accelerate it or to embedd it into a small device such as a personal
11digital assistant (PDA).
12This topic is investigated since 80s using Applications Specific Integrated Circuits (ASIC),
13Digital Signal Processing (DSP) and parallel computing on multiprocessor machines or networks.
14More recently, since end of 90s, other technologies appeared like Very Large Instruction Word (VLIW),
15Application Specific Instruction Processors (ASIP), System on Chip (SoC),
16Multi-Processors SoC (MPSoC).
17\\
18During these last decades embedded system was reserved to major industrial companies targeting high volume market
19due to the design and fabrication costs.
20Nowadays Field Programmable Gate Arrays (FPGA), like Virtex5 from Xilinx and Stratix4 from Altera,
21can implement a SoC with multiple processors and several coprocessors for less than 10K euros the piece.
22In addition, High Level Synthesis (HLS) becomes more mature and allows to automize design
23and to decrease drastically its cost in terms of man power. Thus, both FPGA and HLS tends to spread over
24HPC for small companies targeting low volume markets.
25\par
26To get an efficient embedded system, designer has to take into account application characteristics when it
27chooses one of the former technologies.
28This choice is not easy and in most cases designer has to try different technologies to retain the
29most adapted one.
30\\
31The first objective of COACH is to provide an open-source framework to design embedded system
32on FPGA device.
33COACH framework allows designer to explore various software/hardware partitions of the
34target application, to run timing and functional simulations and to generate automatically both
35the software and the synthesizable description of the hardware.
36The main topics of the project are:
37\begin{itemize} 
38\item
39Design space exploration: It consists in analysing the application runnig on FPGA, defining the target
40technology (SoC, MPSoC, ASIP, ...) and hardware/software partitioning of tasks depending on
41technology choice. This exploration is driven basically by throughput, latency and power consumption
42criteria.
43\item
44Micro-architectural exploration: When hardware components are required, the HLS tools of the framework
45generate them automatically. At this stage the framework provides various HLS tools allowing the
46micro-architectural space design exploration. The exploration criteria are also throughput, latency
47and power consumption.
48% FIXME
49%CA At this stage, preliminary source-level transformations will be
50%CA required to improve the efficiency of the target component.
51%CA COACH will also provide such facilities, such as automatic parallelization
52%CA and memory optimisation.
53\item
54Performance measurement: For each point of design space exploration, metrics of criteria are available
55such as throughput, latency, power consumption, area, memory allocation and data locality.
56They are evaluated using virtual prototyping, estimation or analysing methodologies.
57\item
58Targeted hardware technology: The COACH description of system is independent of the FPGA family.
59Every point of the design exploration space can be implemented on any FPGA having the required resources.
60Basically, COACH handles both Altera and Xilinx FPGA families.
61\end{itemize}
62As an extension of embedded system design, COACH deals also with High Performance Computing (HPC).
63In HPC, the kind of targeted application is an existing one running on PC. COACH helps designer
64to accelerate it by migrating critical parts into a SoC implemented on a FPGA plugged to the PC bus.
65\par
66COACH is the result of the will of several laboratory to unify their know how and skills in the
67following domains: Operating system and hardware communication (TIMA, SITI), SoC and MPSoC (LIP6 and TIMA),
68ASIP (IRISA) and HLS (LIP6, Lab-STIC and LIP). The project objective is to integrate these various
69domains into a unique free framework (licence ...) masking as much as possible these domains and its
70different tools to the user.
71
72
73\subsection{Economical context and interest}
74\hspace{2cm}\begin{scriptsize}\begin{verbatim}
75% 1.1.  CONTEXTE ET ENJEUX ECONOMIQUES ET SOCIETAUX
76% (2 pages maximum)
77% Décrire le contexte économique, social, réglementaire. dans lequel se situe
78% le projet en présentant une analyse des enjeux sociaux, économiques, environnementaux,
79% industriels. Donner si possible des arguments chiffrés, par exemple, pertinence et
80% portée du projet par rapport à la demande économique (analyse du marché, analyse des
81% tendances), analyse de la concurrence, indicateurs de réduction de coûts, perspectives
82% de marchés (champs d'application, .). Indicateurs des gains environnementaux, cycle
83% de vie.
84\end{verbatim}
85\end{scriptsize}
86Microelectronic allows to integrate complicated functions into products, to increase their
87commercial attractivity and to improve their competitivity. Multimedia and communication
88sectors have taken advantage from microelectronics facilities thanks to developpment of
89design methodologies and tools for real time embedded systems. Many other sectors could
90benefit from microelectronics if these methologies and tools are adapted to their features.
91The Non Recurring Engineering (NRE) costs involded in designing and manufacturing an ASIC is
92very high. It costs several milliars of euros for IC factory and several millions to fabricate
93a specific circuit for example a conservative estimate for a 65nm ASIC project is 10 million USD.
94Consequently, it is generally unfeasible to design and fabricate ASICs in
95low volumes and ICs are designed to cover a broad applications spectrum at the cost of
96performance degradation.
97\\
98Today, FPGAs become important actors in the computational domain that was originally dominated
99by microprocessors and ASICs. Just like microprocessors FPGA based systems can be reprogrammed
100on a per-application basis. At the same time, FPGAs offer significant performance benefits over
101microprocessors implementation for a number of applications. Although these benefits are still
102generally an order of magnitude less than equivalent ASIC implementations, low costs
103(500 euros to 10K euros), fast time to market and flexibility of FPGAs make them an attractive
104choice for low-to-medium volume applications.
105Since their introduction in the mid eighties, FPGAs evolved from a simple,
106low-capacity gate array technology to devices (Altera STRATIX III, Xilinx Virtex V) that
107provide a mix of coarse-grained data path units, memory blocks, microprocessor cores,
108on chip A/D conversion, and gate counts by millions. This high logic capacity allows to implement
109complex systems like multi-processors platform with application dedicated coprocessors.
110Table~\ref{fpga_market} shows the estimation of FPGA worldwide market in the next years covering
111various application domains. The ``high end'' lines concern only FPGA with high logic capacity able
112to implement complex systems.
113This market is in significant expansion and is estimated to 914 M\$ in 2012.
114Using FPGA limits the NRE costs to design cost. This boosts the developpment of methodologies
115and tools to automize design and reduce its cost.
116\begin{table}\leavevmode\center
117\begin{tabular}{|l|l|l|l|}\hline
118Segment         & 2010  & 2011  & 2012 \\\hline\hline
119Communications  & 1,867 & 1,946 & 2,096 \\
120High end        & 467   & 511   & 550 \\\hline
121Consumer        & 550   & 592   & 672 \\
122High end        & 53    & 62    & 75 \\\hline
123Automotive      & 243   & 286   & 358 \\
124High end        & -     & -     & - \\\hline
125Industrial      & 1,102 & 1,228 & 1,406 \\
126High end        & 177   & 188   & 207 \\\hline
127Military/Aereo  & 566   & 636   & 717 \\
128High end        & 56    & 65    & 82 \\\hline\hline
129Total FPGA/PLD  & 4,659 & 5,015 & 5,583 \\
130Total High-End  FPGA    & 753   & 826   & 914 \\\hline
131\end{tabular}
132\caption{\label{fga_market} Gartner estimation of worldwide FPGA/PLD consumption (Millions \$)}
133\end{table}
134\par
135Today, several companies (atipa, blue-arc, Bull, Chelsio, Convey, CRAY, DataDirect, DELL, hp,
136Wild Systems, IBM, Intel, Microsoft, Myricom, NEC, nvidia etc) are making systems where demand
137for very high performance (HPC) primes over other requirements. They tend to use the highest
138performing devices like Multi-core CPUs, GPUs, large FPGAs, custom ICs and the most innovative
139architectures and algorithms. Companies show up in different "traditional" applications and market
140segments like computing clusters (ad-hoc), servers and storage, networking and Telecom, ASIC
141emulation and prototyping, Mil/aero etc. HPC market size is estimated today by FPGA providers
142to 214 M\$.
143This market is dominated by Multi-core CPUs and GPUs based solutions and the expansion
144of FPGA-based solutions is limited by the flow automation. Nowadays, there are neither commercial
145nor free tools covering the whole design process.
146For instance, with SOPC Builder from Altera, users can select and parameterize IP components
147from an extensive drop-down list of communication, digital signal processor (DSP), microprocessor
148and bus interface cores, as well as incorporate their own IP. Designers can then generate
149a synthesized netlist, simulation test bench and custom software library that reflect the hardware
150configuration.
151Nevertheless, SOPC Builder does not provide any facilities to synthesize coprocessors and to
152simulate the platform at a high design level (system C).
153In addition, SOPC Builder is proprietary and only works together with Altera's Quartus compilation
154tool to implement designs on Altera devices (Stratix, Arria, Cyclone).
155PICO [CITATION] and CATAPULT [CITATION] allow to synthesize coprocessors from a C++ description.
156Nevertheless, they can only deal with data dominated applications and they do not handle the
157platform level.
158The Xilinx System Generator for DSP [http://www.xilinx.com/tools/sysgen.htm] is a plug-in to
159Simulink that enables designers to develop high-performance DSP systems for Xilinx FPGAs.
160Designers can design and simulate a system using MATLAB and Simulink. The tool will then
161automatically generate synthesizable Hardware Description Language (HDL) code mapped to Xilinx
162pre-optimized algorithms.
163However, this tool targets only DSP based algorithms.
164\\
165Consequently, designer developping an embedded system needs to master for example
166SoCLib for design exploration,
167SOPC Builde at the platform level,
168PICO for synthesizing the data dominated coprocessors
169and Quartus for design implementation.
170This requires an important tools interfacing effort and makes the design process very complex
171and achievable only by designers skilled in various domains.
172COACH project integrates all these tools in the same framework masking them to the user.
173The objective is to allow \textbf{pure software} developpers to realize embedded systems.
174\par
175The combination of the framework dedicated to software developpers and FPGA target, allows to gain
176market share over Multi-core CPUs and GPUs HPC based solutions.
177Moreover, one can expect that small and even very small companies will be able to propose embedded
178system and accelerating solutions for standard software applications with acceptable prices, thanks
179 to the elimination of huge hardware investment in opposite to ASIC based solution.
180\\
181This new market may explose like it was done by micro-computing in eighties. This success were due
182to the low cost of first micro-computers (compared to main frame) and the advent of high level
183programming languages that allow a high number of programmers to launch start-ups in software
184engineering.
185
186\subsection{Project position}
187\hspace{2cm}\begin{scriptsize}\begin{verbatim}
188% 1.2.  POSITIONNEMENT DU PROJET
189% (2 pages maximum)
190% Préciser :
191% -     positionnement du projet par rapport au contexte développé précédemment :
192%   vis- à-vis des projets et recherches concurrents, complémentaires ou antérieurs,
193%   des brevets et standards.
194% - positionnement du projet par rapport aux axes thématiques de l'appel à projets.
195% - positionnement du projet aux niveaux européen et international.
196\end{verbatim}
197\end{scriptsize}
198The aim of this project is to propose an open-source framework for architecture synthesis
199targeting mainly field programmable gate array circuits (FPGA).
200\\% LIP6/TIMA
201To evaluate the different architectures, the project uses the prototyping platform
202of the SoCLIB ANR project (2006-2009).
203\\% IRISA
204The project will also borrow from the ROMA ANR project (2007-2009) and the ongoing
205joint INRIA-STMicro Nano2012 project.  In particular we will adapt
206existing pattern extraction algorithms and datapath merging techniques to the synthesis of customized
207ASIP processors.
208\par
209%%% 1 -- POUVEZ VOUS CHACUN AJOUTER SVP (SI POSSIBLE) UNE LIGNE
210%%% 1 -- REFERANT UN PROJET ANR OU EUROPEEN
211%%% 1 -- Projets européens ou ANR réutilisés ou continués
212%%% 1 LIP6/TIMA/LAB-STIC OK
213Regarding the expertise in  High Level Synthesis (HLS), the project leverages on know-how acquired over 15 years
214with GAUT project developped in Lab-STIC laboratory and UGH project developped in LIP6
215and TIMA laboratories. \\
216Regarding architecture synthesis skills, the project is based on a know-how acquired over 10 years
217with the COSY European project (1998-2000) and the DISYDENT project developped in LIP6.  \\
218%%% 1 IRISA OK
219Regarding Application Specific Instruction Processor (ASIP) design, the CAIRN group at INRIA Bretagne
220Atlantique benefits from several years of expertise in the domain of retargetable compiler (Armor/Calife
221since 1996, and the Gecos compilers since 2002).
222% LIP FIXME:UN:PEU:LONG ET HORS:SUJET
223%CA% The source-level transformations required by the HLS tools will be
224%CA% designed in the {\em polyhedral model}, a general framework
225%CA% initiated by Paul Feautrier 20 years ago.  The programs handled in
226%CA% the polyhedral model are such that loop iterators describe a
227%CA% polyhedron (hence the name). This includes most of the kernels used
228%CA% in embedded applications. This property allows to design precise
229%CA% analysis by means of integer programming techniques.
230%CA% %communaute active & internationale
231%CA% %transfert techno (Reservoir)
232%CA% The polyhedral community is very active, and the technological
233%CA% transfer has now started. Reservoir Labs inc., a company based in
234%CA% New-York, is currently integrating the last polyhedral developments
235%CA% in its commercial compiler.
236%CA% %transfert techno (gcc)
237%CA% Also, polyhedra are progressively migrating into the {\sc GNU Gcc}
238%CA% compiler, via {\sc Graphite}, a module initially developed by
239%CA% Sebastian Pop.
240%CA% %outils existants
241%CA% Several tools have been developed in the polyhedral community,
242%CA% such as {\sc Piplib} (parameter integer programming library), and
243%CA% {\sc Polylib}, a library providing set operations on polyhedra. Both
244%CA% tools are almost mandatory in polyhedral tools, and have reached
245%CA% a sufficient level of maturity to be considered as standard.
246%syntol & bee ???
247% FIN
248% and on more than 15 years of experience on parallel hardware generation
249% in the polyedral model in the CAIRN group (MMAlpha software
250% developped in the group since 1996).
251%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
252%%% 2 -- A COMPLETER (COURT)
253%%% 2 -- For polyedric transformation and memory optimization ... LIP
254%%% 2 -- For ASIP IRISA
255%%% 2 -- For ... CITI
256%%% 2 -- For ... TIMA
257\par
258The SoCLIB ANR platform were developped by 11 laboratories and 6 companies. It allows to
259describe hardware architectures with shared memory space and to deploy software
260applications on them to evaluate their performance.
261The heart of this platform is a library containing simulation models (in SystemC)
262of hardware IP cores such as processors, buses, networks, memories, IO controller.
263The platform provides also embedded operating systems and software/hardware
264communication components useful to implement applications quickly.
265However, the synthesisable description of IPs have to be provided by users. \\
266This project enhances SoCLib by providing synthesisable VHDL of standard IPs.
267In addition, HLS tools such as UGH and GAUT allow to get automatically a synthesisable
268description of an IP (coprocessor) from a sequential algorithm.
269%\par
270%%% 2 IRISA ?
271%%% 2 ASIP tool such as ... IRISA
272%%% 2 ...
273%%% 2 Coach uses pattern extractions from ROMA
274%\par
275%%% 2 LIP ?
276\par
277The different points proposed in this project cover priorities defined by the commission
278experts in the field of Information Technolgies Society (IST) for Embedded
279systems: <<Concepts, methods and tools for designing systems dealing with systems complexity
280and allowing to apply efficiently applications and various products on embedded platforms,
281considering resources constraints (delais, power, memory, etc.), security and quality
282services>>.
283\\
284Our team aims at covering all the steps of the design flow of architecture synthesis.
285Our project overcomes the complexity of using various synthesis tools and description
286languages required today to design architectures.
287
288\section{Scientific and Technical Description}
289\subsection{State of the art}
290\hspace{2cm}\begin{scriptsize}\begin{verbatim}
291% 2.    DESCRIPTION SCIENTIFIQUE ET TECHNIQUE
292% 2.1.  ÉTAT DE L'ART
293% (3 pages maximum)
294% Décrire le contexte et les enjeux scientifiques dans lequel se situe le projet
295% en présentant un état de l'art national et international dressant l'état des
296% connaissances sur le sujet. Faire apparaître d'éventuels résultats préliminaires.
297% Inclure les références bibliographiques nécessaires en annexe 7.1.
298\end{verbatim}
299\end{scriptsize}
300Our project covers several critical domains in system design in order
301to achieve high performance computing. Starting from a high level description we aim
302at generating automatically both hardware and software components of the system.
303
304\subsubsection{High Performance Computing}
305Accelerating high-performance computing (HPC) applications with field-programmable
306gate arrays (FPGAs) can potentially improve performance.
307However, using FPGAs presents significant challenges [1].
308First, the operating frequency of an FPGA is low compared to a high-end microprocessor.
309Second, based on Amdahl law,  HPC/FPGA application performance is unusually sensitive
310to the implementation quality [2].
311Finally, High-performance computing programmers are a highly sophisticated but scarce
312resource. Such programmers are expected to readily use new technology but lack the time
313to learn a completely new skill such as logic design [3].
314\\
315HPC/FPGA hardware is only now emerging and in early commercial stages,
316but these techniques have not yet caught up.
317Thus, much effort is required to develop design tools that translate high level
318language programs to FPGA configurations.
319
320\hspace{2cm}\begin{scriptsize}\begin{verbatim}
321[1] M.B. Gokhale et al., Promises and Pitfalls of Reconfigurable
322Supercomputing, Proc. 2006 Conf. Eng. of Reconfigurable
323Systems and Algorithms, CSREA Press, 2006, pp. 11-20;
324http://nis-www.lanl.gov/~maya/papers/ersa06_gokhale_paper.
325pdf.
326[2] D. Buell, Programming Reconfigurable Computers: Language
327Lessons Learned, keynote address, Reconfigurable Systems
328Summer Institute 2006, 12 July 2006; http://gladiator.
329ncsa.uiuc.edu/PDFs/rssi06/presentations/00_Duncan_Buell.pdf
330[3] T. Van Court et al., Achieving High Performance
331with FPGA-Based Computing, Computer, vol. 40, no. 3,
332pp. 50-57, Mar. 2007, doi:10.1109/MC.2007.79
333\end{verbatim}
334\end{scriptsize}
335
336\subsubsection{System Synthesis}
337Today, several solutions for system design are proposed and commercialized. The most common are
338those provided by Altera and Xilinx to promote their FPGA devices.
339\\
340The Xilinx System Generator for DSP [http://www.xilinx.com/tools/sysgen.htm] is a plug-in to
341Simulink that enables designers to develop high-performance DSP systems for Xilinx FPGAs.
342Designers can design and simulate a system using MATLAB and Simulink. The tool will then
343automatically generate synthesizable Hardware Description Language (HDL) code mapped to Xilinx
344pre-optimized algorithms.
345However, this tool targets only DSP based algorithms, Xilinx FPGAs and cannot handle complete
346SoC. Thus, it is not really a system synthesis tool.
347\\
348In the opposite, SOPC Builder [CITATION] allows to describe a system, to synthesis it,
349to programm it into a target FPGA and to upload a software application.
350% FIXME(C2H from Altera, marche vite mais ressource monstrueuse)
351Nevertheless, SOPC Builder does not provide any facilities to synthesize coprocessors.
352Users have to provide the synthesizable description with the feasible bus interface.
353\\
354In addition, Xilinx System Generator and SOPC are closed world since each one imposes
355their own IPs which are not interchangeable.
356We can conclude that the existing commercial or free tools does not coverthe whole system
357synthesis process in a full automatic way. Moreover, they are bound to a particular device family
358and to IPs library.
359
360\subsubsection{High Level Synthesis}
361High Level Synthesis translates a sequential algorithmic description and a constraints set
362(area, power, frequency, ...) to a micro-architecture at Register Transfer Level (RTL).
363Several academic and commercial tools are today available.
364Most common tools are SPARK [HLS1], GAUT [HLS2], UGH [HLS3] in the academic world
365and catapultC [HLS4], PICO [HLS5] and Cynthesizer [HLS6] in commercial world.
366Despite their maturity, their usage is restrained by:
367\begin{itemize}
368\item They do not respect accurately the frequency constraint when they target an FPGA device.
369Their error is about 10 percent. This is annoying when the generated component is integrated
370in a SoC since it will slow down the hole system.
371\item These tools take into account only one or few constraints simultaneously while realistic
372designs are multi-constrained.
373Moreover, low power consumption constraint is mandatory for embedded systems.
374However, it is not yet well handled by common synthesis tools.
375\item The parallelism is extracted from initial algorithm. To get more parallelism or to reduce
376the amout of required memory, the user must re-write it while there is techniques as polyedric
377transformations to increase the intrinsec parallelism.
378\item Despite they have the same input language (C/C++), they are sensitive to the style in
379which the algorithm is written. Consequently, engineering work is required to swap from
380a tool to another.
381\item The HLS tools are not integrated into an architecture and system exploration tool.
382Thus, a designer who needs to accelerate a software part of the system, must adapt it manually
383to the HLS input dialect and performs engineering work to exploit the synthesis result
384at the system level.
385\end{itemize}
386Regarding these limitations, it is necessary to create a new tool generation reducing the gap
387between the specification of an heterogenous system and its hardware implementation.
388
389\hspace{2cm}\begin{scriptsize}\begin{verbatim}
390[HLS1] SPARK universite de californie San Diego
391[HLS2] GAUT UBS/Lab-STIC
392[HLS3] UGH
393[HLS4] catapultC Mentor
394[HLS5] PICO synfora
395[HLS6] Cynthesizer Forte design system
396\end{verbatim}
397\end{scriptsize}
398
399\subsubsection{Application Specific Instruction Processors}
400ASIP (Application-Specific Instruction-Set Processor) are programmable
401processors in which both the instruction and the micro architecture have
402been tailored to a given application domain (eg. video processing), or
403in some extreme cases to a specific application (eg H264 specific ASIP).
404This processor specialization usually offers a good compromise between
405performance (compared to a pure software implementation on a COTS
406embeded processor) and flexibility (compared to an application specific
407hardware co-processor).
408\\
409As a consequence, this type of architecture is a very attractive choice
410as a System on chip building block. In spite of their obvious
411advantages, using/designing ASIPs remains a difficult task, since it
412involves designing both an efficient micro-architecture and implementing
413an efficient compiler for this
414specific micro-architecture.
415\\
416Recently, the use of instruction set extensions has received a lot of
417interest from the embedded systems design community [NIOS2,FSL,ST70],
418since it allows to rely on a template micro-architecture in which only a
419small fraction of the architecture has to be specialized. Even if such
420an approach offers less flexiblity and forbids very tight coupling
421between the extensions and the template micro-architecture, it makes the
422design of the micro-architecture more tractable and amenable to a fully
423automated flow.
424\\
425However, to our knowledge, there is still no available open-source
426design flow addressing those two design challenges together, either
427because the target architecture is proprietary, or because the compiler
428technology is closed/commercial.
429\\
430In the context of the COACH project, we propose to add to the
431infra-structure a design flow targeted to automatic instruction set
432extension for the MIPS-based CPU, which will come as a complement or an
433alternative to the other proposed approaches (hardware accelerator,
434multi processors).
435
436\subsubsection{Automatic Parallelization}
437\begin{Large}\begin{verbatim}
438-- A COMPLETER LIP
439\end{verbatim}
440\end{Large}
441%CA%   Parallel machines are often difficult and painful to program
442%CA%   directly, and one would like the compiler to %do the job, that is to
443%CA%   turn automatically a sequential program into a parallel form. This
444%CA%   transformation is referred as {\em automatic parallelization}, and has
445%CA%   been widely addressed since the 70s. Automatic parallelization
446%CA%   relies on data dependences, which cannot be computed in general.%, as
447%CA%   %one cannot predict at compile time the variable values on a given
448%CA%   %execution point.
449%CA%   This negative result led researchers to (i) find a
450%CA%   program model in which no approximation is needed (ie polyhedral
451%CA%   model), (ii) make conservative approximations (iii) remark that
452%CA%   variable values are known at runtime, and make the decisions during
453%CA%   program execution. The latter approach is obviously not suitable
454%CA%   there, as we target hardware generation. We will give there a short
455%CA%   history of the approaches that fall in the first category.
456%CA%
457%CA%%   In the real world, we deal with a limited amount of processors,
458%CA%%   and the communication between processors takes time, and is
459%CA%%   critical for performance. %Whenever we have synchronisation-free
460%CA%%   parallelism, like for embarrassingly parallel kernels, this is not an
461%CA%%   issue. But in case of pipelined parallelism, we need to reduce
462%CA%%   communications as much as possible.
463%CA%%   So we also need to find parallelism toghether with a proper mapping
464%CA%%   of operations and data on physical processors.
465%CA%
466%CA%   As programs spend most of there time in loops, the community has
467%CA%   focused on loop transformations that reveal parallelism.
468%CA%%unimodulaire
469%CA%   The first approaches worked on perfect loop nests, where the tree
470%CA%   formed by the nested loops is linear. In this program model, the
471%CA%   loops can be seen as a basis that drive the way the iteration
472%CA%   domain will be described. Hence, a first idea was to change this
473%CA%   basis such that one vector (one loop) at least is parallel. To ease
474%CA%   the code generation, the area of defined by the news vectors must
475%CA%   be a unit volume. %Otherwise, one would produce an homothetic
476%CA%%   expansion of the iteration domain, which will force to put modulos
477%CA%%   in the target code.
478%CA%   For this reason, these transformations are called {\em unimodular
479%CA%   transformations}.
480%CA%%tiling
481%CA%   
482%CA%   The next approaches include {\em loop tiling}, a simple
483%CA%   partitioning of the iteration domain, whose initial purpose is to
484%CA%   execute every partition on a different processor. %In the same way,
485%CA%   The execution order is modified with a proper unimodular
486%CA%   transformation, then the tiles are obtained by cutting the
487%CA%   iteration domain with the hyperplanes directed by every vector of
488%CA%   the new (unimodular) basis, at regular intervals. When the tiling
489%CA%   hyperplanes are properly chosen, we can both improve data-locality
490%CA%   on every processor, and reduce the communication between two
491%CA%   different tiles (which will be mapped on processors). This last
492%CA%   property implying that one tend to find a degree of parallelism as
493%CA%   great as possible.
494%CA%
495%CA%%affine scheduling
496%CA%   The previous approaches were restricted to kernels with perfect
497%CA%   loop nests (linear loop tree), and unimodular transformations. The
498%CA%   last generation of approaches broke with these limitations. We now
499%CA%   choose a different basis for every assignment, without the
500%CA%   unimodularity restriction. A dual way to present the things is the
501%CA%   notion of {\em affine schedule}, introduced by Feautrier [part1],
502%CA%   that simply assigns an abstract execution date to every assignment
503%CA%   execution. As an assignment execution is exactly characterised by
504%CA%   the current value of the loops counters (iteration vector), the
505%CA%   affine schedule will be defined as an affine form of the iteration
506%CA%   vector (hence the 'affine'). The affine property allows to use
507%CA%   integer programming techniques to compute the schedule. With this
508%CA%   approach, additional techniques are required to allocate the
509%CA%   parallel operations and the data to processor in an efficient way
510%CA%   [griebl, feautrier].
511%CA%
512%CA%%modularity??
513%CA%%%    As loop nests are no longer perfect, we deal with (transformed)
514%CA%%%    iteration domains of different dimensions, which can possibly (and
515%CA%%%    certainly) overlap. At this point, a new code generation technique
516%CA%%%    was needed. The first attempt is due to Chamsky et al. [??], and
517%CA%%%    was improved by Quillere et al. [QRW]. The code is now implemented
518%CA%%%    in an efficient tool [cloog], that gave a new life to polyhedral
519%CA%%%    techniques.
520%CA%
521%CA%%pluto's tiling
522%CA%   The tiling techniques were extended to non-perfect loop nest with
523%CA%   {\em affine partitioning}. Affine partitioning is to affine
524%CA%   scheduling what (original) tiling was to unimodular
525%CA%   transformations. An affine partitioning assigns to every assignment
526%CA%   its coordinates in the basis defined by the normals to the tiling
527%CA%   hyperplanes. Recently, a way to compute efficient hyperplanes were
528%CA%   found [uday], with a good data locality, and communications
529%CA%   confined in a small neighborhood around every processor.
530%CA%
531%CA%\subsubsection{Source-level Memory Optimisation}
532%CA%  The HLS process allows to customise memory, which impacts on final
533%CA%  circuit size and power consumption. Though most HLS tools already
534%CA%  try to optimise memory usage, it is better to provide an independent
535%CA%  source-level pass, that could be reused for different tools and in
536%CA%  other contexts.
537%CA%
538%CA%  There exists many approaches to evaluate and reduce the memory
539%CA%  requirement of a program. The first approaches are concerned with
540%CA%  {\em memory size estimation}, which can be defined as the maximum
541%CA%  number of memory cells used at the same time [clauss,zhao]. These
542%CA%  approaches provide an estimation as a symbolic expression of program
543%CA%  parameters, which can be used further to guide loop optimisations.
544%CA%  However, no explicit way to reduce the memory size is given.  {\em
545%CA%  Intra-array reuse} approaches brake with this limitation, and
546%CA%  collapse the array cells which are not alive at the same time. The
547%CA%  collapse is done by means of a data layout transformation, specified
548%CA%  with a linear (modular) mapping.  The first approaches were
549%CA%  developed at IMEC [balasa,catthoor], and basically try to linearize
550%CA%  the arrays and fold them using a modulo operator. Then, Lefebvre et
551%CA%  al. propose a solution to fold independently the array dimensions
552%CA%  [lefebvre]. Finally, Darte et al. provide a general formalisation of
553%CA%  the problem, together with a solution that subsumes the previous
554%CA%  approaches [darte]. A first implementation was made with the tool
555%CA%  {\sc Bee}, but there are still many limitations.
556%CA%
557%CA%  \begin{itemize}
558%CA%  \item The tool is restricted to regular programs, whereas more
559%CA%  general programs could be handled with a conservative array liveness
560%CA%  analysis.
561%CA%
562%CA%  \item Programs depending on parameters (inputs) are not handled,
563%CA%  which forbids to handle, for example, the body of tiled loops.
564%CA%
565%CA%  \item The new array layout can brake spatial locality, and then impact
566%CA%  performance and power consumption. One would like to get a mapping
567%CA%  that improve or, at least, preserve the spatial locality of the
568%CA%  program.
569%CA%
570%CA%  \item Finally, the final memory compaction strongly depends on the
571%CA%  program schedule, and is naturally hindered by the
572%CA%  parallelism. Consequently, there is a trade-off to find with
573%CA%  automatic parallelization. An ideal solution would be to reduce
574%CA%  memory usage, while preserving parallelism. 
575%CA%  \end{itemize}
576
577\subsubsection{Interfaces}
578\begin{Large}\begin{verbatim}
579-- A COMPLETER INSA Etat de l'art
580\end{verbatim}
581\end{Large}
582%
583%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
584\subsection{Objectives and innovation aspects}
585\hspace{2cm}\begin{scriptsize}\begin{verbatim}
586% 2.2.  OBJECTIFS ET CARACTERE AMBITIEUX/NOVATEUR DU PROJET
587% (2 pages maximum)
588% Décrire les objectifs scientifiques/techniques du projet.
589% Présenter l'avancée scientifique attendue. Préciser l'originalité et le caractère
590% ambitieux du projet.
591% Détailler les verrous scientifiques et techniques à lever par la réalisation du projet.
592% Décrire éventuellement le ou les produits finaux développés à l'issue du projet 
593% montrant le caractère innovant du projet.
594% Présenter les résultats escomptés en proposant si possible des critères de réussite
595% et d'évaluation adaptés au type de projet, permettant d'évaluer les résultats en
596% fin de projet.
597% Le cas échéant (programmes exigeant la pluridisciplinarité), démontrer l'articulation
598% entre les disciplines scientifiques.
599\end{verbatim}
600\end{scriptsize}
601
602% les objectifs scientifiques/techniques du projet.
603The objectives of COACH project are to develop a complete framework to
604HPC (accelerating solutions for existing software applications)
605and embedded applications (implementing an application on a low power standalone device).
606The design steps are presented figure 1.
607\begin{figure}[hbtp]\leavevmode\center
608  \includegraphics[width=.8\linewidth]{flow}
609  \caption{\label{coach-flow} COACH flow.}
610\end{figure}
611\begin{description}
612\item[HPC setup] Here the user splits the application into 2 parts: the host application
613which remains on PC and the SoC application which migrates on SoC.
614The framework provides a simulation model allowing to evaluate the partitioning.
615\item[SoC design] In this phase,
616The user can obtain simulators at different abstraction levels of the SoC by giving to COACH framework
617a SoC description.
618This description consists of a process network corresponding to the SoC application,
619an OS, an instance of a generic hardware platform
620and a mapping of processes on the platform components. The supported mapping are
621software (the process runs on a SoC processor),
622XXXpeci (the process runs on a SoC processor enhanced with dedicated instructions),
623and hardware (the process runs into a coprocessor generated by HLS and plugged on the SoC bus).
624\item[Application compilation] Once SoC description is validated, COACH generates automatically
625an FPGA bitstream containing the hardware platform with SoC application software and
626an executable containing the host application. The user can launch the application by
627loading the bitstream on FPGA and running the executable on PC.
628\end{description}
629
630% l'avancee scientifique attendue. Preciser l'originalite et le caractere
631% ambitieux du projet.
632The main scientific contribution of the project is to unify various synthesis techniques
633(same input and output formats) allowing the user to swap without engineering effort
634from one to an other and even to chain them, for example, to run polyedric transformation
635before synthesis.
636Another advantage of this framework is to provide different abstraction levels from
637a single description.
638Finally, this description is device family independent and its hardware implementation
639is automatically generated.
640
641% Detailler les verrous scientifiques et techniques a lever par la realisation du projet.
642System design is a very complicated task and in this project we try to simplify it
643as much as possible. For this purpose we have to deal with the following scientific
644and technological barriers.
645\begin{itemize}
646\item The main problem in HPC is the communication between the PC and the SoC.
647This problem has 2 aspects. The first one is the efficiency. The second is to
648eliminate enginnering effort to implement it at different abstract levels.
649\item COACH design flow has a top-down approach. In the such case,
650the required performance of a coprocessor (run frequency, maximum cycles for
651a given computation, power consumption, etc) are imposed by the other system
652components. The challenge is to allow user to control accurately the synthesis
653process. For instance, the run frequency must not be a result of the RTL synthesis
654but a strict synthesis constraint.
655\item HLS tools are sensitive to the style in which the algorithm is written.
656In addition, they are are not integrated into an architecture and system
657exploration tool.
658Consequently, engineering work is required to swap from a tool to another,
659to integrate the resulting simulation model to an architectural exploration tool
660and to synthesize the generated RTL description.
661%CA Additionnal preprocessing, source-level transformations, are thus
662%CA required to improve the process.
663%CA Particularly, this includes parallelism exposure and efficient memory mapping.
664\item Most HLS tools translate a sequential algorithm into a coprocessor
665containing a single data-path and finite state machine (FSM). In this way,
666only the fine grained parallelism is exploited (ILP parallelism).
667The challenge is to identify the coarse grained parallelism and to generate,
668from a sequential algorithm, coprocessor containing multiple communicating
669tasks (data-paths and FSMs).
670\end{itemize}
671
672%Presenter les resultats escomptes en proposant si possible des criteres de reussite
673%et d'evaluation adaptes au type de projet, permettant d'evaluer les resultats en
674%fin de projet.
675The main result is the framework. It is composed concretely of:
6762 HPC communication shemes with their implementation,
6775 HLS tools (control dominated HLS, data dominated HLS, Coarse grained HLS,
678Memory optimisation HLS and ASIP),
6793 systemC based virtual prototyping environment extended with synthesizable
680RTL IP cores (generic, ALTERA/NIOS/AVALON, XILINX/MICROBLAZE/OPB),
681one design space exploration tool,
682one operating system (OS).
683\\
684The framework fonctionality will be demonstrated with XXX-EXAMPLE1, XXX-EXAMPLE2
685and XXX-EXAMPLE3 on 4 archictures (generic/XILINX, generic/ALTERA,
686proprietary/XILINX, proprietary/ALTERA).
687
688%% \section{}
689%% %3.  PROGRAMME SCIENTIFIQUE ET TECHNIQUE, ORGANISATION DU PROJET
690%% \subsection{}
691%% %3.1.        PROGRAMME SCIENTIFIQUE ET STRUCTURATION DU PROJET
692%% %(2 pages maximum)
693%% %Présentez le programme scientifique et justifiez la décomposition en tâches du
694%% %programme de travail en cohérence avec les objectifs poursuivis.
695%% %Utilisez un diagramme pour présenter les liens entre les différentes tâches
696%% %(organigramme technique)
697%% %Les tâches représentent les grandes phases du projet. Elles sont en nombre limité.
698%% %N'oubliez pas les activités et actions correspondant à la dissémination et à la
699%% %valorisation.
700%%
701%% %METTRE UNE FIGURE ICI DECRIVANT LES TACHES ET LEURS INTERACTION (AVEC LE FLOT 
702%% %EN FILIGRANE ? )
703%% \subsection{}
704%% %3.2.        MANAGEMENT DU PROJET
705%% %(2 pages maximum)
706%% %Préciser les aspects organisationnels du projet et les modalités de coordination
707%% %(si possible individualisation d'une tâche coordination : cf. tâche 0 du document
708%% %de soumission A).
709%% \subsection{}
710%% %3.3.        DESCRIPTION DES TRAVAUX PAR TACHE
711%% %(idéalement 1 ou 2 pages par tâche)
712%% %Pour chaque tâche, décrire :
713%% %-   les objectifs  de la tâche et éventuels indicateurs de succès,
714%% %-   le responsable de la tâche et les partenaires impliqués (possibilité de
715%% %l'indiquer sous forme graphique),
716%% %-   le programme détaillé des travaux par tâche,
717%% %-   les livrables de la tâche,
718%% %-   les contributions des partenaires (le " qui fait quoi "),
719%% %-   la description des méthodes et des choix techniques et de la manière dont
720%% %les solutions seront apportées,
721%% %-   les risques de la tâche et les solutions de repli envisagées.
722
723
724
725
726
727
Note: See TracBrowser for help on using the repository browser.