CANN/ops-fft:FFT算子库

发布时间:2026/7/14 18:35:50

CANN/ops-fft:FFT算子库 ops-fft【免费下载链接】ops-fftops-fft 是 CANN Compute Architecture for Neural Networks算子库中提供 FFT 类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-fft 最新动态[2026/03] 实现完整的 Plan 管理机制支持 Plan 创建、执行、销毁全生命周期[2026/03] 新增rfft1_d算子支持实数到复数的一维 FFT[2026/03] 建立完整的测试框架支持单元测试、自动化测试统计[2026/03] 实现标准化的打包流程生成 .run 安装包支持 install/uninstall/upgrade 完整生命周期管理 概述ops-fft 是 CANN Compute Architecture for Neural Networks算子库中提供 FFT 类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。主要特性✅双层架构- API 层提供易用接口算子层实现高性能计算✅模块化设计- 支持动态添加算子模块每个算子独立开发和测试✅标准 CMake 构建- 跨平台编译支持统一的构建流程✅完整测试体系- 基于自定义测试框架支持自动化测试✅便捷打包- 一键生成 .run 安装包支持完整生命周期管理 版本配套当前仓库已验证通过的 CANN Toolkit 如下CANN 版本发布时间分支CANN 9.0.0-beta.22026/03/30master请根据实际 CPU 架构从上述链接目录中自行选择对应的.run安装包。toolkit 安装包文件名格式如下Ascend-cann-toolkit_${cann_version}_linux-aarch64.runAscend-cann-toolkit_${cann_version}_linux-x86_64.run安装社区版 CANN Toolkit# 确保安装包具有可执行权限 chmod x Ascend-cann-toolkit_${cann_version}_linux-${arch}.run # 安装命令 ./Ascend-cann-toolkit_${cann_version}_linux-${arch}.run --install --force --install-path${install_path}${cann_version}表示 toolkit 安装包版本号需满足上文的最低版本要求。${arch}表示 CPU 架构如aarch64、x86_64。${install_path}表示指定安装路径默认安装在/usr/local/Ascend目录。配置环境变量安装完成后请先执行source ${install_path}/cann/set_env.sh请将${install_path}替换为 toolkit 的实际安装目录例如/usr/local/Ascend或${HOME}/Ascend。⚡️ 快速入门编译与测试详细的 build.sh 参数说明请参考 build 参数说明。# 编译所有算子默认 8 线程 ./build.sh # 编译指定算子 ./build.sh --opsrfft1_d # 编译并运行测试 ./build.sh --run # 编译并打包成 .run 文件 ./build.sh --pkg # 查看完整帮助信息 ./build.sh --help安装# 标准安装需要 root 权限 sudo ./cann-950-ops-fft_9.0.0_linux-*.run --full # 查看安装包信息 ./cann-950-ops-fft_9.0.0_linux-*.run --help # 安装到自定义路径 sudo ./cann-950-ops-fft_9.0.0_linux-*.run --full --install-path/opt/ascend # 卸载 sudo ./cann-950-ops-fft_9.0.0_linux-*.run --uninstall # 升级 sudo ./cann-950-ops-fft_9.0.0_linux-*.run --upgrade 项目说明API 接口实现完整的接口实现状态请参考 接口实现文档。已实现的接口7 个类别接口功能Plan 创建aclfftCreate创建空的 FFT Plan 句柄Plan 创建aclfftPlan1d创建并初始化一维 FFT PlanPlan 初始化aclfftMakePlan1d初始化一维 FFT Plan执行接口aclfftExecR2C执行实数到复数的一维 FFTPlan 管理aclfftDestroy销毁 FFT Plan 并释放资源Plan 管理aclfftSetStream设置 Plan 的执行流工具接口aclfftGetErrorString获取错误码的描述字符串支持的算子当前支持的算子列表算子名称描述状态rfft1_d一维实数FFT运算✅ 已实现更多算子正在持续开发中...SoC 支持矩阵SoC 型号SOC_VERSION支持状态Ascend950ascend950dt_9595✅ 默认支持Ascend910Bascend910b3❌ 暂不支持Ascend910_93ascend910_93❌ 暂不支持Ascend910ascend910❌ 暂不支持Ascend310Pascend310p❌ 暂不支持Ascend310Bascend310b❌ 暂不支持 目录结构ops-fft/ ├── cmake/ # CMake 配置文件 │ ├── func.cmake # 公共函数算子注册等 │ ├── init_env.cmake # 环境初始化 │ ├── package.cmake # 打包配置 │ ├── makeself_built_in.cmake # 打包脚本 │ ├── variables.cmake # 变量定义 │ └── third_party/ # 第三方 CMake 模块 │ └── makeself-fetch.cmake ├── docs/ # 文档目录 │ ├── README.md # 文档导航 │ ├── implementation.md # 接口实现状态文档 │ └── zh/ # 中文文档 │ ├── op_list.md # 算子列表 │ ├── context/ # 背景与环境 │ │ ├── build.md # 编译参数说明 │ │ ├── dir_structure.md # 目录结构说明 │ │ └── quick_install.md # 快速安装指南 │ ├── debug/ # 调试相关 │ │ └── op_debug_prof.md # 算子调试与 Profiling │ ├── develop/ # 开发指南 │ │ ├── operator_development_guide.md # 算子开发指南 │ │ └── test_writing_guide.md # 测试编写指南 │ └── invocation/ # 调用示例 │ └── quick_op_invocation.md ├── include/ # 公共头文件 │ └── cann_ops_fft.h # API 头文件 ├── lib/ # API 层实现 │ ├── fft_plan_api.cpp # Plan 创建接口 │ ├── fft_plan_init_api.cpp # Plan 初始化接口 │ ├── fft_exec_api.cpp # FFT 执行接口 │ ├── fft_plan_destroy_api.cpp # Plan 销毁接口 │ ├── fft_stream_api.cpp # 流管理接口 │ ├── fft_utils_api.cpp # 工具接口 │ ├── fft_error.h # 错误处理 │ ├── fft_handle_impl.h # Plan 内部实现 │ └── CMakeLists.txt ├── scripts/ # 脚本目录 │ ├── check_build_dependencies.py # 构建依赖检查 │ ├── generate_version_info.py # 版本信息生成 │ └── package/ # 打包相关脚本 │ ├── common/ # 公共打包工具 │ ├── latest_manager/ # 版本管理脚本 │ ├── module/ # 模块配置XML │ ├── ops_fft/ # ops-fft 安装脚本 │ └── package.py # 打包入口 ├── src/ # 算子层实现 │ ├── rfft1_d/ # Rfft1_d 算子Cooley-Tukey │ │ ├── rfft1_d.cpp # Host Kernel 实现 │ │ ├── rfft1_d.h # 算子接口 │ │ ├── arch35/ # 架构特定代码 │ │ │ ├── rfft1_d_fast.h │ │ │ └── rfft1_d_tilingdata.h │ │ ├── tests/ # 算子测试 │ │ │ ├── rfft1_d_test.h │ │ │ └── rfft1_d_test.cpp │ │ └── CMakeLists.txt │ └── CMakeLists.txt ├── tests/ # 测试框架 │ ├── test_common.h # 测试框架头文件 │ ├── test_common.cpp # 测试框架实现 │ ├── all_tests.cpp.in # 测试入口模板 │ └── CMakeLists.txt ├── build.sh # 编译脚本 ├── CHANGELOG.md # 版本变更记录 ├── classify_rule.yaml # 文件分类规则 ├── CMakeLists.txt # 主 CMake 配置 ├── CONTRIBUTING.md # 贡献指南 ├── install_deps.sh # 依赖安装脚本 ├── LICENSE # 许可证 ├── OAT.xml # 许可证扫描配置 ├── QUICKSTART.md # 快速入门文档 ├── requirements.txt # Python 依赖列表 ├── SECURITY.md # 安全声明 ├── Third_Party_Open_Source_Software_List.yaml # 三方软件清单 ├── Third_Party_Open_Source_Software_Notice # 三方软件声明 ├── version.cmake # 版本信息CMake └── README.md # 本文件️ 开发指南添加新算子详细的算子开发指南请参考 算子开发指南包括完整的目录结构说明Host Kernel 实现模板Tiling 数据结构定义完整开发流程快速开始创建目录mkdir -p src/my_op/arch35 (可选) mkdir -p src/my_op/tests编写算子实现创建src/my_op/my_op.cpp包含Host 部分对外接口、Tiling 计算、内存管理Kernel 部分核函数实现创建 CMakeLists.txtregister_operator(NAME my_op ARCH_DIR arch35)编写测试推荐 参考 测试编写指南编译验证./build.sh --opsmy_op --run完整示例参考src/rfft1_d/目录。添加新接口如果要添加新的 API 接口在include/cann_ops_fft.h中声明接口在lib/中创建对应的实现文件如fft_my_api.cpp在lib/CMakeLists.txt中添加源文件编写测试验证功能编写测试ops-fft 提供了轻量级、自动化的测试框架。详细的测试编写指南请参考 测试编写指南包括测试框架特性测试文件结构核心宏和函数说明完整编写步骤和示例最佳实践和常见问题 相关信息许可证: CANN Open Software License Agreement Version 2.0安全声明: SECURITY.md贡献指南: CONTRIBUTING.md所属 SIG: CANN Community 联系我们本项目功能和文档正在持续更新和完善中欢迎您关注最新版本。问题反馈: 通过 Issues 提交问题社区互动: 通过 Discussions 参与交流技术专栏: 通过 Wiki 获取技术文章【免费下载链接】ops-fftops-fft 是 CANN Compute Architecture for Neural Networks算子库中提供 FFT 类计算的基础算子库采用模块化设计支持灵活的算子开发和管理。项目地址: https://gitcode.com/cann/ops-fft创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻