| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Co-authored-by: 2301_82146483<2556943601@qq.com> # message auto-generated for no-merge-commit merge: !36 merge fix/issues-44-47 into master fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Created-by: 2301_82146483 Commit-by: 2301_82146483 Merged-by: cann-robot Description: ## 背景 ops-fft 仓库存在 4 个已提交的缺陷反馈 Issue,涉及 Plan 尺寸元数据、枚举类型校验、构建脚本环境变量与线程数参数校验。本 PR 一并修复。 ## 目的 - Fixes #44:实数 FFT Plan 尺寸未按 Hermitian packed 布局计算 - Fixes #45:aclfftType 合法性校验使用数值区间,会接受未定义枚举值 - Fixes #46:build.sh 同时处理 ASCEND_INSTALL_PATH 和 ASCEND_HOME_PATH,但实际强制要求 ASCEND_HOME_PATH - Fixes #47:build.sh -j0 会被接受,线程数只校验整数、不校验大于 0 ## 解决方案 ### Issue #44:Hermitian packed 布局 calculate_data_sizes() 原先将所有维度乘积作为 total_elements,R2C/D2Z 输出与 C2R/Z2D 输入均按全量复数计算,与 Hermitian packed 语义不一致。 修改为区分 full_elements(实数侧全量)与 packed_elements(复数侧 Hermitian packed,最后一维用 floor(n/2)+1),使 Plan 内部 input_size / output_size 元数据与仓库文档、测试、算子实现保持一致。 ### Issue #45:类型白名单校验 aclfftType 枚举值不连续(0x29/0x2a/0x2c/0x69/0x6a/0x6c),原先 type >= ACLFFT_C2C && type <= ACLFFT_Z2D 的区间判断会接受 0x2b、0x30 等未定义枚举值。 在 fft_error.h 新增 aclfft_is_valid_type() 白名单函数,替换 aclfftPlan1d/2d/3d 与 aclfftMakePlan1d/2d 中全部 5 处区间判断。 ### Issue #46:统一 ASCEND 环境变量 build.sh 开头按 ASCEND_INSTALL_PATH > ASCEND_HOME_PATH > 默认值 计算 _ASCEND_INSTALL_PATH,但 check_ascend_env 与 CMake 只认 ASCEND_HOME_PATH。 在计算完毕后统一 export ASCEND_HOME_PATH,使仅设置 ASCEND_INSTALL_PATH 的用户也能正常构建。同步更新报错提示信息与 docs/zh/context/build.md 文档。 ### Issue #47:-j 线程数校验大于 0 -j 参数原先只校验纯数字(^[0-9]+$),-j0 / -j00 可通过解析。现追加 >= 1 校验,在参数解析阶段即报错。 ## 测试 - 代码审查验证:所有改动为防御性修复,不影响合法参数的已有行为 - Issue #44:input_size / output_size 当前未被任何算子实现读取(算子各自计算尺寸),修复使元数据语义一致 - Issue #45:合法枚举值行为不变,仅拦截未定义值 - Issue #46:已有 ASCEND_HOME_PATH 用户行为不变,新增 ASCEND_INSTALL_PATH fallback - Issue #47:正常线程数行为不变,仅 -j0 等零值提前报错 ## 涉及文件 | 文件 | Issue | |---|---| | lib/fft_plan_init_api.cpp | #44, #45 | | lib/fft_error.h | #45 | | lib/fft_plan_api.cpp | #45 | | build.sh | #46, #47 | | docs/zh/context/build.md | #46 | ## 目标 SoC Ascend950 / Ascend910B(改动不涉及算子核函数,与 SoC 无关) See merge request: cann/ops-fft!36 | 20 天前 | |
FFT算子新增 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !27 merge master into master FFT算子新增 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 新增 4 个 FFT 算子实现,并重构公共 kernel 层。 **新增算子** - fft1_d arch32 mix:C2C 混合基数(910B) - fft1_d arch35 mix:C2C Stockham 混合基数(950) - irfft1_d arch32 c2r_fft:C2R FFT(910B) - rfft1_d arch32 r2c_fft:R2C FFT(910B) **其他改动** - 公共 kernel 重构:base 头文件移入 kernel/base/,新增共享层 fft_all_common / fft_c2c_common / fft_c2r_common / fft_r2c_common - 命名空间、宏命名修正,移除冗余注释 - 修复 irfft1_d.h 缺失的 aclfftIrfft1DDft 声明 - rfft1_d arch35 R2C 选核:FFT 优先、FastDFT 兜底 - aclfftMakePlan1d 头文件参数名 stride → dimType,补全 @param 注释 - 文档更新:FFT_1D.md 约束说明、目录结构、开发指南、测试指南 - 许可证名称修正 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> [#2](https://gitcode.com/cann/ops-fft/issues/2) [#13](https://gitcode.com/cann/ops-fft/issues/13) ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-fft!27 | 1 个月前 | |
FFT算子新增 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !27 merge master into master FFT算子新增 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 新增 4 个 FFT 算子实现,并重构公共 kernel 层。 **新增算子** - fft1_d arch32 mix:C2C 混合基数(910B) - fft1_d arch35 mix:C2C Stockham 混合基数(950) - irfft1_d arch32 c2r_fft:C2R FFT(910B) - rfft1_d arch32 r2c_fft:R2C FFT(910B) **其他改动** - 公共 kernel 重构:base 头文件移入 kernel/base/,新增共享层 fft_all_common / fft_c2c_common / fft_c2r_common / fft_r2c_common - 命名空间、宏命名修正,移除冗余注释 - 修复 irfft1_d.h 缺失的 aclfftIrfft1DDft 声明 - rfft1_d arch35 R2C 选核:FFT 优先、FastDFT 兜底 - aclfftMakePlan1d 头文件参数名 stride → dimType,补全 @param 注释 - 文档更新:FFT_1D.md 约束说明、目录结构、开发指南、测试指南 - 许可证名称修正 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> [#2](https://gitcode.com/cann/ops-fft/issues/2) [#13](https://gitcode.com/cann/ops-fft/issues/13) ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-fft!27 | 1 个月前 | |
fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Co-authored-by: 2301_82146483<2556943601@qq.com> # message auto-generated for no-merge-commit merge: !36 merge fix/issues-44-47 into master fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Created-by: 2301_82146483 Commit-by: 2301_82146483 Merged-by: cann-robot Description: ## 背景 ops-fft 仓库存在 4 个已提交的缺陷反馈 Issue,涉及 Plan 尺寸元数据、枚举类型校验、构建脚本环境变量与线程数参数校验。本 PR 一并修复。 ## 目的 - Fixes #44:实数 FFT Plan 尺寸未按 Hermitian packed 布局计算 - Fixes #45:aclfftType 合法性校验使用数值区间,会接受未定义枚举值 - Fixes #46:build.sh 同时处理 ASCEND_INSTALL_PATH 和 ASCEND_HOME_PATH,但实际强制要求 ASCEND_HOME_PATH - Fixes #47:build.sh -j0 会被接受,线程数只校验整数、不校验大于 0 ## 解决方案 ### Issue #44:Hermitian packed 布局 calculate_data_sizes() 原先将所有维度乘积作为 total_elements,R2C/D2Z 输出与 C2R/Z2D 输入均按全量复数计算,与 Hermitian packed 语义不一致。 修改为区分 full_elements(实数侧全量)与 packed_elements(复数侧 Hermitian packed,最后一维用 floor(n/2)+1),使 Plan 内部 input_size / output_size 元数据与仓库文档、测试、算子实现保持一致。 ### Issue #45:类型白名单校验 aclfftType 枚举值不连续(0x29/0x2a/0x2c/0x69/0x6a/0x6c),原先 type >= ACLFFT_C2C && type <= ACLFFT_Z2D 的区间判断会接受 0x2b、0x30 等未定义枚举值。 在 fft_error.h 新增 aclfft_is_valid_type() 白名单函数,替换 aclfftPlan1d/2d/3d 与 aclfftMakePlan1d/2d 中全部 5 处区间判断。 ### Issue #46:统一 ASCEND 环境变量 build.sh 开头按 ASCEND_INSTALL_PATH > ASCEND_HOME_PATH > 默认值 计算 _ASCEND_INSTALL_PATH,但 check_ascend_env 与 CMake 只认 ASCEND_HOME_PATH。 在计算完毕后统一 export ASCEND_HOME_PATH,使仅设置 ASCEND_INSTALL_PATH 的用户也能正常构建。同步更新报错提示信息与 docs/zh/context/build.md 文档。 ### Issue #47:-j 线程数校验大于 0 -j 参数原先只校验纯数字(^[0-9]+$),-j0 / -j00 可通过解析。现追加 >= 1 校验,在参数解析阶段即报错。 ## 测试 - 代码审查验证:所有改动为防御性修复,不影响合法参数的已有行为 - Issue #44:input_size / output_size 当前未被任何算子实现读取(算子各自计算尺寸),修复使元数据语义一致 - Issue #45:合法枚举值行为不变,仅拦截未定义值 - Issue #46:已有 ASCEND_HOME_PATH 用户行为不变,新增 ASCEND_INSTALL_PATH fallback - Issue #47:正常线程数行为不变,仅 -j0 等零值提前报错 ## 涉及文件 | 文件 | Issue | |---|---| | lib/fft_plan_init_api.cpp | #44, #45 | | lib/fft_error.h | #45 | | lib/fft_plan_api.cpp | #45 | | build.sh | #46, #47 | | docs/zh/context/build.md | #46 | ## 目标 SoC Ascend950 / Ascend910B(改动不涉及算子核函数,与 SoC 无关) See merge request: cann/ops-fft!36 | 20 天前 | |
Fix: 修复8个issue(#41/#42/#50/#52/#53/#56/#59/#60) 构建脚本清理/空指针防护/尺寸截断/UAF Co-authored-by: yang_3597<mr_yangdong@163.com> # message auto-generated for no-merge-commit merge: !38 merge fix/issues-41-42-50-60 into master Fix: 修复8个issue(#41/#42/#50/#52/#53/#56/#59/#60) 构建脚本清理/空指针防护/尺寸截断/UAF Created-by: yang_3597 Commit-by: yang_3597 Merged-by: cann-robot Description: ## 修复内容 本 PR 修复 8 个 issue:#41 #42 #50 #52 #53 #56 #59 #60 ### #41 build.sh 死代码与 sed 错误 删除无任何调用点的 normalize_soc_name() 函数。其 sed 表达式 s/.$/\U&/ 会把末字符转为大写(ascend910 → Ascend91O),与注释意图不符,且属于死代码,直接清理。 ### #42 build.sh 帮助文档与实现不一致 头注释与 show_help() 的 Supported SoC models 原声称仅支持 Ascend950/Ascend910B,与 get_soc_version() 实际支持的六种型号矛盾。同步更新为真实列表(Ascend950/910B/910_93/910/310P),并注明 Ascend310B 可识别但当前版本不支持构建。 ### #50 aclfftExecC2C_1D(arch32) 空指针解引用 入口处未校验即解引用 impl->rank。本函数为 weak 符号可被外部直接调用,plan 为 NULL 时崩溃。补 ACLFFT_CHECK_PARAM(impl != nullptr && idata != nullptr && odata != nullptr) 防御。 ### #52 aclfftFft1DC2CMix 空指针解引用 输出指针 y 未校验即作为 aclrtMemcpy 目的地址。函数入口补 x/y 判空,返回 ACL_ERROR_INVALID_PARAM。 ### #53 aclfftFft2DDd 空指针解引用 输入指针 x 未校验即作为 aclrtMemcpy 源地址。函数入口补 x/y 判空,返回 ACL_ERROR_INVALID_PARAM。 ### #56 aclfftRfft1DDft 数据类型截断 uint32_t inputSize = batches * fftN * sizeof(float) 以 64 位运算后截断为 uint32_t,batches 无上界校验,超过阈值时高位截断导致 aclrtMalloc 分配不足。inputSize/outputSize 等全部改为 size_t 并对操作数显式提升。 ### #59 aclfftRfft1D 数据类型截断 ((n/2)+1) * COMPLEX_PART * batches * sizeof(float) 中 uint32_t 域中间结果可回绕。改为 size_t 计算,正常范围内结果不变。 ### #60 aclfftDestroy use-after-free is_destroyed 防重复销毁检查本身构成 UAF:对象首次调用即被 delete,标志随对象一同释放,第二次调用读取已释放内存来判断标志。移除该无效检查与置位(内部调用方在销毁后均已执行 *plan=nullptr 防重复销毁),NULL 校验后直接 delete。 ## 验证 - 环境:Atlas 910B3 / CANN 9.1.0 - bash build.sh --soc=ascend910b 编译通过 - bash build.sh --soc=ascend910b --run 42/42 测试全部 PASS(覆盖 fft1_d/fft2_d/rfft1_d 修改路径) Fixes #41, fixes #42, fixes #50, fixes #52, fixes #53, fixes #56, fixes #59, fixes #60 See merge request: cann/ops-fft!38 | 19 天前 | |
fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Co-authored-by: 2301_82146483<2556943601@qq.com> # message auto-generated for no-merge-commit merge: !36 merge fix/issues-44-47 into master fix: 修复 Plan 尺寸计算、类型校验、构建脚本环境变量与线程数校验问题 Created-by: 2301_82146483 Commit-by: 2301_82146483 Merged-by: cann-robot Description: ## 背景 ops-fft 仓库存在 4 个已提交的缺陷反馈 Issue,涉及 Plan 尺寸元数据、枚举类型校验、构建脚本环境变量与线程数参数校验。本 PR 一并修复。 ## 目的 - Fixes #44:实数 FFT Plan 尺寸未按 Hermitian packed 布局计算 - Fixes #45:aclfftType 合法性校验使用数值区间,会接受未定义枚举值 - Fixes #46:build.sh 同时处理 ASCEND_INSTALL_PATH 和 ASCEND_HOME_PATH,但实际强制要求 ASCEND_HOME_PATH - Fixes #47:build.sh -j0 会被接受,线程数只校验整数、不校验大于 0 ## 解决方案 ### Issue #44:Hermitian packed 布局 calculate_data_sizes() 原先将所有维度乘积作为 total_elements,R2C/D2Z 输出与 C2R/Z2D 输入均按全量复数计算,与 Hermitian packed 语义不一致。 修改为区分 full_elements(实数侧全量)与 packed_elements(复数侧 Hermitian packed,最后一维用 floor(n/2)+1),使 Plan 内部 input_size / output_size 元数据与仓库文档、测试、算子实现保持一致。 ### Issue #45:类型白名单校验 aclfftType 枚举值不连续(0x29/0x2a/0x2c/0x69/0x6a/0x6c),原先 type >= ACLFFT_C2C && type <= ACLFFT_Z2D 的区间判断会接受 0x2b、0x30 等未定义枚举值。 在 fft_error.h 新增 aclfft_is_valid_type() 白名单函数,替换 aclfftPlan1d/2d/3d 与 aclfftMakePlan1d/2d 中全部 5 处区间判断。 ### Issue #46:统一 ASCEND 环境变量 build.sh 开头按 ASCEND_INSTALL_PATH > ASCEND_HOME_PATH > 默认值 计算 _ASCEND_INSTALL_PATH,但 check_ascend_env 与 CMake 只认 ASCEND_HOME_PATH。 在计算完毕后统一 export ASCEND_HOME_PATH,使仅设置 ASCEND_INSTALL_PATH 的用户也能正常构建。同步更新报错提示信息与 docs/zh/context/build.md 文档。 ### Issue #47:-j 线程数校验大于 0 -j 参数原先只校验纯数字(^[0-9]+$),-j0 / -j00 可通过解析。现追加 >= 1 校验,在参数解析阶段即报错。 ## 测试 - 代码审查验证:所有改动为防御性修复,不影响合法参数的已有行为 - Issue #44:input_size / output_size 当前未被任何算子实现读取(算子各自计算尺寸),修复使元数据语义一致 - Issue #45:合法枚举值行为不变,仅拦截未定义值 - Issue #46:已有 ASCEND_HOME_PATH 用户行为不变,新增 ASCEND_INSTALL_PATH fallback - Issue #47:正常线程数行为不变,仅 -j0 等零值提前报错 ## 涉及文件 | 文件 | Issue | |---|---| | lib/fft_plan_init_api.cpp | #44, #45 | | lib/fft_error.h | #45 | | lib/fft_plan_api.cpp | #45 | | build.sh | #46, #47 | | docs/zh/context/build.md | #46 | ## 目标 SoC Ascend950 / Ascend910B(改动不涉及算子核函数,与 SoC 无关) See merge request: cann/ops-fft!36 | 20 天前 | |
FFT算子新增 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !27 merge master into master FFT算子新增 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 新增 4 个 FFT 算子实现,并重构公共 kernel 层。 **新增算子** - fft1_d arch32 mix:C2C 混合基数(910B) - fft1_d arch35 mix:C2C Stockham 混合基数(950) - irfft1_d arch32 c2r_fft:C2R FFT(910B) - rfft1_d arch32 r2c_fft:R2C FFT(910B) **其他改动** - 公共 kernel 重构:base 头文件移入 kernel/base/,新增共享层 fft_all_common / fft_c2c_common / fft_c2r_common / fft_r2c_common - 命名空间、宏命名修正,移除冗余注释 - 修复 irfft1_d.h 缺失的 aclfftIrfft1DDft 声明 - rfft1_d arch35 R2C 选核:FFT 优先、FastDFT 兜底 - aclfftMakePlan1d 头文件参数名 stride → dimType,补全 @param 注释 - 文档更新:FFT_1D.md 约束说明、目录结构、开发指南、测试指南 - 许可证名称修正 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> [#2](https://gitcode.com/cann/ops-fft/issues/2) [#13](https://gitcode.com/cann/ops-fft/issues/13) ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-fft!27 | 1 个月前 | |
FFT算子新增 Co-authored-by: Tian_1122<tianjunhan@h-partners.com> # message auto-generated for no-merge-commit merge: !27 merge master into master FFT算子新增 Created-by: Tian_1122 Commit-by: Tian_1122 Merged-by: cann-robot Description: ## 变更描述 / Description <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 新增 4 个 FFT 算子实现,并重构公共 kernel 层。 **新增算子** - fft1_d arch32 mix:C2C 混合基数(910B) - fft1_d arch35 mix:C2C Stockham 混合基数(950) - irfft1_d arch32 c2r_fft:C2R FFT(910B) - rfft1_d arch32 r2c_fft:R2C FFT(910B) **其他改动** - 公共 kernel 重构:base 头文件移入 kernel/base/,新增共享层 fft_all_common / fft_c2c_common / fft_c2r_common / fft_r2c_common - 命名空间、宏命名修正,移除冗余注释 - 修复 irfft1_d.h 缺失的 aclfftIrfft1DDft 声明 - rfft1_d arch35 R2C 选核:FFT 优先、FastDFT 兜底 - aclfftMakePlan1d 头文件参数名 stride → dimType,补全 @param 注释 - 文档更新:FFT_1D.md 约束说明、目录结构、开发指南、测试指南 - 许可证名称修正 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [x] 代码重构 / Refactoring - [x] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> [#2](https://gitcode.com/cann/ops-fft/issues/2) [#13](https://gitcode.com/cann/ops-fft/issues/13) ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/ops-fft!27 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 19 天前 | ||
| 20 天前 | ||
| 1 个月前 | ||
| 1 个月前 |