muFFT API 参考
1 引言
muFFT 库是 Moore Threads® MUSA® 工具包的快速傅里叶变换(FFT)产品。
FFT 是一种分治算法,可以高效地计算复数或实数值数据集的离散傅里叶变换。
muFFT 库提供了一个简单的接口来执行 FFT,并支持在 MT GPU 上高效地处理各种 FFT 输入和选项,使用户能够快速利用 GPU 的并行性和浮点能力。
2 模块索引
2.1 模块
以下是所有模块的列表:
数据类型
muFFT 库函数
3 模块文档
3.1 数据类型
宏
- #define MUFFT_FORWARD - 执行前向快速傅里叶变换(FFT)。
- #define MUFFT_INVERSE 1 执行后向/逆向 FFT。
类型定义
- typedef enum mufftResult_t mufftResult 返回状态码。
- typedef enum mufftType_t mufftType 变换类型。
- typedef enum mufftLibraryPropertyType_t mufftLibraryPropertyType 属性类型。
- typedef struct mufftHandle_t∗ mufftHandle 用于存储和访问 muFFT 计划的句柄类型。用户在创建 muFFT 计划后会收到一个句柄,并使用此句柄来执行计划。
- typedef float mufftReal 单精度浮点实数数据类型。
- typedef double mufftDoubleReal 双精度浮点实数数据类型。
- typedef muComplex mufftComplex 由交错的实部和虚部组成的单精度浮点复数数据类型。
- typedef muDoubleComplex mufftDoubleComplex 由交错的实部和虚部组成的双精度浮点复数数据类型。
枚举
- enum mufftResult_t {
**MUFFT_SUCCESS** = 0 ,
**MUFFT_INVALID_PLAN** = 1 ,
**MUFFT_ALLOC_FAILED** = 2 ,
**MUFFT_INVALID_TYPE** = 3 ,
**MUFFT_INVALID_VALUE** = 4 ,
**MUFFT_INTERNAL_ERROR** = 5 ,
**MUFFT_EXEC_FAILED** = 6 ,
**MUFFT_SETUP_FAILED** = 7 ,
**MUFFT_INVALID_SIZE** = 8 ,
**MUFFT_UNALIGNED_DATA** = 9 ,
**MUFFT_INCOMPLETE_PARAMETER_LIST** = 0xA ,
**MUFFT_INVALID_DEVICE** ,
**MUFFT_PARSE_ERROR** = 0xC ,
**MUFFT_NO_WORKSPACE** ,
**MUFFT_NOT_IMPLEMENTED** ,
**MUFFT_LICENSE_ERROR** ,
**MUFFT_NOT_SUPPORTED** }
返回状态码。
- enum mufftType_t {
**MUFFT_R2C** = 0x2a ,
**MUFFT_C2R** = 0x2c ,
**MUFFT_C2C** = 0x29 ,
**MUFFT_D2Z** = 0x6a ,
**MUFFT_Z2D** = 0x6c ,
**MUFFT_Z2Z** = 0x69 }
变换类型。
- enum mufftLibraryPropertyType_t {
**MUFFT_MAJOR_VERSION** ,
**MUFFT_MINOR_VERSION** ,
**MUFFT_PATCH_LEVEL** }
属性类型。
3.1.1 详细描述
本节涵盖了 muFFT API 使用的数据类型。
3.1.2 类型定义文档
3.1.2.1 mufftLibraryPropertyType
typedef enum mufftLibraryPropertyType_t mufftLibraryPropertyType
属性类型。
libraryPropertyType 数据类型是库属性类型的枚举。
3.1.2.2 mufftResult
typedef enum mufftResult_t mufftResult
返回状态码。
除了 MUFFT_SUCCESS 之外,muFFT 库的所有返回值都表示当前 API 调用失败,用户应重新配置以纠正问题。
3.1.2.3 mufftType
typedef enum mufftType_t mufftType
变换类型。
此类型用于声明将执行的傅里叶变换类型。最左边的数字决定实数或复数,左边的第二和第三位数字决定实数的正向或逆向,最右边的数字(第7位)决定单精度或双精度。