/* 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 way to port an application to FPGA is to set the field starpu_codelet::fpga_funcs, to provide StarPU with the function for FPGA implementation, so for instance: \verbatim struct starpu_codelet cl = { .fpga_funcs = {myfunc}, .nbuffers = 1, } \endverbatim */