- group APIs
Interface APIs of AOCL-FFTZ library.
This section contains APIs for setting up, executing and destroying the single-threaded, and multi-threaded FFT operations.
Note
Different variants of setup APIs are exposed to support float and double precision types in LP64 and ILP64 data models.
Functions
-
VOID *aoclfftz_setup_f(aoclfftz_prob_desc_f *problem)#
Generates a solution handle for a given problem of type FLOAT on LP64 systems.
This API validates the problem descriptor and generates a solution handle for the given input problem. The problem descriptor parameters must be fully initialized prior to invocation, including:
Allocation of memory for input/output buffers
Allocation and initialization of dims/vecs tensor dimensions
Configuration of all fields within the relevant problem descriptor structure aoclfftz_prob_desc_f
This generated handle is passed to the execute APIs to perform FFT computation and should be destroyed by aoclfftz_destroy.
- Parameters:
problem – FLOAT LP64 problem descriptor object.
- Returns:
Result
Description
Opaque pointer to FFT solution handle
Setup succeeded with a valid solution for execution of the given problem (SUCCESS)
NULL
Setup failed (FAIL)
-
VOID *aoclfftz_setup_d(aoclfftz_prob_desc_d *problem)#
Generates a solution handle for a given problem of type DOUBLE on LP64 systems.
This API validates the problem descriptor and generates a solution handle for the given input problem. The problem descriptor parameters must be fully initialized prior to invocation, including:
Allocation of memory for input/output buffers
Allocation and initialization of dims/vecs tensor dimensions
Configuration of all fields within the relevant problem descriptor structure aoclfftz_prob_desc_d
This generated handle is passed to the execute APIs to perform FFT computation and should be destroyed by aoclfftz_destroy.
- Parameters:
problem – DOUBLE LP64 problem descriptor object
- Returns:
Result
Description
Opaque pointer to FFT solution handle
Setup succeeded with a valid solution for execution of the given problem (SUCCESS)
NULL
Setup failed (FAIL)
-
VOID *aoclfftz_setup_f_64_(aoclfftz_prob_desc_f_64_ *problem)#
Generates a solution handle for a given problem of type FLOAT on ILP64 systems.
This API validates the problem descriptor and generates a solution handle for the given input problem. The problem descriptor parameters must be fully initialized prior to invocation, including:
Allocation of memory for input/output buffers
Allocation and initialization of dims/vecs tensor dimensions
Configuration of all fields within the relevant problem descriptor structure aoclfftz_prob_desc_f_64_
This generated handle is passed to the execute APIs to perform FFT computation and should be destroyed by aoclfftz_destroy.
- Parameters:
problem – FLOAT ILP64 problem descriptor object
- Returns:
Result
Description
Opaque pointer to FFT solution handle
Setup succeeded with a valid solution for execution of the given problem (SUCCESS)
NULL
Setup failed (FAIL)
-
VOID *aoclfftz_setup_d_64_(aoclfftz_prob_desc_d_64_ *problem)#
Generates a solution handle for a given problem of type DOUBLE on ILP64 systems.
This API validates the problem descriptor and generates a solution handle for the given input problem. The problem descriptor parameters must be fully initialized prior to invocation, including:
Allocation of memory for input/output buffers
Allocation and initialization of dims/vecs tensor dimensions
Configuration of all fields within the relevant problem descriptor structure aoclfftz_prob_desc_d_64_
This generated handle is passed to the execute APIs to perform FFT computation and should be destroyed by aoclfftz_destroy.
- Parameters:
problem – DOUBLE ILP64 problem descriptor object
- Returns:
Result
Description
Opaque pointer to FFT solution handle
Setup succeeded with a valid solution for execution of the given problem (SUCCESS)
NULL
Setup failed (FAIL)
-
aoclfftz_error_type aoclfftz_execute(VOID *handle)#
Performs FFT computation based on the solution handle and returns the status of execution as one of the aoclfftz_error_type values.
The input and output buffers defined in the setup stage will be used for computation without requiring additional buffer specification. Setup API
aoclfftz_setup_*must be invoked before calling this execute API.- Parameters:
handle – solution handle
- Returns:
Result
Description
SUCCESS
FAIL
-
aoclfftz_error_type aoclfftz_execute_io(VOID *handle, VOID *in, VOID *out)#
Performs FFT computation on the given buffers based on the solution handle and returns the status of execution as one of the aoclfftz_error_type values.
This API uses an already computed solution handle but applies it to the newly provided input and output buffers instead of those defined during setup. To avoid memory access issues, the
inandoutbuffers must have sufficient memory allocated based on the problem size defined in the solution handle. Setup APIaoclfftz_setup_*must have been invoked in the past to acquire a valid solution handle before calling this execute API with any new set of input and output buffers.- Parameters:
handle – solution handle
in – pointer to input buffer
out – pointer to output buffer
- Returns:
Result
Description
SUCCESS
FAIL
-
VOID aoclfftz_destroy(VOID *handle)#
Destroys the solution handle created by aoclfftz_setup_* APIs.
This API frees all memory allocated within the solution handle and destroys the handle. It should be called after all FFT computations are completed to prevent memory leaks. After calling this API, the handle becomes invalid and should not be used again.
- Parameters:
handle – solution handle
-
VOID *aoclfftz_setup_f(aoclfftz_prob_desc_f *problem)#