FFT_3D
产品支持情况
|
硬件型号 |
支持情况 |
|---|---|
|
|
不支持 |
|
|
不支持 |
|
|
不支持 |
|
|
支持 |
|
|
不支持 |
功能描述
接口功能
- asdFftMakePlan3D:初始化三维FFT配置。
- asdFftExecC2C:执行复数到复数的FFT变换。
- asdFftExecC2R:执行复数到实数的FFT变换。
- asdFftExecR2C:执行实数到复数的FFT变换。
- asdFftExecC2CSeparated:执行复数到复数的FFT变换,支持实部、虚部分开输入和输出。
计算公式:
设有一个三维离散信号:

它的三维离散傅里叶变换定义为:

其中:


函数原型
- AspbStatus asdFftMakePlan3D(asdFftHandle handle, int64_t fftSizeX, int64_t fftSizeY, int64_t fftSizeZ, asdFftType fftType, asdFftDirection direction, int32_t batchSize)
- AspbStatus asdFftExecC2C(asdFftHandle handle, const aclTensor *input, const aclTensor *output)
- AspbStatus asdFftExecC2R(asdFftHandle handle, const aclTensor *input, const aclTensor *output)
- AspbStatus asdFftExecR2C(asdFftHandle handle, const aclTensor *input, const aclTensor *output)
- AspbStatus asdFftExecC2CSeparated(asdFftHandle handle, const aclTensor *inputReal, const aclTensor *inputImag,const aclTensor *outputReal, const aclTensor *outputImag)
参数说明
- asdFftMakePlan3D
参数名称
Input/Output
类型
描述
handle
Input
asdFftHandle
FFT算子的句柄,需要手动申请创建asdFftHandle对象。
fftSizeX
Input
int64_t
公式中的M,FFT信号长度(第一维)。
fftSizeY
Input
int64_t
公式中的N,FFT信号长度(第二维)。
fftSizeZ
Input
int64_t
公式中的N,FFT信号长度(第三维)。
fftType
Input
asdFftType
FFT变换类型,全部如下:
- ASCEND_FFT_C2C - ASCEND_FFT_C2R - ASCEND_FFT_R2C - ASCEND_FFT_C2C_SEP
direction
Input
asdFftDirection
选择FFT执行正向变换或反向变换:
- ASCEND_FFT_FORWARD - ASCEND_FFT_INVERSE
batchSize
Input
int32_t
FFT变换批处理操作中的数据批次数量。
- asdFftExecC2C
参数名称
Input/Output
类型
描述
handle
Input
asdFftHandle
FFT算子的句柄,需要手动申请创建asdFftHandle对象。
inData
Input
const aclTensor *
公式中的x,Device侧的Tensor,数据类型仅支持COMPELX64,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ)。
outData
Output
aclTensor *
公式中的y,Device侧的Tensor,数据类型仅支持COMPELX64,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ)。
- asdFftExecC2R
参数名称
Input/Output
类型
描述
handle
Input
asdFftHandle
FFT算子的句柄,需要手动申请创建asdFftHandle对象。
inData
Input
const aclTensor *
公式中的x,Device侧的Tensor,数据类型仅支持COMPELX64,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ/2+1)。
outData
Output
aclTensor *
公式中的y,Device侧的Tensor,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ)。
- asdFftExecR2C
参数名称
Input/Output
类型
描述
handle
Input
asdFftHandle
FFT算子的句柄,需要手动申请创建asdFftHandle对象。
inData
Input
const aclTensor *
公式中的x,Device侧的Tensor,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ)。
outData
Output
aclTensor *
公式中的y,Device侧的Tensor,数据类型仅支持COMPELX64,数据格式支持ND,输入的shape为(batchSize,fftSizeX,fftSizeY,fftSizeZ/2+1)。
- asdFftExecC2CSeparated
AspbStatus asdFftExecC2CSeparated(asdFftHandle handle, const aclTensor *inputReal, const aclTensor *inputImag,const aclTensor *outputReal, const aclTensor *outputImag)
参数名称
Input/Output
类型
描述
handle
Input
asdFftHandle
FFT算子的句柄,需要手动申请创建asdFftHandle对象。
inputReal
Input
const aclTensor *
公式中的x的实部,输入的实部,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSize)。
inputImag
Input
const aclTensor *
公式中的x的虚部,输入的虚部,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSize)。
outputReal
Output
const aclTensor *
公式中的y的实部,输出的实部,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSize)。
outputImag
Output
const aclTensor *
公式中的y的虚部,输出的虚部,数据类型仅支持FLOAT32,数据格式支持ND,输入的shape为(batchSize,fftSize)。
约束说明
FFT_3D均不支持本地更新,即不允许输入tensor和输出tensor是同一个tensor。
调用示例
算子的调用示例参见FFT_3D。