| Files | Last commit | Last update |
|---|---|---|
新增aclnnAngleV2接口支持非连续输入输出 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4897 merge master into master 新增aclnnAngleV2接口支持非连续输入输出 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增aclnnAngleV2支持非连续输入输出 修改资料中对于aclnnAngleV2不支持Ascend910的错误描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3050 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 新增UT用例21个通过,ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnAngleV2.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4897 | 2 months ago | |
剥离math下op_host/op_api到op_api Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !4246 merge master into master 剥离math下op_host/op_api到op_api Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更主要对 math 目录下多个算子的目录结构进行扁平化整理:将原先嵌套在 op_host/op_api/ 中的 API 实现文件直接提升到 op_api/ 层级 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2392 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4246 | 3 months ago | |
feat: AngleV2算子新增ascend960dt平台适配 Co-authored-by: wangrunfa<wangrunfa1@huawei.com> # message auto-generated for no-merge-commit merge: !7018 merge master into master feat: AngleV2算子新增ascend960dt平台适配 Created-by: miaojingjing Commit-by: wangrunfa Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次变更为 AngleV2 增加 ascend960dt 平台适配:复用 A5 OpDef 配置,补齐 960DT binary 与 simplified key 配置,扩展 BF16 kernel 分发及测试数据/tiling 生成,并将 960DT 纳入 op_kernel UT 编译范围。同时完成 PR 变更文件的格式化、文件末尾换行和许可证头合规整改。 ### 改动原因 - AngleV2 的 OpDef 尚未注册 ascend960dt,且缺少对应的 binary 与 simplified key 配置。 - BF16 原生比较分发分支仅覆盖 __NPU_ARCH__ == 3510,未覆盖 960DT 对应的 __NPU_ARCH__ == 9201。 - op_kernel UT 的 SoC 列表未包含 ascend960dt,测试数据与 tiling 生成脚本缺少 BF16 处理逻辑。 ### 改动方法 #### 1. Host 侧平台与 binary 配置 - 在 math/angle_v2/op_host/angle_v2_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicore_a5_config),复用 ascend950 的 A5 配置;该配置启用 DynamicCompileStaticFlag、DynamicFormatFlag、DynamicRankSupportFlag 和 DynamicShapeSupportFlag。 - 新增 math/angle_v2/op_host/config/ascend960dt/angle_v2_binary.json,包含以下 10 组输入/输出映射。所有输入 x 与输出 y 均为 required、ND、shape: [-2]、format_match_mode: FormatAgnostic: | 输入 dtype | 输出 dtype | bin_filename | |---|---|---| | complex64 | float32 | AngleV2_5cfa8f3b14716c3317bcd193933a3613 | | float32 | float32 | AngleV2_1946086cc5d1bc19a4d66b5bd48e62cd | | bfloat16 | bfloat16 | AngleV2_bf16 | | float16 | float16 | AngleV2_a8c107f79de7b47ce419f0ec015539f7 | | bool | float32 | AngleV2_bool | | uint8 | float32 | AngleV2_uint8 | | int8 | float32 | AngleV2_int8 | | int16 | float32 | AngleV2_int16 | | int32 | float32 | AngleV2_int32 | | int64 | float32 | AngleV2_int64 | - 新增 math/angle_v2/op_host/config/ascend960dt/angle_v2_simplified_key.ini,设置 [AngleV2] default=0。 #### 2. Kernel 侧 BF16 分发 - 在 math/angle_v2/op_kernel/angle_v2.cpp 中,将 BF16 原生比较分支的编译条件扩展为 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 9201)。 - 上述架构下,KEY_DTYPE_BF16(tiling key 10)继续调用 AngleV2N::AngleV2<bfloat16_t>。 - __NPU_ARCH__ == 2201 的既有路径保持不变,仍调用 AngleV2N::AngleV2Bf16<bfloat16_t, bfloat16_t>;其他 dtype 的分发逻辑未修改。 #### 3. UT 与测试数据/tiling 生成 - math/angle_v2/tests/ut/op_kernel/CMakeLists.txt:AddOpTestCase 的 SoC 列表扩展为 ascend910b;ascend950;ascend960dt。 - angle_v2_data/gen_data.py:新增 BF16 分支,生成 [-100, 100] 范围内的 float32 随机输入并转换为 BF16;golden 通过 torch.angle(inputX.float()).to(torch.bfloat16) 计算,输入与 golden 均通过 view(torch.int16) 写出二进制文件。 - angle_v2_data/gen_tiling.py:新增 torch.bfloat16 映射及 bytesPerData["bfloat16"] = 15;BF16 与 FP16 共用 2 字节对齐计算(ALIGN_NUM = 16)和 dataPerRepeat = 128 的计算路径。 - test_angle_v2.cpp:在 3510/9201 条件下新增 test_case_bf16,采用单 block、tiling key 10,并设置 totalLength=16、formerNum=1、tailNum=47、formerLength=16、tailLength=0、alignNum=16、totalLengthAligned=16、tileLength=12160、dataPerRepeat=128。 #### 4. 合规与格式化 - 对 test_angle_v2.cpp 应用 clang-format,对两个 Python 脚本应用 ruff 格式化和空白行等格式整改。 - 为 angle_v2_binary.json、angle_v2_simplified_key.ini、UT CMakeLists.txt 和 gen_data.py 补齐文件末尾换行。 - 按 OAT 要求更新 gen_data.py 与 gen_tiling.py 的许可证头。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - https://gitcode.com/cann/ops-math/issues/4559 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 已对 PR 的全部 8 个变更文件执行 pre-commit run --files $(git diff --name-only upstream/master...HEAD),所有适用钩子均通过,包括 trailing whitespace、end-of-file-fixer、大文件检查、冲突检查、私钥检查、JSON 检查、clang-format、ruff-check、ruff-format、codespell 和 OAT;check-yaml 因本 PR 无 YAML 文件而跳过。 - git diff --check 通过。 - 本次检查未执行二级冒烟、算子泛化或 960DT 上板 UT/ST,PR 中亦未提供这些测试的结果记录。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无文档更新;本 PR 未修改 README 或其他文档文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7018 | 8 days ago |