| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 25 天前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 | |
个人-AscendC实现ReLUGrad算子贡献 Co-authored-by: shi-xiangyang225<2678490361@qq.com> # message auto-generated for no-merge-commit merge: !4907 merge feat/ReLUGrad into master 个人-AscendC实现ReLUGrad算子贡献 Created-by: shi-xiangyang225 Commit-by: shi-xiangyang225 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 使用AscendC对TBE实现的ReLUGrad算子进行重构,实现了AscendC实现的算子对Atlas 200/500 A2推理产品和Atlas 800I/T A2硬件的适配。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#2507](https://gitcode.com/cann/ops-nn/issues/2507) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 执行aclnn测试  性能数据通过 ACL event 计时获取。每组测试流程如下: 1. 构造 feature/self、gradOutput、output 三个 device tensor。 2. 调用第一段接口获取 executor: - ReluGradV3: aclnnReluGradV3GetWorkspaceSize(feature, gradOutput, output, ...) - baseline:aclnnThresholdBackwardGetWorkspaceSize(gradOutput, self, threshold=0, output, ...) 3. warmup 10 次,不计入统计。 4. timed 100 次,每次在第二段接口前后插入 ACL event: - aclrtRecordEvent(start, stream) - 调用第二段接口 - aclrtRecordEvent(end, stream) - aclrtSynchronizeEvent(end) - aclrtEventElapsedTime(&elapsed, start, end) 5. 每组输出 mean / min / max / p50 / p90。 6. 重复 3 组,表格中记录 3 组 mean_ms。 正确性数据通过 D2H 拷贝 output 后与 host golden 逐 byte 对比获取,统计 mismatch_bytes。ReluGradV3 六种 dtype 的 same-shape 测试均为 mismatch_bytes=0。 #### 输入数据构造 | dtype | feature/self 构造 | gradOutput 构造 | golden | |---|---|---|---| | float16 / float32 / bfloat16 | i % 17 == 0 -> NaN;i % 13 == 0 -> +Inf;i % 11 == 0 -> 1;i % 7 == 0 -> 0;否则 -1 | (i % 15 - 7) / 4 | feature > 0 ? gradOutput : 0,NaN feature 输出 0 | | int32 / int8 | 正样本为 2;部分位置为 0 或 -2 | i % 31 - 15 | feature > 0 ? gradOutput : 0 | | uint8 | 正样本为 2;部分位置为 0 | i % 31 + 1 | feature > 0 ? gradOutput : 0 | #### 测试结果 | dtype | old ThresholdBackward mean_ms | ReluGradV3 mean_ms | 结果 | |---|---:|---:|---| | float16 | 0.069 / 0.069 / 0.073 | 0.055 / 0.053 / 0.054 | ReluGradV3 更快 | | float32 | 0.372 / 0.372 / 0.372 | 0.359 / 0.358 / 0.359 | ReluGradV3 更快 | | bfloat16 | 0.104 / 0.102 / 0.103 | 0.056 / 0.053 / 0.052 | ReluGradV3 更快 | | int32 | 0.370 / 0.370 / 0.370 | 0.358 / 0.358 / 0.358 | ReluGradV3 更快 | | uint8 | 0.058 / 0.057 / 0.056 | 0.060 / 0.059 / 0.060 | 基本接近 | | int8 | 0.058 / 0.056 / 0.057 | 0.060 / 0.060 / 0.060 | 基本接近 | ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4907 | 1 个月前 |
ReluGradV3
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas A2 训练系列产品/Atlas 800I A2 推理产品 | √ |
功能说明
-
算子功能:求ReLU函数的梯度。
-
计算公式:
z=(x>0) ? y:0z = (x > 0) \ ? \ y : 0 z=(x>0) ? y:0
其中:
x:前向ReLU的输入y:来自上游的反向传播梯度(grad_output)z:梯度计算结果(grad_input),当 x > 0 时等于 y,否则为 0
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 前向ReLU的输入。 | fp32/fp16/bf16/int32/uint8/int8 | ND |
| y | 输入 | 反向传播的梯度输入(grad_output)。 | fp32/fp16/bf16/int32/uint8/int8 | ND |
| z | 输出 | 梯度计算结果输出(grad_input),shape与x一致。 | fp32/fp16/bf16/int32/uint8/int8 | ND |
约束说明
- 输入
x、y及输出z的数据类型必须一致,支持 fp32、fp16、bf16。 - 输入
y支持与xshape 完全相同,或作为单元素标量广播到x的 shape。 - 输出
z的 shape 与输入x一致。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_relu_grad_v3.cpp | 通过aclnnReluGradV3接口方式调用ReluGradV3算子。 |
贡献说明
| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
|---|---|---|---|---|
| Shi Xiangyang (shi-xiangyang225) | AISS Group, Harbin Institute of Technology (HIT) | ReluGradV3 | 2026/5/13 | ReluGradV3算子适配开源仓(多核tiling、CompareScalar/Select API、aclnn测试通过) |