7.2.1. Interface APIs - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
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

AOCLFFTZ_SUCCESS

SUCCESS

AOCLFFTZ_EXECUTION_FAILURE

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 in and out buffers must have sufficient memory allocated based on the problem size defined in the solution handle. Setup API aoclfftz_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

AOCLFFTZ_SUCCESS

SUCCESS

AOCLFFTZ_EXECUTION_FAILURE

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

const CHAR *aoclfftz_version(VOID)#

Interface API to get AOCL-FFTZ library version string.

Returns:

AOCL-FFTZ library version string