Files
TheRock/rocm-libraries/projects/rocfft/docs/reference/api.rst
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

145 lines
4.0 KiB
ReStructuredText

.. meta::
:description: rocFFT documentation and API reference library
:keywords: rocFFT, ROCm, API, documentation
.. _api-usage:
********************************************************************
API usage
********************************************************************
This section describes how to use the rocFFT library API.
Types
=====
There are a few data structures that are internal to the library. The pointer types to these
structures are listed below. Use these types to create handles and pass them
between different library functions.
.. doxygentypedef:: rocfft_plan
.. doxygentypedef:: rocfft_plan_description
.. doxygentypedef:: rocfft_execution_info
Library setup and cleanup
=========================
The following functions handle initialization and cleanup of the library.
.. doxygenfunction:: rocfft_setup
.. doxygenfunction:: rocfft_cleanup
Plan
====
The following functions are used to create and destroy plan objects.
.. doxygenfunction:: rocfft_plan_create
.. doxygenfunction:: rocfft_plan_destroy
The following functions are used to query for information after a plan is created.
.. doxygenfunction:: rocfft_plan_get_work_buffer_size
.. doxygenfunction:: rocfft_plan_get_print
Plan description
================
Most of the time, :cpp:func:`rocfft_plan_create` is able to fully
specify a transform. However, advanced plan details such as strides and
offsets require the creation of a plan description object, which is
configured and passed to the :cpp:func:`rocfft_plan_create` function.
The plan description object can be safely destroyed after it is passed
to the :cpp:func:`rocfft_plan_create` function.
.. doxygenfunction:: rocfft_plan_description_create
.. doxygenfunction:: rocfft_plan_description_destroy
.. doxygenfunction:: rocfft_plan_description_set_scale_factor
.. doxygenfunction:: rocfft_plan_description_set_data_layout
Execution
=========
After creating a plan, execute it using the
:cpp:func:`rocfft_execute` function.
This function computes a transform on the specified data. It provides control over the execution and returns useful
information.
.. doxygenfunction:: rocfft_execute
Execution info
-=============
:cpp:func:`rocfft_execute` takes an optional :cpp:type:`rocfft_execution_info` parameter. This parameter encapsulates
information such as the work buffer and compute stream for the transform.
.. doxygenfunction:: rocfft_execution_info_create
.. doxygenfunction:: rocfft_execution_info_destroy
.. doxygenfunction:: rocfft_execution_info_set_work_buffer
.. comment doxygenfunction:: rocfft_execution_info_set_mode
.. doxygenfunction:: rocfft_execution_info_set_stream
.. comment doxygenfunction:: rocfft_execution_info_get_events
.. _hip-graph-support-for-rocfft:
HIP graph support for rocFFT
============================
rocFFT supports capturing kernels launched by
:cpp:func:`rocfft_execute` into HIP graph nodes. This approach
captures the FFT execution and other work into a HIP graph and
launches the work in the graph multiple times.
Graph capture is only supported for single-process transforms.
Multi-process transforms, such as those that use Message Passing
Interface, cannot use graph capture because rocFFT performs inter-process
communication in addition to launching kernels.
Each launch of a HIP graph provides the same arguments
to the kernels in the graph. In particular, this implies that all of
the parameters to :cpp:func:`rocfft_execute` remain valid while the
HIP graph is in use, including the following:
* The rocFFT plan
* The input and output buffers
* The :cpp:type:`rocfft_execution_info` object, if provided
rocFFT does not support capturing work performed by other API
functions, aside from :cpp:func:`rocfft_execute`, into HIP graphs.
Enumerations
============
This section lists all the enumerations that are used.
.. doxygenenum:: rocfft_status
.. doxygenenum:: rocfft_transform_type
.. _rocfft-supported-data-types:
.. doxygenenum:: rocfft_precision
.. doxygenenum:: rocfft_result_placement
.. doxygenenum:: rocfft_array_type
.. comment doxygenenum:: rocfft_execution_mode