CANN FFT Library - 接口实现状态文档
CANN FFT Library - 接口实现状态文档【免费下载链接】ops-fftops-fft 是 CANN Compute Architecture for Neural Networks算子库中提供 FFT 类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-fft本文档总结了 CANN FFT 库的所有接口及其当前实现状态。概述CANN FFT 库提供 FFT 接口用于在华为昇腾 NPU 上执行快速傅里叶变换。库分为两层API 层lib/提供面向用户的高级接口算子层src/实现底层算子内核使用 ASC 编译器编译当前版本1.0.0接口分类接口按功能分为以下类别Plan 创建接口创建和初始化 FFT PlanPlan 执行接口执行各种类型的 FFT 变换Plan 管理接口设置流、工作区等工具接口获取错误信息、版本等实现状态说明状态说明✅ 已实现接口已完整实现并可正常使用❌ 未实现接口未实现或仅有占位实现已实现的接口Plan 创建与初始化接口功能状态aclfftCreate创建空的 FFT Plan 句柄✅aclfftPlan1d创建并初始化一维 FFT Plan✅aclfftMakePlan1d初始化一维 FFT Plan✅Plan 执行接口功能状态底层算子aclfftExecR2C执行实数到复数的一维 FFT✅rfft1_dPlan 管理接口功能状态aclfftDestroy销毁 FFT Plan 并释放资源✅aclfftSetStream设置 Plan 的执行流✅工具接口接口功能状态aclfftGetErrorString获取错误码的描述字符串✅未实现的接口Plan 初始化接口功能状态aclfftMakePlan2d初始化二维 FFT Plan❌aclfftMakePlan3d初始化三维 FFT Plan❌Plan 创建接口功能状态aclfftPlan2d创建并初始化二维 FFT Plan❌aclfftPlan3d创建并初始化三维 FFT Plan❌Plan 执行单精度接口功能状态需要算子aclfftExecC2C执行复数到复数的 FFT❌c2c_1daclfftExecC2R执行复数到实数的 IFFT❌irfft1_dPlan 执行双精度接口功能状态需要算子aclfftExecZ2Z执行双精度复数到复数的 FFT❌双精度c2caclfftExecD2Z执行双精度实数到复数的 FFT❌双精度rfftaclfftExecZ2D执行双精度复数到实数的 IFFT❌双精度irfft工作空间管理接口功能状态aclfftGetSize1d获取 1D Plan 所需工作空间大小❌aclfftGetSize2d获取 2D Plan 所需工作空间大小❌aclfftGetSize3d获取 3D Plan 所需工作空间大小❌aclfftGetSize获取已创建 Plan 的工作空间大小❌aclfftSetAutoAllocation设置是否自动分配工作空间❌aclfftSetWorkArea设置自定义工作空间❌库信息接口功能状态aclfftGetVersion获取库版本号❌aclfftGetProperty获取库属性主版本号、次版本号、补丁级别❌算子层实现状态已实现算子rfft1_d - 一维实数到复数 FFT功能一维实数到复数的快速傅里叶变换使用示例#include cann_ops_fft.h // 创建 Plan aclfftHandle plan; aclfftPlan1d(plan, 1024, ACLFFT_R2C, 1); // 准备输入数据设备指针 aclfftReal* d_input ...; // 1024 个实数 aclfftComplex* d_output ...; // 513 个复数 // 执行 FFT aclfftExecR2C(plan, d_input, d_output); // 销毁 Plan aclfftDestroy(plan);支持的特性✅ 批量变换batch 1✅ 归一化模式配置✅ 流式执行✅ In-place/Out-of-place 变换算子位置src/rfft1_d/后续实现计划Phase 1完善单精度单维度 FFT目标完成所有一维单精度 FFT 接口实现c2c_1d算子更新aclfftExecC2C实现实现irfft1_d算子更新aclfftExecC2R实现Phase 2高级 Plan 创建与内存管理目标8 个新接口支持高级数据布局和内存管理高级 Plan 创建2 个接口接口功能优先级aclfftPlanMany创建高级批量 FFT Plan支持自定义数据布局P1aclfftMakePlanMany初始化批量 Plan支持嵌入维度、步长、批次距离P1新增特性自定义输入/输出嵌入维度自定义数据步长自定义批次距离支持非连续存储的高级数据布局内存管理3 个接口接口功能优先级aclfftGetSize获取 Plan 所需工作空间大小P1aclfftSetWorkArea设置用户管理的工作空间P1aclfftSetAutoAllocation设置是否自动分配工作空间P1内存管理模式自动分配模式库自动管理工作空间用户管理模式用户预分配并传入工作空间共享工作空间多个 Plan 共享同一块工作空间工具函数3 个接口接口功能优先级aclfftSetScaleFactor设置输出缩放因子P1aclfftGetVersion获取库版本号P1aclfftGetErrorString获取错误描述字符串P1Phase 3多维度 FFT 支持目标扩展到二维和三维 FFT实现二维 FFT实现c2c_2d算子完成aclfftMakePlan2d实现实现三维 FFT实现c2c_3d算子完成aclfftMakePlan3d实现Phase 4双精度支持目标实现双精度 FFT 接口实现双精度算子z2z_1d,d2z_1d,z2d_1d及对应的二维和三维版本更新 API 实现aclfftExecZ2Z,aclfftExecD2Z,aclfftExecZ2DPhase 5工作空间估算与库信息目标4 个新接口支持工作空间估算和库信息查询接口功能优先级aclfftGetSize1d获取 1D Plan 工作空间大小P2aclfftGetSize2d获取 2D Plan 工作空间大小P2aclfftGetSize3d获取 3D Plan 工作空间大小P2aclfftGetProperty获取库属性版本、设备数等P2Phase 6高级特性目标17 个新接口支持回调系统、多设备和扩展数据类型工作空间估算4 个接口接口功能优先级aclfftEstimateSize1d估算 1D FFT 工作空间无需创建 PlanP2aclfftEstimateSize2d估算 2D FFT 工作空间P2aclfftEstimateSize3d估算 3D FFT 工作空间P2aclfftEstimateSizeMany估算批量 FFT 工作空间P2扩展工具函数2 个接口接口功能优先级aclfftGetStream获取当前执行流P2aclfftGetProperty获取库属性设备数、最大 Plan 数等P2回调系统3 个接口接口功能优先级aclfftSetCallback设置回调函数数据预处理/后处理P2aclfftClearCallback清除回调函数P2aclfftSetCallbackSharedSize设置回调共享内存大小P2回调类型Load 回调FFT 计算前数据预处理Store 回调FFT 计算后数据后处理多设备支持5 个接口接口功能优先级aclfftSetDevices设置 Plan 使用的设备列表P2aclfftMultiMalloc分配多设备内存P2aclfftMultiFree释放多设备内存P2aclfftMultiMemcpy多设备内存拷贝P2aclfftExecMulti使用多设备描述符执行P2多设备数据分布策略Batch 分割按 batch 维度分配到不同设备维度分割按空间维度分割2D/3D扩展数据类型3 个接口接口功能优先级aclfftMakePlanManyExt使用扩展数据类型创建 PlanP2aclfftGetSizeManyExt获取扩展 Plan 的工作空间P2aclfftExecExt通用执行函数类型无关P2支持的扩展类型半精度浮点FP16BFloat16半精度/BFloat16 复数实现优先级总结Phase接口数量优先级预计工期主要功能Phase 12 个算子P01 周完善单精度 1D FFTPhase 28 个 APIP12 周高级 Plan 创建与内存管理Phase 32 个算子 2 个 APIP11 周多维度 FFT 支持Phase 43 个算子 3 个 APIP11 周双精度支持Phase 54 个 APIP21 周工作空间估算Phase 617 个 APIP23-4 周高级特性回调、多设备、扩展类型总计算子7 个Phase 1: 2, Phase 3: 2, Phase 4: 3API 接口36 个当前已实现: 7后续规划: 29统计摘要当前实现状态类别总数已实现未实现Plan 创建422Plan 初始化312Plan 执行单精度312Plan 执行双精度303Plan 管理422工作空间查询404工具接口312当前总计24717当前完成度已实现29.2% (7/24)未实现70.8% (17/24)完整规划包含后续 PhasePhase接口分类接口数量实现状态当前版本基础接口247 已实现 / 17 未实现Phase 2高级 Plan 创建2规划中内存管理3规划中工具函数3规划中Phase 3多维度支持2 个算子规划中Phase 4双精度支持3 个算子规划中Phase 5工作空间估算4规划中Phase 6回调系统3规划中多设备支持5规划中扩展数据类型3规划中扩展工具2规划中总计所有接口517 已实现 / 44 规划中完整规划统计当前已实现7 个接口13.7%Phase 2 规划8 个接口高级功能Phase 3 规划2 个算子Phase 4 规划3 个算子Phase 5 规划4 个接口Phase 6 规划17 个接口高级特性总计51 个接口和算子附录数据类型定义主要数据类型类型说明aclfftHandlePlan 句柄aclfftResult错误码aclfftTypeFFT 类型aclfftComplex单精度复数aclfftDoubleComplex双精度复数aclfftReal单精度实数aclfftDoubleReal双精度实数aclrtStream流句柄错误码定义错误码说明ACLFFT_SUCCESS成功ACLFFT_INVALID_PLAN无效 PlanACLFFT_ALLOC_FAILED分配失败ACLFFT_INVALID_TYPE无效类型ACLFFT_INVALID_VALUE无效参数ACLFFT_INTERNAL_ERROR内部错误ACLFFT_EXEC_FAILED执行失败ACLFFT_SETUP_FAILED设置失败ACLFFT_INVALID_SIZE无效大小ACLFFT_UNALIGNED_DATA数据未对齐ACLFFT_INCOMPLETE_PARAMETER_LIST参数不完整ACLFFT_INVALID_DEVICE无效设备ACLFFT_PARSE_ERROR解析错误ACLFFT_NO_WORKSPACE无工作空间ACLFFT_NOT_IMPLEMENTED未实现ACLFFT_NOT_SUPPORTED不支持文档版本1.0.0最后更新2026-03-16维护者CANN FFT Team【免费下载链接】ops-fftops-fft 是 CANN Compute Architecture for Neural Networks算子库中提供 FFT 类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-fft创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考