| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Requirement|需求建议]: 【社区任务】Relu算子新增INT16数据类型支持 Co-authored-by: cxj01<1214136456@qq.com> # message auto-generated for no-merge-commit merge: !6387 merge master into master [Requirement|需求建议]: 【社区任务】Relu算子新增INT16数据类型支持 Created-by: cxj01 Commit-by: cxj01 Merged-by: cann-robot Description: ## 描述 # Relu算子设计文档 # 一、需求背景 ## 1.1 需求来源 参考昇腾版本内置aclnnRelu算子的TBE实现,在昇腾NPU上基于Ascend C编程语言实现功能一致的算子,并扩展支持int16数据类型。 ## 1.2 背景介绍 ### 1.2.1 Relu算子实现优化 ReLU(Rectified Linear Unit)数学表达式: $$ \text{ReLU}(x) = \max(0, x) = \begin{cases} x, & x > 0 \\ 0, & x \leq 0 \end{cases} $$ ### 1.2.2 Relu算子现状分析 #### 1.2.2.1 TBE算子支持的数据类型 - **支持数据类型**: FLOAT、FLOAT16、INT8、INT32、INT64、BFLOAT16 - **Shape限制**:0 到 8维 #### 1.2.2.2 TBE算子实现描述 TBE算子核心逻辑(路径:/usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/impl/ops_legacy/relu.py): TBE ReLU 是逐元素单输入单输出算子,无广播、归约及跨元素依赖,实现流程如下: 参数校验:通过para_check校验输入、输出、kernel_name 合法性,同时校验输入数据类型是否在白名单(float16/float32/int8/int32/bfloat16/int64)内; 动态 Shape 分类:按逐元素模式对动态 shape 输入分类; 张量构造:获取动态 shape,用tvm.placeholder构建输入张量; 核心计算分支: 特殊场景:res_conv2d/dequant_remove_pad输入 + 平台支持tik.vcopy+ 非 int64 → 调用tbe.vlrelu(x, 0); 类型适配计算: int8 + 平台支持s82f16:先转 float16 计算,结果转回 int8; bfloat16:先转 float32 计算,结果经tbe.round转回 bfloat16; 常规场景:平台支持对应 dtype 的tbe.vrelu→直接调用;否则构造全 0 张量,用tbe.vmax(x, 0)实现; 编译生成:自动生成调度,编译输出可执行 kernel。 **TBE算子实现策略** | 实现路径 | 适用条件 | 说明 | |---------|---------|------| | vlrelu(x, 0) | 支持vcopy且输入来自res_conv2d | 专用leaky relu优化 | | vrelu(x) | 支持vrelu指令的数据类型 | 硬件原生relu指令 | | vmax(x, 0) | 不支持vrelu的数据类型 | 通用实现:与0取最大值 | #### 1.2.2.3 TBE算子实现流程图 .png') # 二、需求分析 ## 2.1 外部组件依赖 不涉及外部组件依赖。 ## 2.2 内部适配模块 适配Aclnn接口,支持常规调用和原位调用两种模式。 ## 2.3 需求模块设计 ### 2.3.1 AscendC算子原型 | 参数名 | 输入/输出 | 数据类型 | 数据格式 | 维度 | 非连续Tensor | |--------|----------|---------|---------|------|---------------| | self | 输入 | FLOAT、FLOAT16、INT8、INT16、INT32、INT64、BFLOAT16 | ND | 0-8 | √ | | out | 输出 | FLOAT、FLOAT16、INT8、INT16、INT32、INT64、BFLOAT16 | ND | 0-8 | √ | ### 2.3.2 AscendC算子相关约束 - 支持空Tensor(shape需与out一致) - 输入输出shape必须相同 - 最大支持8维张量 - 支持原位计算模式(y = x) - 支持非连续Tensor # 三、需求详细设计 ## 3.1 使能方式 | 上层框架 | 支持 | |---------|------| | Aclnn直调 | √ | ## 3.2 需求总体设计 ### 3.2.1 host侧设计 #### 3.2.1.1 分核策略 - **INT64类型**:使用所有可用Core - **其他类型**:根据总数据量决定,按16KB阈值分配,最多使用coreNum个Core - **任务分配**:前formerNum个Core处理formerLength,最后一个Core处理tailLength #### 3.2.1.2 数据分块和内存优化策略 - **UB容量适配**:根据数据类型计算bufferCoefficient - FP32:8(双缓冲:2×4字节) - FP16/INT8:4(数据量小) - BF16/INT16:12(需转FP32中间类型) - INT64:32(CompareScalar向量化) - **内存对齐**:按32字节对齐tile大小,Cache Line对齐(512字节)分配Core任务 #### 3.2.1.3 tilingKey规划策略 将tiling参数(formerNum、formerLength、tailLength、tileLength)封装到ReluTilingData结构体中。 ### 3.2.2 kernel侧设计 #### 3.2.2.1 kernel侧实现描述 Relu算子kernel侧采用模板化设计,针对不同数据类型实现3种Kernel类: 1. **KernelRelu<T>**:用于FP32、FP16、INT32,直接使用原生Relu指令 2. **KernelReluUpcast<T, MidT>**:用于BF16、INT16(MidT=float)、INT8(MidT=half),通过类型提升计算 3. **KernelReluVectorInt64<T>**:用于INT64,任意INT64整数 x = (high_32 << 32) | low_32,其符号仅由 high_32 的最高位决定: ReLU(x) = x, 若 high_32 的 bit15 == 0(正数或零) 0, 若 high_32 的 bit15 == 1(负数) 所有Kernel类共享基类KernelReluBase,实现通用的数据搬运和流程控制。 #### 3.2.2.2 AscendC实现流程图 .png') int64子流程: .png') #### 3.2.2.3 AscendC实现流程图与TBE流程图存在的差异点和原因 | 差异点 | TBE实现 | AscendC实现 | 原因 | |--------|---------|-------------|------| | 数据类型支持 | FP16/FP32/INT8/INT32/BF16/INT64 | 扩展支持INT16 | AscendC灵活性更高 | | INT8处理 | Cast到Float16 | Cast到Half | 策略一致,类型名称不同 | | 计算指令 | vrelu/vmax/vlrelu | Relu/CompareScalar+Select | AscendC API差异 | ## 3.3 支持硬件 | 芯片版本 | 支持 | |---------|------| | Atlas 800I/T A2 | √ | | Atlas 910B | √ | | Atlas A3系列 | √ | ## 3.4 算子约束限制 - 输入输出shape必须相同(无广播) - 输入输出数据类型必须相同 - 最大支持8维张量 - INT64类型使用向量化计算,性能较其他类型略低 - 所有核参与场景下,性能不低于TBE算子的95% # 四、特性交叉分析 本算子为独立激活函数算子,不涉及与其他算子的特性交叉。 # 五、可维可测分析 ## 5.1 精度标准/性能标准 **精度标准**: - 浮点类型:误差在硬件允许范围内,满足AscendOpTest默认阈值 - 整型类型:结果必须完全一致 - 对比基准:以TBE算子输出为基准 **性能标准**: - 所有核参与计算场景下,性能不低于TBE算子的95% - 小shape场景(10us以下)相差3us可接受 ## 5.2 兼容性分析 - **向后兼容**:完全兼容TBE算子已支持的数据类型和格式 - **扩展支持**:INT16类型 - **调用模式**:支持常规计算和原位计算(aclnnInplaceRelu) ## 关联的Issue 关联Issue [#3495](https://gitcode.com/cann/ops-nn/issues/3495) ## 测试 进行AscendOpTest测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6387 | 2 个月前 | |
修改测试问题 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 | 3 个月前 | |
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 | 10 个月前 | |
将 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 | 2 个月前 | |
【社区任务】IndexFillTensor算子新增INT16/INT8/UINT8/INT64/DOUBLE数据类型支持 Co-authored-by: yogstar<yogstar@163.com> # message auto-generated for no-merge-commit merge: !5694 merge submit-IndexFillTensor into master 【社区任务】IndexFillTensor算子新增INT16/INT8/UINT8/INT64/DOUBLE数据类型支持 Created-by: yogstar Commit-by: yogstar Merged-by: cann-robot Description: ## 描述 ## 一、需求背景 ### 1.1 需求来源 通过社区任务完成开源仓算子贡献的需求。扩展 aclnnIndexFillTensor 算子,使其支持 int16, int8, uint8, double 数据类型。 ### 1.2 背景介绍 #### 1.2.1 IndexFill算子现状分析 **1.2.1.1 原 Ascend C 算子支持的数据类型和数据格式** * **支持的数据类型:** FLOAT16、FLOAT、INT32、INT64、BOOL、BFLOAT16 * **支持的数据格式:** ND * **特性分析:** 原有实现主要覆盖了 2B、4B 以及部分原生支持的 8B 类型。对于底层的 Select、CompareScalar 等向量指令,NPU 硬件在原生指令级对 1B(如 int8、uint8)以及非标浮点类型的支持存在局限,直接透传会导致硬件指令报错或编译失败。 **1.2.1.2 原 Ascend C 算子实现描述** 原有 Ascend C 算子采用了泛化的 Tiling 策略,将输入 Tensor 根据计算轴 dim 的位置(是否为尾轴)和数据量大小,拆分为 5 个 tilingKey 分支(front_q, front_n, front_p, tail_n, tail_p)。 在 Kernel 侧的实现逻辑中,所有支持的数据类型在 UB(Unified Buffer)中被统一视作标准位宽数据,按照“搬入索引 -> 构建掩码(Compare 得到 uint8 掩码) -> 搬入原数据 -> 执行 Select 替换 -> 搬出”的单一数据流进行处理。缺乏针对特异性位宽数据(如需要视图转换的 8B 或需要精度转换的 1B)的定制化内存排布与指令流水线设计。 **1.2.1.3 原 Ascend C 算子实现流程图**  ## 二、需求分析 ### 2.1 外部组件依赖 适配 CANN 底层的 ACLNN 算子调用框架,依赖 Ascend C 的 API(如 DataCopy, Select, CompareScalar, Cast, Gather 等)。 ### 2.2 内部适配模块 需要适配 index_fill_tiling.cpp(Host侧)以调整内存空间的预留,并修改所有 Kernel 侧的头文件(如 index_fill_tail_p.h 等)以支持新增的数据类型分支。 ### 2.3 需求模块设计 **2.3.1 Ascend C算子原型** 原型与原算子保持一致,API为 aclnnIndexFillTensor。扩充了其 Input x 和 value,以及 Output y 的 DataType 集合,增加 DT_INT16, DT_INT8, DT_UINT8, DT_DOUBLE。 更新后的算子原型如下,已明确增加对 INT16、INT8、UINT8、DOUBLE 、INT64的支持: | 参数名 | 输入/输出/属性 | 描述 | 使用说明 | 数据类型 | 数据格式 | 维度(shape) | 非连续Tensor | | --- | --- | --- | --- | --- | --- | --- | --- | | self | 输入 | 输入Tensor。 | 待被在指定位置的值用value替换的张量 | FLOAT16、FLOAT、INT32、INT64、BOOL、BFLOAT16、**INT16**、**INT8**、**UINT8**、**DOUBLE** | ND | [1,8] | √ | | dim | 属性 | 指定了self将要填充的维度。 | dim取值范围在[-self.dim(), self.dim()),0维时为[-1, 1) | INT64 | - | - | - | | index | 输入 | 指定self在dim维度将要填充的下标。 | 元素值小于self对应dim的维度大小 | INT32、INT64 | - | - | - | | value | 输入 | 指定填充的数据值。 | 需要可转化为self的数据类型。 | FLOAT16、FLOAT、INT32、INT64、BOOL、BFLOAT16、**INT16**、**INT8**、**UINT8**、**DOUBLE** | - | - | - | | out | 输出 | 指定的输出张量。 | - | 与self一致 | ND | 与self一致 | √ | **2.3.2 Ascend C算子相关约束** * **内存约束:** 针对 8B(double)数据,由于需要利用 ReinterpretCast 翻倍扩展,UB 内存压力剧增。必须通过硬编码缩小 pUbLength 等每次处理的块大小,以防止触发 MPU 越界报错。 * **对齐约束:** CompareScalar 等 Vector 指令要求计算长度必须满足 256 字节(COMPARE_ALIGNED)对齐,否则将触发 VEC supports illegal configurations 硬件拦截。 * **算子泛化:** 必须满足非连续 Tensor 的输入场景。 ## 三、需求详细设计 ### 3.1 使能方式 基于 ACLNN 框架,通过修改 OP Def 定义和算子信息库使能新增的数据类型。 ### 3.2 需求总体设计 #### 3.2.1 Host侧设计 **3.2.1.1 分核策略** 沿用原算子的分核逻辑,通过判定 N >= coreNum * 256 等阈值条件,决定在 P、N 或 Q 轴上进行多核切分。新增数据类型不影响宏观的分核维度。 **3.2.1.2 数据分块和内存优化策略** * **内存池扩容:** 在 Tiling 阶段,由于 8B 数据的特殊处理(掩码对应倍增),需要为 gatherGm 和相关的 Workspace 预留翻倍的内存空间。通过引入 qMultiplier 因子(对于 INT64、UINT64、DOUBLE 设为 2),动态调整 userWorkspaceSize。 * **UB 块划分优化:** 对于 DOUBLE 类型,主动在 Tiling 及 Kernel 初始化阶段压低 ubNBlockLength 或 pUbLength,牺牲单次处理的元素个数,换取 UB 空间的安全,杜绝 OOM。 **3.2.1.3 tilingKey规划策略** 与原有逻辑保持一致,TilingKey 0-4 分别对应大 Q 轴、N 切分(非尾轴)、P 切分(非尾轴)、N 切分(尾轴)和 P 切分(尾轴)。 #### 3.2.2 Kernel侧设计 **3.2.2.1 kernel侧实现描述** 利用 C++ 的模板实例化与 if constexpr (sizeof(T) == X) 进行编译期分支路由,实现数据类型的无感支持: * **针对 1B (int8, uint8) / 2B (int16):** 在 UB 中申请一块连续的 half 内存区域。利用 Cast 指令将 1B 数据提升精度到 half,利用 Select 执行替换后,再使用 Cast 降回 1B 原类型。 * **针对 8B (double):** 采用零拷贝视角的极致优化。使用 ReinterpretCast<float>() 将 8B 数据在视图上变为两倍数量的 4B 浮点数。利用纯 UB 内部的标量循环或 Gather 指令,将原始掩码按元素进行倍增(如 [1, 0] 扩展为 [1, 1, 0, 0])。随后利用 SELMODE::VSEL_TENSOR_TENSOR_MODE 进行 Tensor 到 Tensor 的替换。同时通过 AlignedToTarget 函数严格保证所有向量处理长度对齐到 256 字节。 **3.2.2.2 Ascend C实现流程图**  **“3.2.2.3 Ascend C实现流程图与TBE流程图存在的差异点和原因”** 1. **去 Fallback 化(Host侧差异)**:原设计中因为搞不定 8B 和 1B 在复杂切分下的逻辑,强行将它们打回单核/效率低下的 TilingKey=0。现在将其修改泛化实现,让这些类型拥有和常规数据一样的并发切分能力。 2. **MPU 物理级防护(Device侧差异)**:原版代码默认按照 256KB 的满载算率去分配 N/P 的步长。但在 8B 的双向映射下(掩码和数据都需要倍增扩容),直接导致 MPU 击穿。新的流程图明确展现了通过硬编码防线(pUbLength = 4096)来护航硬件安全的机制。 3. **DataCopy 替代 GM 广播(Device侧差异)**:新的流程图体现了抛弃了原版通过 repeatGm 存在“非 32 字节对齐 GM 覆盖脏写”的情况,转而采用纯 UB 内的 DataCopy 倍增(倍增复制算法),这不仅提升了访存速度,更是保证了绝对的内存安全。 ### 3.3 支持硬件 Atlas A2 训练系列产品 / Atlas A3 系列产品。 ### 3.4 算子约束限制 无特殊业务约束。泛化场景下支持 aclnnIndexFillTensor 的所有标准维度与非连续 Tensor 输入。 ## 四、特性交叉分析 新增数据类型不对原有特性(如 Dim 维度推导、负数索引规整、性能阈值切分等)产生负面交叉影响。由于 8B 处理独立占用编译期分支,原有 FLOAT16/FLOAT 等性能敏感类型的执行流被零开销保留,确保绝对隔离。 ## 五、可维可测分析 ### 5.1 精度标准/性能标准 * **精度标准:** 新增的 int8, uint8, int16, double 精度均通过 AscendOpTest 工具验证,结果精度 100% 对齐 Golden 数据。 * **性能标准:** * int8, uint8, int16 不劣化于 int32 数据类型。 * double 采用纯 UB Reinterpret 倍增方案后,规避了外部 Gather 的 IO 瓶颈,性能不劣化于 int64。 ### 5.2 兼容性分析 修改对原本上层的调用接口 aclnnIndexFillTensor 完全透明,调用方无需修改业务逻辑即可直接传递新类型参数,完全向后兼容。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #3107 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 进行AscendOpTest测试。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md, aclnnIndexFillTensor.md, aclnnIndexFill.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5694 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
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 | 2 个月前 | |
【CANN开源开放社区任务】【社区任务】AscendC实现ApplyAdamW算子贡献 Co-authored-by: StarLightOn<594406837@qq.com> # message auto-generated for no-merge-commit merge: !8168 merge submit-apply_adam_w into master 【CANN开源开放社区任务】【社区任务】AscendC实现ApplyAdamW算子贡献 Created-by: StarLightOn Commit-by: StarLightOn Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 【社区任务】ApplyAdamW算子AscendC贡献 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#4492](https://gitcode.com/cann/ops-nn/issues/4492) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8168 | 2 个月前 | |
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 | 2 个月前 | |
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 | 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 | 10 个月前 | |
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 | 10 个月前 |