1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /* StarPU --- Runtime system for heterogeneous multicore architectures.
- *
- * Copyright (C) 2009-2020 Université de Bordeaux, CNRS (LaBRI UMR 5800), 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.
- */
- /*! \defgroup API_FFT_Support FFT Support
- \def STARPUFFT_FORWARD
- \ingroup API_FFT_Support
- todo
- \def STARPUFFT_INVERSE
- \ingroup API_FFT_Support
- todo
- \fn void * starpufft_malloc(size_t n)
- \ingroup API_FFT_Support
- Allocate memory for \p n bytes. This is preferred over \c malloc(),
- since it allocates pinned memory, which allows overlapped transfers.
- \fn void * starpufft_free(void *p)
- \ingroup API_FFT_Support
- Release memory previously allocated.
- \fn struct starpufft_plan * starpufft_plan_dft_1d(int n, int sign, unsigned flags)
- \ingroup API_FFT_Support
- Initialize a plan for 1D FFT of size \p n. \p sign can be STARPUFFT_FORWARD
- or STARPUFFT_INVERSE. \p flags must be 0.
- \fn struct starpufft_plan * starpufft_plan_dft_2d(int n, int m, int sign, unsigned flags)
- \ingroup API_FFT_Support
- Initialize a plan for 2D FFT of size (\p n, \p m). \p sign can be
- STARPUFFT_FORWARD or STARPUFFT_INVERSE. flags must be \p 0.
- \fn struct starpu_task * starpufft_start(starpufft_plan p, void *in, void *out)
- \ingroup API_FFT_Support
- Start an FFT previously planned as \p p, using \p in and \p out as
- input and output. This only submits the task and does not wait for it.
- The application should call starpufft_cleanup() to unregister the
- \fn struct starpu_task * starpufft_start_handle(starpufft_plan p, starpu_data_handle_t in, starpu_data_handle_t out)
- \ingroup API_FFT_Support
- Start an FFT previously planned as \p p, using data handles \p in and
- \p out as input and output (assumed to be vectors of elements of the
- expected types). This only submits the task and does not wait for it.
- \fn void starpufft_execute(starpufft_plan p, void *in, void *out)
- \ingroup API_FFT_Support
- Execute an FFT previously planned as \p p, using \p in and \p out as
- input and output. This submits and waits for the task.
- \fn void starpufft_execute_handle(starpufft_plan p, starpu_data_handle_t in, starpu_data_handle_t out)
- \ingroup API_FFT_Support
- Execute an FFT previously planned as \p p, using data handles \p in
- and \p out as input and output (assumed to be vectors of elements of
- the expected types). This submits and waits for the task.
- \fn void starpufft_cleanup(starpufft_plan p)
- \ingroup API_FFT_Support
- Release data for plan \p p, in the starpufft_start() case.
- \fn void starpufft_destroy_plan(starpufft_plan p)
- \ingroup API_FFT_Support
- Destroy plan \p p, i.e. release all CPU (fftw) and GPU (cufft)
- resources.
- */
|