| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: fix logic errors, bounds issues, and undefined behavior from security audit Co-authored-by: xiu_21<caixiuxiu1@huawei.com> # message auto-generated for no-merge-commit merge: !4987 merge security_code into master fix: fix logic errors, bounds issues, and undefined behavior from security audit Created-by: xiu_21 Commit-by: xiu_21 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 修改代码中存在的逻辑错误、边界问题和未定义行为。 ### 1. 逻辑运算符错误(2处, || → &&) | 文件 | 问题 | 修改 | |------|------|------| | [FusedAttentionLnQKV.cpp:28](op_plugin/ops/aclops/FusedAttentionLnQKV.cpp#L28) | seq_len != 0 \|\| num_heads != 0 导致单参数为零时校验被绕过 | 改为 seq_len != 0 && num_heads != 0 | | [FftRfftKernelNpuOpApi.cpp:49](op_plugin/ops/opapi/FftRfftKernelNpuOpApi.cpp#L49) | (dim < self.dim() \|\| dim >= 0) 导致越界 dim 仍通过校验 | 改为 (dim >= 0 && dim < self.dim()) | ### 2. 越界/空值校验(7处,添加前置检查) | 文件 | 问题 | 修改 | |------|------|------| | [CtcLossKernelNpu.cpp:43](op_plugin/ops/aclops/CtcLossKernelNpu.cpp#L43) | shape[2] 在 log_probs 为 2D tensor 时越界 | 根据 dim() 选择 shape[2] 或 shape[1] | | [AdaptiveMaxPool2dKernelNpu.cpp:53-56](op_plugin/ops/aclops/AdaptiveMaxPool2dKernelNpu.cpp#L53-L56) | self.size(3) 在 self 为 3D tensor 时越界 | 根据 dim() 区分 3D/4D 索引映射 | | [UpsampleBilinear2dKernelNpu.cpp:35](op_plugin/ops/aclops/UpsampleBilinear2dKernelNpu.cpp#L35) | output_size[1] 前仅校验 size() >= 1 | 改为校验 size() >= 2 | | [ConfusionTransposeKernelNpu.cpp:87](op_plugin/ops/aclops/ConfusionTransposeKernelNpu.cpp#L87) | temp_perm[perm[i]] 索引值未校验范围 | 添加 TORCH_CHECK(perm[i] >= 0 && perm[i] < perm_len) | | [MmKernelNpu.cpp:170](op_plugin/ops/aclops/MmKernelNpu.cpp#L170) | self.size(self.dim()-2) 在维度不足时越界 | 添加 TORCH_CHECK(self.dim() >= 2 && mat2.dim() >= 2) | | [FFTc2rKernelNpuOpApi.cpp:29](op_plugin/ops/opapi/FFTc2rKernelNpuOpApi.cpp#L29) | dim.back() 未校验数组是否为空 | 添加 TORCH_CHECK(!dim.empty()) | | [model.py:67-70](torchnpugen/struct/model.py#L67-L70) | info.pop() 时 info 可能为 None | 添加 if info is None: raise RuntimeError 提前拦截 | | [struct_codegen.py:35](torchnpugen/struct/struct_codegen.py#L35) | os.environ.get('PYTORCH_VERSION') 未设置时返回 None,.split() 崩溃 | 拆分调用:先判空、再 split、再校验长度 >= 2 | ### 3. 悬垂引用/指针(2处,延长生命周期) | 文件 | 问题 | 修改 | |------|------|------| | [AvgPool2dBackwardKernelNpu.cpp:82-97](op_plugin/ops/aclops/AvgPool2dBackwardKernelNpu.cpp#L82-L97) | SmallVector 在 if 块内销毁,IntArrayRef 成为悬垂引用 | 将 SmallVector 声明提到 if 块外部 | | [CropAndResizeKernelNpu.cpp:34](op_plugin/ops/aclops/CropAndResizeKernelNpu.cpp#L34) | std::string(method).data() 临时 string 销毁后指针悬垂 | 声明命名 std::string method_str 变量 | ### 4. 函数无返回值(1处) | 文件 | 问题 | 修改 | |------|------|------| | [AtbCommon.h:87](op_plugin/utils/custom_functions/atb/AtbCommon.h#L87) | GetApiFuncAddr 双 handler 均 null 时函数无 return,未定义行为 | 末尾添加 return nullptr | ### 5. 类型收窄/溢出/API返回值检查(5处) | 文件 | 问题 | 修改 | |------|------|------| | [CdistKernelNpu.cpp:71-72](op_plugin/ops/aclops/CdistKernelNpu.cpp#L71-L72) | int 类型存储 int64_t 累乘结果,可能截断 | 改为 int64_t,初始化值改为 int64_t(1) | | [LinalgQrKernelNpu.cpp:29-31](op_plugin/ops/aclops/LinalgQrKernelNpu.cpp#L29-L31) | int m, n 将 int64_t 的 tensor 维度截断为 32 位 | 改为 int64_t | | [AdaptiveAvgPool3dBackwardKernelNpu.cpp:33-34](op_plugin/ops/aclops/AdaptiveAvgPool3dBackwardKernelNpu.cpp#L33-L34) | 多维度 size 累乘可能溢出 int64_t | 乘法前加 TORCH_CHECK(size <= INT64_MAX / next_dim) | | [AsdSipNpuOpApi.h:248-265](op_plugin/utils/custom_functions/opapi/AsdSipNpuOpApi.h#L248-L265) | FFT API(Create/MakePlan/Sync/Destroy)返回值全部忽略 | 每个调用加 TORCH_CHECK(ret == 0) | | [BatchNormElemtKernelNpuOpApi.cpp:42-43](op_plugin/ops/opapi/BatchNormElemtKernelNpuOpApi.cpp#L42-L43) | optional weight/bias 直接传给 NPU 命令 | 先用 c10::value_or_else 解包为默认空 tensor 再传入 | # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4987 | 2 个月前 | |
| 1 年前 | ||
| 1 年前 | ||
!1242 Update copyright * Update copyright | 2 年前 | |
| 1 年前 | ||
fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4934 merge searchsorted into master fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/1910 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 涉及用例: python test_reductions.py -v -k test_bucketization_npu 用例主要测试searchsorted接口不同入参和校验告警等情况,PR用于处理对齐side=right时的正确语义、补齐相关校验和告警信息。 - 此前 NPU 侧多直接透传 right,未按 PyTorch 语义处理 **side**(side 存在时应覆盖 right),易导致与 GPU 结果不一致(含边界与 NaN 场景)。 - 设备编排与 CANN / aclnn 侧报错信息与 **ATen searchsorted_pre_check** 不一致,不利于脚本与单测排障(例如 out dtype、sorter、device 等应先抛出 PyTorch 风格 RuntimeError)。 - 非连续输入缺少与 GPU 类似的 **TORCH_WARN_ONCE** 提示,行为不透明。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **工具头文件(op_plugin/utils/)** - **SearchsortedSideUtil.h**:resolve_searchsorted_effective_right,在 **已完成** searchsorted_pre_check_npu 的前提下,将可选 side 解析为调用底层算子使用的有效 right(避免与校验逻辑重复)。 - **SearchsortedValidateUtil.h**:镜像 **BucketizationUtils.h** 中 **searchsorted_pre_check**,统一 dtype / shape / device / sorter / out 与 out_int32 等约束及报错文案;提供 searchsorted_validate_tensor_out_op、searchsorted_validate_core_no_output(functional、尚无 out 参数时)、searchsorted_validate_scalar_op 等封装,便于 YAML 与内核复用。 - **SearchsortedWarnUtil.h**:searchsorted_tensor_is_row_major_contiguous 与 **warn_if_searchsorted_*_noncontiguous**,对齐 ATen 侧对非连续 boundary / values / sorter 的告警语义。 2. **ACL 内核(SearchsortedKernelNpu.cpp)** 在 **CheckOut / SearchSorted OpCommand** 之前插入 **validate → warn → right_eff**,保证 acl_op 路径与 op_api 策略一致。 3. **op_api 生成配置(op_plugin_functions.yaml)** 对 **searchsorted.Scalar**、**searchsorted.Tensor**、**searchsorted.Tensor_out** 的 **gen_opapi** 增加 **new_params.right_eff**:使用 C++ 逗号表达式 **(validate, warn, resolve)** 顺序执行,表达式值为最终 **bool** 传入 aclnn;**Tensor** 重载不再仅 **structured_inherit**,显式给出 **out size/dtype** 与带 **right_eff 的 exec**,以便在分配 **out** 前做与 functional 匹配的校验链。 4. **公共头(op_api_common_base.h)** 在文件末尾 **#include** 上述三个 Searchsorted 工具头,供生成的 op_api 翻译单元在展开 new_params 时可见 **op_plugin::** 符号(通过 **npu_cpp_extension.h → op_api_common_base.h** 引入)。 5. **测试(test/test_base_ops/test_searchsorted.py)** 补充与 CPU 对比的 **side / right**、非法 side、side 与 right 冲突、sorter dtype/shape/越界、跨 device、out dtype 错误、前置维度不匹配、非连续告警等用例。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验结果  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4934 | 2 个月前 | |
feat: 新增DC算子Setup/Teardown新接口 Co-authored-by: tongzy1242<tongzeyun@huawei.com> # message auto-generated for no-merge-commit merge: !4468 merge new_op_urma into master feat: 新增DC算子Setup/Teardown新接口 Created-by: tongzy1242 Commit-by: tongzy1242 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> Issue [#892](https://gitcode.com/cann/ops-transformer/issues/892) - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 具体实现包括:1)在YAML配置文件中注册算子并配置ACL接口;2)在Python端添加元函数,用于编译时的形状和数据类型推断;3)在C++端实现输出形状和数据类型(如FLOAT8_E8M0)的动态计算逻辑;4)在算子注册配置(JSON)中补充接口签名;5)新增了FakeTensor模式下的元数据测试和多进程分布式环境下的功能集成测试,以验证算子链路的正确性。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 本次修改在算子插件框架中新增了四个算子定义:npu_moe_distribute_dispatch_setup、npu_moe_distribute_dispatch_teardown、npu_moe_distribute_combine_setup和npu_moe_distribute_combine_teardown。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已本地自验证 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4468 | 4 个月前 | |
feat: 新增DC算子Setup/Teardown新接口 Co-authored-by: tongzy1242<tongzeyun@huawei.com> # message auto-generated for no-merge-commit merge: !4468 merge new_op_urma into master feat: 新增DC算子Setup/Teardown新接口 Created-by: tongzy1242 Commit-by: tongzy1242 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> Issue [#892](https://gitcode.com/cann/ops-transformer/issues/892) - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 具体实现包括:1)在YAML配置文件中注册算子并配置ACL接口;2)在Python端添加元函数,用于编译时的形状和数据类型推断;3)在C++端实现输出形状和数据类型(如FLOAT8_E8M0)的动态计算逻辑;4)在算子注册配置(JSON)中补充接口签名;5)新增了FakeTensor模式下的元数据测试和多进程分布式环境下的功能集成测试,以验证算子链路的正确性。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 本次修改在算子插件框架中新增了四个算子定义:npu_moe_distribute_dispatch_setup、npu_moe_distribute_dispatch_teardown、npu_moe_distribute_combine_setup和npu_moe_distribute_combine_teardown。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已本地自验证 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4468 | 4 个月前 | |
TQBMM算子增加NZ输入的单算子通路,增加x1_dtype和x2_dtype可选输入 Co-authored-by: jgx12<jingaoxiang@huawei.com> # message auto-generated for no-merge-commit merge: !4890 merge tqbmm_nz into master TQBMM算子增加NZ输入的单算子通路,增加x1_dtype和x2_dtype可选输入 Created-by: jgx12 Commit-by: jgx12 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/op-plugin/issues/111 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) op-plugin(PyTorch 扩展层):新增 KernelNpuOpApi 实现,根据 x2 格式分支调用不同 ACLNN 接口 at::Tensor npu_transpose_quant_batchmatmul(...) { // ... 参数处理与 output size 计算 ... bool is_nd_nz_format = op_plugin::utils::is_nz_format(x2) && !op_plugin::utils::is_nz_format(x1); if (is_nd_nz_format) { // x2 为 NZ 格式,调用 WeightNz 版本的 ACLNN 接口 EXEC_NPU_CMD(aclnnTransposeQuantBatchMatMulWeightNz, x1, x2, bias_real, ...); } else { // x2 为 ND 格式,调用标准 ACLNN 接口 EXEC_NPU_CMD(aclnnTransposeQuantBatchMatMul, x1, x2, bias_real, ...); } return result; } # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及接口变更,增加x1_dtype和x2_dtype可选输入。用于当x1,x2为hifloat8时,torch原生不支持,使用x1_dtype和x2_dtype传入对应数据类型 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4890 | 2 个月前 | |
TQBMM算子增加NZ输入的单算子通路,增加x1_dtype和x2_dtype可选输入 Co-authored-by: jgx12<jingaoxiang@huawei.com> # message auto-generated for no-merge-commit merge: !4890 merge tqbmm_nz into master TQBMM算子增加NZ输入的单算子通路,增加x1_dtype和x2_dtype可选输入 Created-by: jgx12 Commit-by: jgx12 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/op-plugin/issues/111 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) op-plugin(PyTorch 扩展层):新增 KernelNpuOpApi 实现,根据 x2 格式分支调用不同 ACLNN 接口 at::Tensor npu_transpose_quant_batchmatmul(...) { // ... 参数处理与 output size 计算 ... bool is_nd_nz_format = op_plugin::utils::is_nz_format(x2) && !op_plugin::utils::is_nz_format(x1); if (is_nd_nz_format) { // x2 为 NZ 格式,调用 WeightNz 版本的 ACLNN 接口 EXEC_NPU_CMD(aclnnTransposeQuantBatchMatMulWeightNz, x1, x2, bias_real, ...); } else { // x2 为 ND 格式,调用标准 ACLNN 接口 EXEC_NPU_CMD(aclnnTransposeQuantBatchMatMul, x1, x2, bias_real, ...); } return result; } # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及接口变更,增加x1_dtype和x2_dtype可选输入。用于当x1,x2为hifloat8时,torch原生不支持,使用x1_dtype和x2_dtype传入对应数据类型 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4890 | 2 个月前 | |
!1713 fix ops * fix ops | 1 年前 | |
!1242 Update copyright * Update copyright | 2 年前 | |
_foreach_copy with different src/dst stypes Co-authored-by: nomiz<1606135114@qq.com> # message auto-generated for no-merge-commit merge: !5003 merge master into master _foreach_copy with different src/dst stypes Created-by: nomiz Commit-by: nomiz Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/op-plugin/issues/106 - [X] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) foreach_copy支持跨dtype拷贝走优化分支 当前支持的输入类型 fp32->fp16/bf16 , fp16/bf16->fp32 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及。无新增客户可见接口。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 UT看护: - 已适配 op-plugin foreach copy 用例,新增跨dtype场景验证,UT 结果请以当前 CI/转测执行结果为准。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!5003 | 2 个月前 | |
_foreach_copy with different src/dst stypes Co-authored-by: nomiz<1606135114@qq.com> # message auto-generated for no-merge-commit merge: !5003 merge master into master _foreach_copy with different src/dst stypes Created-by: nomiz Commit-by: nomiz Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/op-plugin/issues/106 - [X] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) foreach_copy支持跨dtype拷贝走优化分支 当前支持的输入类型 fp32->fp16/bf16 , fp16/bf16->fp32 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及。无新增客户可见接口。 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 UT看护: - 已适配 op-plugin foreach copy 用例,新增跨dtype场景验证,UT 结果请以当前 CI/转测执行结果为准。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!5003 | 2 个月前 | |
[Feature] [Randomness] Add randomness compatible blacklist handling Co-authored-by: wang_ziqi<wangziqi4@huawei.com> # message auto-generated for no-merge-commit merge: !5441 merge compatible_randomness_26.1.0 into 26.1.0 [Feature] [Randomness] Add randomness compatible blacklist handling Created-by: wang-ziqi-code Commit-by: wang_ziqi Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 https://gitcode.com/Ascend/pytorch/issues/2853 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 在 op_plugin/utils/RandomUtil.h 中集中实现 randomness compatible 处理逻辑,通过 torch_npu CheckCompatibleImplBlackListFor(CompatibleKey::Randomness) 查询 randomness 是否配置 legacy 实现。 2. 新增 randomness counter offset 统一入口 calc_final_counter_offset,compatible 场景使用 GPU/PyTorch 对齐 offset 计算,legacy 场景使用 LEGACY_RAND_COUNTER_OFFSET。 3. 新增 CANN random mode 配置封装 ConfigureCannRandomnessOnce,同一进程内只配置一次。配置值为 CANN_RANDOM_MODE_LEGACY = 0 或 CANN_RANDOM_MODE_COMPAT = 1。 4. PrepareRandomnessCompatible 负责组合 A5 aclnn-only 判断、randomness blacklist 查询和 CANN random mode 配置结果,返回当前是否使用 compatible randomness。 5. A5 supported randomness 调用点会显式配置 CANN random mode;aclnnSetPytorchRandom 符号不存在时打印 INFO 日志,并按 compatible randomness 处理。 6. 当前接入 supported randomness API:torch.nn.init.normal_、torch.randn、torch.normal 相关 overload、torch.nn.init.xavier_uniform_、Tensor.uniform_、Tensor.random_(from, to) / Tensor.random_(to)。 7. 当前 Tensor.random_() without from/to、Tensor.exponential_、torch_npu.npu_sim_exponential_、dropout 使用 support_cann_random_switch=false,不触发 CANN random mode 配置。 8. dropout 路径选择仍由 IsAclnnOnly() 控制;A5 aclnnDropoutV3 分支调用 PrepareRandomnessCompatible(false),当前返回值保持 compatible offset 行为。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及。 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 涉及跨仓 C++ 接口依赖、环境变量配置和 CANN 接口依赖,不新增 Python API。 依赖 torch_npu C++ 接口: cpp bool CheckCompatibleImplBlackListFor(CompatibleKey compatible_key); 依赖环境变量: bash TORCH_NPU_LEGACY_IMPL_LIST=randomness 依赖 CANN 接口: cpp aclnnStatus aclnnSetPytorchRandom(int32_t pytorchRandom); # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已执行静态检查: bash git -C op-plugin diff --check 验证场景: 1. A2/A3:配置或不配置 TORCH_NPU_LEGACY_IMPL_LIST=randomness,randomness API 正常执行,保持 A2/A3 路径行为。 2. A5 + 未配置 TORCH_NPU_LEGACY_IMPL_LIST:supported randomness API 正常执行,使用 compatible offset,并配置 CANN random mode 为 1。 3. A5 + TORCH_NPU_LEGACY_IMPL_LIST=randomness:supported randomness API 正常执行,使用 legacy offset,并配置 CANN random mode 为 0。 4. A5 + aclnnSetPytorchRandom 符号不存在:打印 INFO 日志,supported randomness API 正常执行,使用 compatible offset。 5. support_cann_random_switch=false 的调用点正常执行,不触发 CANN random mode 配置。 6. dropout 训练路径正常执行,p == 0、p == 1、train == false 快捷路径正常执行。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!5441 | 18 天前 | |
fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4934 merge searchsorted into master fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/1910 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 涉及用例: python test_reductions.py -v -k test_bucketization_npu 用例主要测试searchsorted接口不同入参和校验告警等情况,PR用于处理对齐side=right时的正确语义、补齐相关校验和告警信息。 - 此前 NPU 侧多直接透传 right,未按 PyTorch 语义处理 **side**(side 存在时应覆盖 right),易导致与 GPU 结果不一致(含边界与 NaN 场景)。 - 设备编排与 CANN / aclnn 侧报错信息与 **ATen searchsorted_pre_check** 不一致,不利于脚本与单测排障(例如 out dtype、sorter、device 等应先抛出 PyTorch 风格 RuntimeError)。 - 非连续输入缺少与 GPU 类似的 **TORCH_WARN_ONCE** 提示,行为不透明。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **工具头文件(op_plugin/utils/)** - **SearchsortedSideUtil.h**:resolve_searchsorted_effective_right,在 **已完成** searchsorted_pre_check_npu 的前提下,将可选 side 解析为调用底层算子使用的有效 right(避免与校验逻辑重复)。 - **SearchsortedValidateUtil.h**:镜像 **BucketizationUtils.h** 中 **searchsorted_pre_check**,统一 dtype / shape / device / sorter / out 与 out_int32 等约束及报错文案;提供 searchsorted_validate_tensor_out_op、searchsorted_validate_core_no_output(functional、尚无 out 参数时)、searchsorted_validate_scalar_op 等封装,便于 YAML 与内核复用。 - **SearchsortedWarnUtil.h**:searchsorted_tensor_is_row_major_contiguous 与 **warn_if_searchsorted_*_noncontiguous**,对齐 ATen 侧对非连续 boundary / values / sorter 的告警语义。 2. **ACL 内核(SearchsortedKernelNpu.cpp)** 在 **CheckOut / SearchSorted OpCommand** 之前插入 **validate → warn → right_eff**,保证 acl_op 路径与 op_api 策略一致。 3. **op_api 生成配置(op_plugin_functions.yaml)** 对 **searchsorted.Scalar**、**searchsorted.Tensor**、**searchsorted.Tensor_out** 的 **gen_opapi** 增加 **new_params.right_eff**:使用 C++ 逗号表达式 **(validate, warn, resolve)** 顺序执行,表达式值为最终 **bool** 传入 aclnn;**Tensor** 重载不再仅 **structured_inherit**,显式给出 **out size/dtype** 与带 **right_eff 的 exec**,以便在分配 **out** 前做与 functional 匹配的校验链。 4. **公共头(op_api_common_base.h)** 在文件末尾 **#include** 上述三个 Searchsorted 工具头,供生成的 op_api 翻译单元在展开 new_params 时可见 **op_plugin::** 符号(通过 **npu_cpp_extension.h → op_api_common_base.h** 引入)。 5. **测试(test/test_base_ops/test_searchsorted.py)** 补充与 CPU 对比的 **side / right**、非法 side、side 与 right 冲突、sorter dtype/shape/越界、跨 device、out dtype 错误、前置维度不匹配、非连续告警等用例。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验结果  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4934 | 2 个月前 | |
fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4934 merge searchsorted into master fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/1910 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 涉及用例: python test_reductions.py -v -k test_bucketization_npu 用例主要测试searchsorted接口不同入参和校验告警等情况,PR用于处理对齐side=right时的正确语义、补齐相关校验和告警信息。 - 此前 NPU 侧多直接透传 right,未按 PyTorch 语义处理 **side**(side 存在时应覆盖 right),易导致与 GPU 结果不一致(含边界与 NaN 场景)。 - 设备编排与 CANN / aclnn 侧报错信息与 **ATen searchsorted_pre_check** 不一致,不利于脚本与单测排障(例如 out dtype、sorter、device 等应先抛出 PyTorch 风格 RuntimeError)。 - 非连续输入缺少与 GPU 类似的 **TORCH_WARN_ONCE** 提示,行为不透明。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **工具头文件(op_plugin/utils/)** - **SearchsortedSideUtil.h**:resolve_searchsorted_effective_right,在 **已完成** searchsorted_pre_check_npu 的前提下,将可选 side 解析为调用底层算子使用的有效 right(避免与校验逻辑重复)。 - **SearchsortedValidateUtil.h**:镜像 **BucketizationUtils.h** 中 **searchsorted_pre_check**,统一 dtype / shape / device / sorter / out 与 out_int32 等约束及报错文案;提供 searchsorted_validate_tensor_out_op、searchsorted_validate_core_no_output(functional、尚无 out 参数时)、searchsorted_validate_scalar_op 等封装,便于 YAML 与内核复用。 - **SearchsortedWarnUtil.h**:searchsorted_tensor_is_row_major_contiguous 与 **warn_if_searchsorted_*_noncontiguous**,对齐 ATen 侧对非连续 boundary / values / sorter 的告警语义。 2. **ACL 内核(SearchsortedKernelNpu.cpp)** 在 **CheckOut / SearchSorted OpCommand** 之前插入 **validate → warn → right_eff**,保证 acl_op 路径与 op_api 策略一致。 3. **op_api 生成配置(op_plugin_functions.yaml)** 对 **searchsorted.Scalar**、**searchsorted.Tensor**、**searchsorted.Tensor_out** 的 **gen_opapi** 增加 **new_params.right_eff**:使用 C++ 逗号表达式 **(validate, warn, resolve)** 顺序执行,表达式值为最终 **bool** 传入 aclnn;**Tensor** 重载不再仅 **structured_inherit**,显式给出 **out size/dtype** 与带 **right_eff 的 exec**,以便在分配 **out** 前做与 functional 匹配的校验链。 4. **公共头(op_api_common_base.h)** 在文件末尾 **#include** 上述三个 Searchsorted 工具头,供生成的 op_api 翻译单元在展开 new_params 时可见 **op_plugin::** 符号(通过 **npu_cpp_extension.h → op_api_common_base.h** 引入)。 5. **测试(test/test_base_ops/test_searchsorted.py)** 补充与 CPU 对比的 **side / right**、非法 side、side 与 right 冲突、sorter dtype/shape/越界、跨 device、out dtype 错误、前置维度不匹配、非连续告警等用例。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验结果  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4934 | 2 个月前 | |
fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4934 merge searchsorted into master fix(npu): 对齐searchsorted接口入参为side=right时的正确语义、补齐相关校验和告警信息 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/1910 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 涉及用例: python test_reductions.py -v -k test_bucketization_npu 用例主要测试searchsorted接口不同入参和校验告警等情况,PR用于处理对齐side=right时的正确语义、补齐相关校验和告警信息。 - 此前 NPU 侧多直接透传 right,未按 PyTorch 语义处理 **side**(side 存在时应覆盖 right),易导致与 GPU 结果不一致(含边界与 NaN 场景)。 - 设备编排与 CANN / aclnn 侧报错信息与 **ATen searchsorted_pre_check** 不一致,不利于脚本与单测排障(例如 out dtype、sorter、device 等应先抛出 PyTorch 风格 RuntimeError)。 - 非连续输入缺少与 GPU 类似的 **TORCH_WARN_ONCE** 提示,行为不透明。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **工具头文件(op_plugin/utils/)** - **SearchsortedSideUtil.h**:resolve_searchsorted_effective_right,在 **已完成** searchsorted_pre_check_npu 的前提下,将可选 side 解析为调用底层算子使用的有效 right(避免与校验逻辑重复)。 - **SearchsortedValidateUtil.h**:镜像 **BucketizationUtils.h** 中 **searchsorted_pre_check**,统一 dtype / shape / device / sorter / out 与 out_int32 等约束及报错文案;提供 searchsorted_validate_tensor_out_op、searchsorted_validate_core_no_output(functional、尚无 out 参数时)、searchsorted_validate_scalar_op 等封装,便于 YAML 与内核复用。 - **SearchsortedWarnUtil.h**:searchsorted_tensor_is_row_major_contiguous 与 **warn_if_searchsorted_*_noncontiguous**,对齐 ATen 侧对非连续 boundary / values / sorter 的告警语义。 2. **ACL 内核(SearchsortedKernelNpu.cpp)** 在 **CheckOut / SearchSorted OpCommand** 之前插入 **validate → warn → right_eff**,保证 acl_op 路径与 op_api 策略一致。 3. **op_api 生成配置(op_plugin_functions.yaml)** 对 **searchsorted.Scalar**、**searchsorted.Tensor**、**searchsorted.Tensor_out** 的 **gen_opapi** 增加 **new_params.right_eff**:使用 C++ 逗号表达式 **(validate, warn, resolve)** 顺序执行,表达式值为最终 **bool** 传入 aclnn;**Tensor** 重载不再仅 **structured_inherit**,显式给出 **out size/dtype** 与带 **right_eff 的 exec**,以便在分配 **out** 前做与 functional 匹配的校验链。 4. **公共头(op_api_common_base.h)** 在文件末尾 **#include** 上述三个 Searchsorted 工具头,供生成的 op_api 翻译单元在展开 new_params 时可见 **op_plugin::** 符号(通过 **npu_cpp_extension.h → op_api_common_base.h** 引入)。 5. **测试(test/test_base_ops/test_searchsorted.py)** 补充与 CPU 对比的 **side / right**、非法 side、side 与 right 冲突、sorter dtype/shape/越界、跨 device、out dtype 错误、前置维度不匹配、非连续告警等用例。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验结果  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4934 | 2 个月前 | |
fix(npu): correction 非整数时对 std/var 走 CPU 回退 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4997 merge std into master fix(npu): correction 非整数时对 std/var 走 CPU 回退 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2069 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **新增工具函数**: - 在 op_plugin/utils/StdVarCorrectionUtils.h 中新增 correction_fits_aclnn_int64 函数 - 该函数用于检查 correction 参数是否可以精确转换为 int64 类型 - 检查逻辑包括:无值情况、整数类型、非浮点数类型、浮点数范围和精度检查 2. **Std 函数修复**: - 在 op_plugin/ops/aclops/StdKernelNpu.cpp 中的 std_out、std、std_mean 函数中添加 CPU 回退逻辑 - 当 correction 不适合 aclnn 处理时,将计算回退到 CPU 执行,以保证精度 3. **Var 函数修复**: - 在 op_plugin/ops/aclops/VarKernelNpu.cpp 中的 var_out、var、var_mean 函数中添加相同的 CPU 回退逻辑 - 实现方式与 Std 函数类似,确保语义一致性 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图    1. **测试场景**: - 整数 correction 情况:确保 NPU 加速正常工作 - 非整数 correction 情况:确保结果与 CPU 版本一致 - 边界值测试:如 correction 为负数、零、大数等情况 - 不同数据类型和维度的张量测试 2. **测试方法**: - 运行现有的 test_std.py 和 test_var.py 测试用例 - 新增针对非整数 correction 的测试用例 - 对比 NPU 和 CPU 版本的计算结果 3. **UT测试**: - 已适配现有 UT 测试用例 - 测试用例覆盖各种 correction 类型和边界情况 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 \[ ] 为 \[x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4997 | 2 个月前 | |
Checkout v2r13 Co-authored-by: Chansinging<1183520536@qq.com> Co-authored-by: chansinging<chenxingying2@huawei.com> # message auto-generated for no-merge-commit merge: !4923 merge main_sync_20260511 into master Checkout v2r13 Created-by: chansinging Commit-by: Chansinging;chansinging Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 参考社区演进和以往PR记录 - [ ] 需求 - [ ] 问题单 - [x] issue/工单[社区演进](https://gitcode.com/Ascend/op-plugin/issues/77) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 参考社区演进和以往PR记录 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4923 | 2 个月前 | |
[fix]hit cache err Co-authored-by: chenshuai<chenshuai81@huawei.com> # message auto-generated for no-merge-commit merge: !5256 merge cherry-pick-mr-5252-1782287129945-auto into 26.1.0 [fix]hit cache err Created-by: culechan Commit-by: chenshuai Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 old_impl指向的对象可能是c10::StorageImpl/FakeStorageImpl/MetaStorageImpl,而不一定是NPUStorageImpl,这个时候如果使用static_cast去强转类型,然后再取里面的属性就会读到未知内存 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 影响的用例已经可以正常通过  # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!5256 | 1 个月前 | |
fix: route 310P MatMul to aclnn WeightNz Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !5406 merge sync-pr5391-Pynative_matmul_support_aclnn_310p_20260706-to-26.1.0 into 26.1.0 fix: route 310P MatMul to aclnn WeightNz Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 > 关联 issue: #2636 (https://gitcode.com/Ascend/pytorch/issues/2636) - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 同步 master PR !5391 的 310P MatMul aclnn 路由支持到 26.1.0 分支。 2. 在 DO_MATMUL_COMPATIBILITY 的 internal format MatMul 路由判断中加入 310P SOC 判断。 3. 310P 设备在满足 is_nd_nz_format 与 dtype 条件时,可以继续探测并使用 aclnnMatmulWeightNz,避免因 SOC 判断直接回退到 acl_op::mm。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 已完成 26.1.0 分支 cherry-pick,无冲突。310P MatMul ACLGraph 场景待 CI/环境验证。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!5406 | 26 天前 | |
fix(npu): correction 非整数时对 std/var 走 CPU 回退 Co-authored-by: Margaret_wangrui<wangrui178@huawei.com> # message auto-generated for no-merge-commit merge: !4997 merge std into master fix(npu): correction 非整数时对 std/var 走 CPU 回退 Created-by: Margaret_wangrui Commit-by: Margaret_wangrui Merged-by: ascend-robot Description: # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2069 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. **新增工具函数**: - 在 op_plugin/utils/StdVarCorrectionUtils.h 中新增 correction_fits_aclnn_int64 函数 - 该函数用于检查 correction 参数是否可以精确转换为 int64 类型 - 检查逻辑包括:无值情况、整数类型、非浮点数类型、浮点数范围和精度检查 2. **Std 函数修复**: - 在 op_plugin/ops/aclops/StdKernelNpu.cpp 中的 std_out、std、std_mean 函数中添加 CPU 回退逻辑 - 当 correction 不适合 aclnn 处理时,将计算回退到 CPU 执行,以保证精度 3. **Var 函数修复**: - 在 op_plugin/ops/aclops/VarKernelNpu.cpp 中的 var_out、var、var_mean 函数中添加相同的 CPU 回退逻辑 - 实现方式与 Std 函数类似,确保语义一致性 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图    1. **测试场景**: - 整数 correction 情况:确保 NPU 加速正常工作 - 非整数 correction 情况:确保结果与 CPU 版本一致 - 边界值测试:如 correction 为负数、零、大数等情况 - 不同数据类型和维度的张量测试 2. **测试方法**: - 运行现有的 test_std.py 和 test_var.py 测试用例 - 新增针对非整数 correction 的测试用例 - 对比 NPU 和 CPU 版本的计算结果 3. **UT测试**: - 已适配现有 UT 测试用例 - 测试用例覆盖各种 correction 类型和边界情况 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 \[ ] 为 \[x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4997 | 2 个月前 | |
| 1 年前 | ||
feat:opplugin的算子执行添加控核维测日志 Co-authored-by: ChengLyric<licheng236@huawei.com> # message auto-generated for no-merge-commit merge: !4954 merge feat_op_exec_log into master feat:opplugin的算子执行添加控核维测日志 Created-by: Guanam2020 Commit-by: ChengLyric Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单https://gitcode.com/Ascend/op-plugin/issues/66 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 修复OP_EXEC_LOG_WITH_TASK_QUEUE支持aclgraph场景,不再打印scaler tensor 2. 额外增加打印acl_stream、控核信息日志 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验证ok # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4954 | 2 个月前 | |
feat:opplugin的算子执行添加控核维测日志 Co-authored-by: ChengLyric<licheng236@huawei.com> # message auto-generated for no-merge-commit merge: !4954 merge feat_op_exec_log into master feat:opplugin的算子执行添加控核维测日志 Created-by: Guanam2020 Commit-by: ChengLyric Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单https://gitcode.com/Ascend/op-plugin/issues/66 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 修复OP_EXEC_LOG_WITH_TASK_QUEUE支持aclgraph场景,不再打印scaler tensor 2. 额外增加打印acl_stream、控核信息日志 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 自验证ok # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!4954 | 2 个月前 | |
| 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 18 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 2 个月前 | ||
| 1 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 年前 |