| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
新增 ascend950 (Atlas A5) 芯片适配 Co-authored-by: boes129<chenqi185@huawei.com> # message auto-generated for no-merge-commit merge: !10658 merge feat/silu_mul_ascend950 into master 新增 ascend950 (Atlas A5) 芯片适配 Created-by: boes129 Commit-by: boes129 Merged-by: cann-robot Description: ## 描述 experimental/activation/silu_mul 算子(z = Silu(x) × y,其中 Silu(x) = x·sigmoid(x))原有实现仅支持 ascend910b(Atlas A2)与 ascend910_93(Atlas A3)。本 PR 为该算子新增 ascend950(Atlas A5)芯片适配,使其在 950 平台上完整支持 tiling 计算、kernel 执行与 aclnn 调用;ascend910b / ascend910_93 原有代码路径保持不变,无回归风险。 适配方式(定级 L1,参照仓库内 clipped_swiglu 的双平台适配范式,核心计算保留内存式 API,不重写 MicroAPI)。kernel 源按平台编译:新增 op_kernel/CMakeLists.txt,通过 add_kernel_sources 按 compute unit 分发——ascend910b / ascend910_93 编译默认源 op_kernel/silu_mul.cpp,ascend950 编译 op_kernel/arch35/silu_mul.cpp(写入生成算子信息的 kernelSrc.value 供 asc_opc 取源),不采用独立 apt 入口文件: 1. **op_host/silu_mul_def.cpp**:新增 ascend950 独立 OpAICoreConfig(支持动态 Shape/Rank),kernel 入口为 arch35/silu_mul.cpp(opFile 默认取算子名,无需显式指定)。 2. **op_host/silu_mul_tiling.cpp**:在单一 tiling 入口内通过 Ops::NN::OpTiling::IsRegbaseSocVersion(context) 分流——ascend950 走新增的 arch35 tiling 路径,910b / 910_93 走原逻辑。 3. **op_host/silu_mul_tiling_arch35.cpp(新增)**:950 专用 tiling,并落实两处相对 910b 实现的改进(仅作用于 950 路径): - UB 大小平台化:以 GetCoreMemSize(CoreMemType::UB) 动态查询替代硬编码 184KB,并预留 8KB headroom 供框架栈空间使用;PPMaxCalNum 与下发 kernel 的 maxUbSize 由预留后的同一可用 UB 推导,保证 host/kernel 自洽。 - 核数估算判据修正:改用完整 lastDimSize 与 PPMaxCalNum 比较(原 910b 用 lastDimSize/2 估算,与 kernel 侧 d > PPMaxCalNum 的路径选择判据不一致),使 host 核数估算与 kernel 实际执行路径一致。 4. **op_kernel/arch35/silu_mul_tiling_struct.h(新增)**:arch35 独立 POD tiling 结构 SiluMulArch35TilingData(新增 maxUbSize 字段),与 910b 的 SiluMulTilingData 解耦,避免双平台重复注册。 5. **op_kernel/CMakeLists.txt(新增)**:add_kernel_sources 按 compute unit 分发 kernel 源(910b/910_93 → silu_mul.cpp,ascend950 → arch35/silu_mul.cpp)。 6. **op_kernel/arch35/silu_mul.cpp(新增)**:950 kernel 入口,使用 REGISTER_TILING_DEFAULT / GET_TILING_DATA_WITH_STRUCT;UT 编译模式下条件编译为 memcpy 读取 tiling 结构,保证 CPU 模拟 UT 可编译执行。 7. **op_kernel/arch35/silu_mul.h(新增)**:950 kernel 实现,计算逻辑与 910b 保持一致(Silu(x)×y 融合、全程 FP32 域计算、大/小尾轴双路径、Ping-Pong 双缓冲),UB 布局尺寸 maxUbSize 改由 tiling 下发,替代硬编码常量。 8. **op_host/config/ascend950/silu_mul_binary.json(新增)**:FP16 / FP32 / BF16 三种 dtype 的 950 binary 选择配置。 9. **tests/ut/op_kernel/**:新增 ascend950pr_9599 kernel UT(arch35/test_silu_mul_apt.cpp,CPU 模拟执行 arch35 kernel,extern 链接入口);910b 根测试 test_silu_mul.cpp 增加 UT_SOC_VERSION 守卫,避免 opFile 同名导致非 910b 构建误执行;UT CMakeLists 按 soc 二选一(ascend950 用例 / ascend910b 用例)。 ## 关联的Issue 新增silu_mul算子950芯片适配: https://gitcode.com/cann/ops-nn/issues/5315 ## 测试 在 ascend950(Atlas A5)Linux + CANN 9.2.0-beta.2 环境完成如下验证: 1. **编译验证**:bash build.sh --pkg --experimental --ops=silu_mul --soc=ascend950 -j8 编译通过并生成 run 包,host tiling 分发、arch35 tiling、950 kernel binary(三种 dtype,由 op_kernel/CMakeLists.txt 按平台分发编译)与自动生成的 aclnn 接口均正常构建。 2. **部署验证**:run 包安装成功,vendors 目录下 kernel bin / opapi 库 / aclnn 头文件完整落盘,nm -D 可见 aclnnSiluMul 与 aclnnSiluMulGetWorkspaceSize 符号。 3. **端到端精度验证**:编译执行 examples/test_aclnn_silu_mul.cpp(x=[0,1,…,7],y=1),在 950 实机通过 aclnn 两段式调用执行,输出与理论值 x·sigmoid(x) 一致(最大偏差约 1.5e-4,为 FP32 正常舍入误差)。 4. **op_host UT**:bash build.sh -u --ophost --experimental --ops=silu_mul --soc=ascend950,infershape 与 tiling 共 2 个用例全部 PASSED,验证 910b 原路径无回归。 5. **op_kernel UT**:bash build.sh -u --opkernel --experimental --ops=silu_mul --soc=ascend950 执行 arch35/test_silu_mul_apt.cpp(ascend950pr_9599 用例)全部 PASSED,验证 arch35 kernel 的 CPU 模拟执行与精度比对;--soc=ascend910b 执行 910b 用例全部 PASSED,验证 UT_SOC_VERSION 守卫与既有路径无回归。 ## 文档更新 - 更新 experimental/activation/silu_mul/README.md 与 docs/aclnnSiluMul.md 的产品支持表,新增 Atlas A5 训练/推理系列产品支持。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10658 | 9 天前 | |
修改测试问题 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !7987 merge master into master 修改测试问题 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 修改TorchNPU改名 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7987 | 2 个月前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 9 个月前 | |
将 experimental 下误用的 arch32 修正为 arch22 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !8954 merge arch32-fix-pooling into master 将 experimental 下误用的 arch32 修正为 arch22 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将experimental目录下误用arch32的算子目录、文件名及代码引用统一修正为 arch22 ## 关联的Issue Issue #4931 ## 测试 本地ut通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8954 | 1 个月前 | |
fix issue #5824 5825 Co-authored-by: yolic<chenyuning1@huawei.com> # message auto-generated for no-merge-commit merge: !10343 merge 0912issue into master fix issue #5824 5825 Created-by: yolic Commit-by: yolic Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改部分算子文档,部分链接已失效。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#5824](https://gitcode.com/cann/ops-nn/issues/5824) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10343 | 13 天前 | |
【社区任务】huber_loss 前向算子补齐 reduction(none/mean/sum)支持 Co-authored-by: gcw_5x5Ew5Ms<yangzhengzekn0w@gmail.com> # message auto-generated for no-merge-commit merge: !9622 merge feature/huber_loss-reduction-support into master 【社区任务】huber_loss 前向算子补齐 reduction(none/mean/sum)支持 Created-by: gcw_5x5Ew5Ms Commit-by: gcw_5x5Ew5Ms Merged-by: cann-robot Description: 关联 issue:#5415 ## 改动内容 experimental/loss/huber_loss 原地升级,对齐 PyTorch aten::huber_loss 前向语义: 1. **新增 reduction 属性**:0=none / 1=mean(默认)/ 2=sum;mean/sum 输出 0 维标量。各核局部和写 workspace 用户区,SyncAll() 硬同步后 core0 汇总,mean 再除 totalDataNum。 2. **IR 参数名**:predictions / targets / loss 改为 input / target / output。 3. **非连续张量**:op_def 全部 AutoContiguous(),tiling 用 GetStorageShape()。 4. **dtype**:FLOAT / FLOAT16 / BFLOAT16,ND,任意维度;半精度在 Kernel 内升 FLOAT 计算,末端一次舍入回输出 dtype。 5. **边界语义**:delta > 0 校验(NaN 同拒);空张量 mean 得 NaN、sum 得 0;Inf/NaN 按 IEEE 传播。 新增两个文件:op_host/huber_loss_tiling_calc.h(tile 求解、核切分、workspace 估算抽为无框架依赖的纯函数)、op_kernel/huber_loss_tiling_key.h(tiling key 区分 none/reduce 两种调度,host 侧经 GET_TPL_TILING_KEY 发布)。 ## 接口变更(不兼容,请评审关注) 算子类型名保持 HuberLoss,但 IR 参数名变更且新增 reduction 属性;属性槽位序为 reduction=0、delta=1,host 与 kernel 均按位读取。 ## 验证(Atlas A2 + CANN 9.0.0,ascend910b) - build.sh -u --ophost --ops=huber_loss --experimental:InferShape / InferDataType / Tiling UT **32/32 PASSED**(含动态维度、空张量、shape/dtype/reduction/delta 非法输入、UB 不足、多核切分元素守恒) - build.sh -u --opkernel --ops=huber_loss --experimental:Kernel UT **3/3 PASSED**(两分支手算对拍、非默认 delta、非对齐尾段) - pre-commit 门禁(clang-format / codespell / OAT)全部通过 See merge request: cann/ops-nn!9622 | 24 天前 | |
[ops-nn] Add FusedMatmulSilu operator Co-authored-by: wuxs68<wuxs68@chinaunicom.cn> # message auto-generated for no-merge-commit merge: !6457 merge feature/fused-linear-silu into master [ops-nn] Add FusedMatmulSilu operator Created-by: wuxs68 Commit-by: wuxs68 Merged-by: cann-robot Description: ## 描述 本 PR 新增 FusedMatmulSilu 自定义融合算子,代码路径位于 experimental/matmul/fused_matmul_silu,用于支持 Hunyuan-3.0 中常见的 Linear + SiLU 计算模式。 典型计算形式如下: text y = silu(x @ weight^T + bias) 该算子将原本的 Matmul、bias Add 和 SiLU 激活封装为一次 aclnnFusedMatmulSilu 调用。主要作用是减少模型侧连续小算子的下发次数,缓解 Host 侧调度压力,并为后续基于真实模型高频 shape 的融合优化提供统一接口。 支持范围: - Ascend 910B - CANN 9.1 - BF16 - ND format - bias 必选 - eager ACLNN - x 为 [M, K],weight 为 [N, K],bias 为 [N] - K 为 64 的整数倍,且 K <= 4096 本次改动主要包括: - 新增 experimental/matmul/fused_matmul_silu 算子目录。 - 新增 FusedMatmulSilu 的算子定义、shape 推导、tiling 和 Ascend C kernel 实现。 - 主计算路径使用 MatmulImpl 完成 Cube 矩阵乘,使用 MultiCoreMatmulTiling 进行多核切分。 - bias Add 与 SiLU 在 AIV 后处理阶段完成。 - 提供 aclnnFusedMatmulSiluGetWorkspaceSize 与 aclnnFusedMatmulSilu 两段式 ACLNN 接口。 - 新增 eager ACLNN 调用样例。 - 新增 op_host 与 op_api UT。 - 新增 README 与 ACLNN 接口说明文档。 ## 关联 Issue Closes #3523 ## 测试情况 已在 Ascend 910B、CANN 9.1 环境完成以下验证: ### 编译打包与安装 执行命令: bash bash build.sh --pkg --soc=ascend910b --vendor_name=custom_nn --ops=fused_matmul_silu --experimental echo y | bash ./build_out/cann-ops-nn-custom_nn_linux-aarch64.run --quiet 验证结果: text [SUCCESS] Build package success! ### Example 验证 执行命令: bash cd experimental/matmul/fused_matmul_silu/examples bash run.sh 验证结果: - M=2, K=256, N=4096:max_abs_error=0.001953 - M=2, K=4096, N=4096:max_abs_error=0.007812 - M=2, K=4096, N=2048:max_abs_error=0.007812 ### 单算子性能对比 在 Ascend 910B、CANN 9.1 环境下,对 FusedMatmulSilu 与原生 Matmul + Add + SiLU 单算子 P50 对比。测试采用相同输入,完成预热后同步计时。 | Shape [M, K, N] | Fused P50 (us) | Native P50 (us) | Speedup (Native / Fused) | | --- | ---: | ---: | ---: | | [2, 256, 4096] | 30.42 | 33.58 | 1.104x | | [2, 4096, 4096] | 39.85 | 46.27 | 1.161x | | [2, 4096, 2048] | 34.61 | 41.94 | 1.212x | | [128, 4096, 4096] | 50.73 | 54.86 | 1.081x | 结论: - 当前代表 shape 上,FusedMatmulSilu 单算子 P50 加速比约为 1.08x ~ 1.21x。 - 该收益主要来自将 Matmul + bias Add + SiLU 下沉为一次 aclnnFusedMatmulSilu 调用,减少模型侧连续小算子的下发次数,并降低 Host 侧调度与同步开销。 ### op_host UT 执行命令: bash cd <OPS_NN_REPO> bash build.sh -u --ophost --ops=fused_matmul_silu --experimental --soc=ascend910b 验证结果: text [ PASSED ] 7 tests. ### op_api UT 执行命令: bash cd <OPS_NN_REPO> bash build.sh -u --opapi --ops=fused_matmul_silu --experimental --soc=ascend910b 验证结果: text [ PASSED ] 3 tests. ### op_graph UT 执行命令: bash cd <OPS_NN_REPO> bash build.sh -u --opgraph --ops=fused_matmul_silu --experimental --soc=ascend910b 验证结果:构建和运行成功;当前未注册独立 op_graph 测试用例,结果为 0 tests。 ## 类型标签 - 新特性 - 文档更新 - 其他:自定义融合算子 See merge request: cann/ops-nn!6457 | 8 天前 | |
docs: fix wrong op name LpNormV2 in lp_norm_v3 README Co-authored-by: liuhanwen8<liuhanwen8@huawei.com> # message auto-generated for no-merge-commit merge: !9920 merge fix/lp-norm-v3-readme-title into master docs: fix wrong op name LpNormV2 in lp_norm_v3 README Created-by: liuhanwen8 Commit-by: liuhanwen8 Merged-by: cann-robot Description: ## 描述 experimental/norm/lp_norm_v3/README.md 中的算子名称误写为 **LpNormV2**(共 5 处),实际算子为 **LpNormV3**: - 算子注册名为 LpNormV3:OP_ADD(LpNormV3)(op_host/lp_norm_v3_def.cpp:50) - aclnn 调用接口为 aclnnLpNormV3(examples/test_aclnn_lp_norm_v3.cpp:406) - 目录名、def/tiling/kernel 示例文件名均为 lp_norm_v3 该 README 疑似从 norm/lp_norm_v2 复制后未改名。本 PR 将标题及正文共 5 处 LpNormV2 全部更正为 LpNormV3,仅改文档,不涉及代码改动。 > 备注:原 PR #9919 因头分支重建被自动关闭后重开受限,本 PR 为其替代,内容与 #9919 最终状态完全一致(单提交)。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5621 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 仅文档改动,不涉及代码行为;已核对 master 分支 README 中 5 处错误位置,修正内容与算子实际注册名(LpNormV3)一致。 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了 experimental/norm/lp_norm_v3/README.md <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9920 | 20 天前 | |
AIDD拼写和标点问题修改 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !10060 merge master into master AIDD拼写和标点问题修改 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 AIDD拼写和标点问题修改 ## 关联的Issue 关联Issue #5680 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10060 | 18 天前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 1 个月前 | |
Refactor turbo_quant_compress_latent to support DeepSeek-V4 Co-authored-by: wangbin207<wangbin207@huawei.com> Co-authored-by: root<qjgggsse@126.com> # message auto-generated for no-merge-commit merge: !9311 merge master into master Refactor turbo_quant_compress_latent to support DeepSeek-V4 Created-by: wangbin207 Commit-by: wangbin207;root Merged-by: cann-robot Description: # 描述 扩展 experimental/quant/turbo_quant_compress_latent/,为 Atlas A2(ascend910b)和 Atlas A3(ascend910_93)提供 DeepSeek-V4 TurboQuant 4bit KV latent 压缩能力。 本次改动保留 GLM 原有 output_mode=0 语义,新增 DeepSeek-V4 使用的 output_mode=1 compact corrected slot。 text norm_i = sqrt(sum_d latent[i][d]^2 + eps) u[i][d] = latent[i][d] / norm_i nibble[i][d] = argmin_c |u[i][d] - centroids[c]| slot[i][k] = nibble[i][2k] | (nibble[i][2k+1] << 4) mode 0 保持 320B 对齐布局,scale 为 float16(norm_i);mode 1 输出 258B compact corrected slot: text correctedScale_i = norm_i / sqrt(sum_d centroids[nibble[i][d]]^2 + eps) 当 headDim=512 时: | 模式 | 布局 | 大小 | | --- | --- | ---: | | mode 0 | 256B packed nibble + 2B norm + 62B padding | 320B | | mode 1 | 256B packed nibble + 2B corrected scale | 258B | ## 关联的Issue [扩展TurboQuant4bit算子以支持DeepSeek V4系列模型][(https://gitcode.com/cann/ops-nn/issues/4942) # 测试 测试环境:CANN 9.0.1;A2 使用 ascend910b package;当前空闲物理 die 8-15 对应逻辑设备 4-7,真机运行时为 ascend910_93,使用匹配的 A3 package 完成验证。 ## 构建 bash bash build.sh --pkg --soc=ascend910b --ops=turbo_quant_compress_latent --experimental --vendor_name=customize bash build.sh --pkg --soc=ascend910_93 --ops=turbo_quant_compress_latent --experimental --vendor_name=customize A2 package 构建通过,生成 .run 包、aclnn header、proto 和 kernel binary;A3 cross-build 通过。 ## UT | 套件 | 结果 | | --- | --- | | tests/ut/op_host | **22/22 PASS** | | tests/ut/op_kernel | **24/24 PASS** | Host 层覆盖默认 mode 0、显式 mode 1、动态 token/head 维、slot size、tiling 字段、空 Tensor、非法 headDim、非法 centroid 数、非法 mode 和非法 rank。 Kernel ICPU UT 覆盖 mode 0 回归、mode 1 多核切分、尾核、batch 尾块、最大 batch、空 Tensor、uniform、gauss_lat、全部 centroid offset、NaN/Inf 混合输入以及 258B 行间距。 摘要: text total=24, pass=24, fail=0, timeout=0 ## Golden 与精度判据 golden 脚本位于: text tests/ut/op_kernel/turbo_quant_compress_latent_data/ gen_data.py golden.py compare_data.py golden 按 kernel 运算顺序复刻 FP32 L2 reduce、归一化、中点边界计数、码本选择、corrected-scale 规约、FP16 cast 和 int4 pack。 本算子输出为 UINT8,有限输入采用逐字节比较:packed nibble 和 mode 1 corrected scale 的 FP16 bit pattern 必须一致,mode 0 padding 必须全零;非有限输入比较 IEEE 类别。 已生成 mode 1 shape 矩阵: text 0 1 2 3 4 8 12 16 20 24 28 40 41 64 127 128 512 1000 1024 2048 4096 4097 8192 16384 65536 ## 性能 本次已完成 mode 0/1 真机精度和大输入验证;尚未新增 profiler 性能数据,性能 profiling 不影响逐字节正确性结论。 mode 1 相比 mode 0 的额外计算来自 selected centroid 向量选择、centroid norm 规约和 corrected scale 计算。slot payload 从 320B 降至 258B,减少 DeepSeek-V4 KV cache padding;端到端收益需要与读取侧融合 Attention 一起评估。 ## 文档更新 - 更新 experimental/quant/turbo_quant_compress_latent/README.md; - 更新 docs/aclnnTurboQuantCompressLatent.md; - 更新 aclnn 调用示例; - 更新 PyTorch eager、Meta 和图模式说明; - 补充 mode 0/1 布局、corrected scale 语义和约束说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9311 | 27 天前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 9 个月前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 9 个月前 |