/* StarPU --- Runtime system for heterogeneous multicore architectures.
 *
 * Copyright (C) 2019                          CNRS
 * Copyright (C) 2019                          Inria
 *
 * StarPU is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2.1 of the License, or (at
 * your option) any later version.
 *
 * StarPU is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * See the GNU Lesser General Public License in COPYING.LGPL for more details.
 */

/*! \page FPGASupport FPGA Support

\section FPGA FPGA 

The use of specialized hardware such as accelerators or coprocessors offers an
interesting approach to overcome the physical limits encountered by processor
architects. As a result, many machines are now equipped with one or several
accelerators (e.g. a GPU), in addition to the usual processor(s). While a lot of
efforts have been devoted to offload computation onto such accelerators, very
little attention as been paid to portability concerns on the one hand, and to the
possibility of having heterogeneous accelerators and processors to interact on the other hand.

 In addition, StarPU comes with programming language support, in the form of an OpenCL front-end (\ref FPGAextensions).

\section PortingApplicationsToFPGA Porting Applications To FPGA

The simplest way to port an application to FPGA is to set the field
starpu_codelet::fpga_funcs_name, to provide StarPU with the function
name of the FPGA implementation, so for instance:

\verbatim
struct starpu_codelet cl =
{
    .fpga_funcs = {myfunc},
    .fpga_funcs_name = {"myfunc"},
    .nbuffers = 1,
}
\endverbatim



*/
