440_fpga_support.doxy 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2019 CNRS
  4. * Copyright (C) 2019 Inria
  5. *
  6. * StarPU is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU Lesser General Public License as published by
  8. * the Free Software Foundation; either version 2.1 of the License, or (at
  9. * your option) any later version.
  10. *
  11. * StarPU is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. *
  15. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. */
  17. /*! \page FPGASupport FPGA Support
  18. \section FPGA FPGA
  19. The use of specialized hardware such as accelerators or coprocessors offers an
  20. interesting approach to overcome the physical limits encountered by processor
  21. architects. As a result, many machines are now equipped with one or several
  22. accelerators (e.g. a GPU), in addition to the usual processor(s). While a lot of
  23. efforts have been devoted to offload computation onto such accelerators, very
  24. little attention as been paid to portability concerns on the one hand, and to the
  25. possibility of having heterogeneous accelerators and processors to interact on the other hand.
  26. In addition, StarPU comes with programming language support, in the form of an OpenCL front-end (\ref FPGAextensions).
  27. \section PortingApplicationsToFPGA Porting Applications To FPGA
  28. The way to port an application to FPGA is to set the field
  29. starpu_codelet::fpga_funcs, to provide StarPU with the function
  30. for FPGA implementation, so for instance:
  31. \verbatim
  32. struct starpu_codelet cl =
  33. {
  34. .fpga_funcs = {myfunc},
  35. .nbuffers = 1,
  36. }
  37. \endverbatim
  38. */