| Files | Last commit | Last update |
|---|---|---|
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
SIMT 协作组优化 tiled_partition Co-authored-by: louyuxuan<louyuxuan@huawei.com> # message auto-generated for no-merge-commit merge: !5720 merge master into master SIMT 协作组优化 tiled_partition Created-by: louyuxuan Commit-by: louyuxuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> SIMT 协作组优化 tiled_partition 删除了分组元数据 tiled_info 中多余的 is_tiled 布尔字段,使分组类型判断统一依赖 group_type;为 tiled_group 新增私有方法 create_tiled_group,使已 tiled 的分组可以被再次 tiled_partition 拆分,同时统一了 coalesced_group 与 tiled_group 的 tiled 分组创建逻辑,并重构全局 tiled_partition 函数按分组类型分派。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> SIMT二级冒烟、手动验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5720 | 1 month ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago | |
float类型数学接口性能优化 Co-authored-by: xuyiyang0324<xuyiyang6@huawei.com> # message auto-generated for no-merge-commit merge: !6500 merge float_high_prec_3 into master float类型数学接口性能优化 Created-by: xuyiyang0324 Commit-by: xuyiyang0324 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 针对 impl/simt_api/math_functions_impl.h 中的 float 类型数学接口进行性能优化,整体思路是调整 nextafterf、erff、erfcinvf、erfcxf、exp10f、expm1f、logbf、ilogbf 等函数的实现结构与分支顺序:将特殊值(NaN、±Inf、0)判断从函数入口移至计算之后,通过统一的结果变量与条件选择替代提前返回,使主计算路径更规整;同时改写 nextafterf 为基于整数位运算的方向步进实现,并将部分 exp2f/rsqrtf 调用替换为 __powf/__sqrtf 等价形式。 主要改动 - nextafterf 改为位运算实现: 使用 __float_as_uint/__uint_as_float 提取符号与幅值位,通过 step_down 判断步进方向、zero_res 处理 ±0、并保留 x==y 与 NaN 传播逻辑,替代原先基于指针 reinterpret_cast 的多分支写法。 - erff、erfcinvf、erfcxf 统一结果出口: 引入 res/result 变量,将各分支的 return 改为赋值后末尾统一返回;erff 与 erfcxf 中把 exp2f(x) 替换为 __powf(2.0f, x),erfcinvf 中把 rsqrtf(neg_log) 替换为 1.0f / __sqrtf(neg_log);erfcxf 的 x < -9.43f 提前返回也调整为计算结果后再覆盖为 ASCRT_INF_F。 - exp10f、expm1f 特殊值处理后置: 移除入口处的 NaN/Inf(及 expm1f 的 x == 0)提前返回,改为在完成 __powf 计算后按 __isinf/__isnan/x == 0.0f 覆盖结果;expm1f 同时补充了 __isnan(x) || x == 0.0f 时返回 y = x 的收敛逻辑。 - logbf、ilogbf 判断顺序调整: 先计算 __internal_ilogbf_finite_abs(ax) 作为默认结果,再依次用 ax == ASCRT_INF_F、ax == 0.0f、__isnan(x) 条件覆盖,替代原先依次提前返回的写法。 - log1pf 特殊路径合并: 将原先嵌套在 x_bits >= fp32_positive_inf_bits 条件内的 inf 路径与 -0 处理,改为无条件计算 inf_path 并用 need_inf、need_neg_zero 两个布尔选择合并原外、内层条件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> https://gitcode.com/cann/asc-devkit/issues/1782 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> | SIMT API | 是否优化 | LEGACY实现 | 高精度实现 | |---|---|---|---| | float expm1f(float x) | 是 | --cce-use-fast-math=true: 29.65<br>--cce-use-fast-math=false: 51.39 | --cce-use-fast-math=true:<br>优化前:152.72 优化后:114.70<br>--cce-use-fast-math=false:<br>优化前:146.30 优化后:115.45 | | float exp10f(float x) | 是 | --cce-use-fast-math=true: 49.96<br>--cce-use-fast-math=false: 49.85 | --cce-use-fast-math=true:<br>优化前:129.32 优化后:98.53<br>--cce-use-fast-math=false:<br>优化前:129.40 优化后:98.96 | | int ilogbf(float x) | 是 | --cce-use-fast-math=true: 135.34<br>--cce-use-fast-math=false: 147.20 | --cce-use-fast-math=true:<br>优化前:64.23 优化后:44.99<br>--cce-use-fast-math=false:<br>优化前:62.98 优化后:44.91 | | float log1pf(float x) | 是 | --cce-use-fast-math=true: 37<br>--cce-use-fast-math=false: 37 | --cce-use-fast-math=true:<br>优化前:133 优化后:103<br>--cce-use-fast-math=false:<br>优化前:133 优化后:103 | | float atanhf(float x) | 是 | --cce-use-fast-math=true: 73.37<br>--cce-use-fast-math=false: 306.50 | --cce-use-fast-math=true:<br>优化前:167.86 优化后:159.99<br>--cce-use-fast-math=false:<br>优化前:327.58 优化后:323.14 | | float logbf(float x) | 是 | --cce-use-fast-math=true: 96.48<br>--cce-use-fast-math=false: 98.53 | --cce-use-fast-math=true:<br>优化前:97.21 优化后:53.27<br>--cce-use-fast-math=false:<br>优化前:93.32 优化后:56.16 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6500 | 29 days ago | |
feat(simt): adapt SIMT API for dav-9201 Co-authored-by: liuyi424<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !6506 merge feat/simt-api-dav-9201 into master feat(simt): adapt SIMT API for dav-9201 Created-by: liuyi424 Commit-by: liuyi424 Merged-by: cann-robot Description: ## 描述 将 dav-9201/9202 的 SIMT API 适配迁移至本仓: 1. include/simt_api 与 impl/simt_api 下各头文件/实现的架构守卫由 (__NPU_ARCH__ == 3510) || (__NPU_ARCH__ == 5102) 扩展为包含 9201/9202(覆盖 math/cast/atomic/warp/sync/print/common/vector 等模块及 cpp/dav_3510 的 SIMT C++ 实现) 2. 新增 9201/9202 的 fp8 e8m0/e6m2 转换 API(asc_fp8.h/asc_fp8_impl.h,9202 额外提供 half2 互转的饱和模式变体) 3. 新增 fp4 e1m2/e2m1 转换 API(新文件 asc_fp4.h/asc_fp4_impl.h,9201 起支持;9202 提供 hmul2 融合转换) 4. common_functions.h 中 SPLIT_CORE_VEC 与 SIMT printf 路径使能 9201/9202;asc_printf.h/asc_assert.h/asc_time.h 的 SIMT 调试路径守卫扩展 5. 新增 ascend960dt(dav-9201)SIMT UT:tests/api/simt_api/ascendc_case_ascend960dt_simt,以 mock 内建方式验证 fp4/fp8 转换 API 封装,并接入 UT 框架(产品形态 ascend960dt ↔ __NPU_ARCH__=9201) ## 关联的Issue 无 ## 测试 - bisheng 编译验证(3510/9201 × pure-simt 模式)全部通过: - 全量 SIMT 头文件编译 TU(含 asc_fp4/asc_fp8) - 9201 SIMT 冒烟 kernel(math/atomic/bf16/fp16/warp/sync/printf) - 9201 fp8/fp4 新 API 声明、实现与调用(__simt_vf__ 函数内) - 新增 UT 本地运行通过:ascend960dt 目标 4 个用例(Fp4E1m2/Fp4E2m1/Fp8E8m0/Fp8E6m2 EncapsulationTest)全部 PASSED ## 文档更新 无(仅头文件、实现与测试代码) ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6506 | 30 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 1 month ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 30 days ago | ||
| 29 days ago | ||
| 30 days ago |