文件最后提交记录最后更新时间
更新recurrent_gated_delta_rule 输入范围要求 Co-authored-by: shasha_an<anshasha@hisilicon.com> # message auto-generated for no-merge-commit merge: !4355 merge master into master 更新recurrent_gated_delta_rule 输入范围要求 Created-by: aiyang4 Commit-by: shasha_an Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新用户输入query,key范围要求 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1939 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 暂无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/recurrent_gated_delta_rule/tests/pytest/README.md attention/recurrent_gated_delta_rule/docs/aclnnRecurrentGatedDeltaRule.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43551 个月前
【attention】将!= None 改为 is not None Co-authored-by: xtqh<quxuetong@huawei.com> # message auto-generated for no-merge-commit merge: !5167 merge master into master 【attention】将!= None 改为 is not None Created-by: xtqh Commit-by: xtqh Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!516721 天前
recurrent_gated_delta_rule 支持ascend950 Co-authored-by: aiyang2<aiyang2@huawei.com> # message auto-generated for no-merge-commit merge: !3329 merge master into master recurrent_gated_delta_rule 支持ascend950 Created-by: aiyang4 Commit-by: aiyang2 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A5 新增支持recurrent_gated_delta_rule算子 recurrent_gated_delta_rule算子新增pytest测试框架 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1474 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地构造验证红线用例均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/recurrent_gated_delta_rule/tests/pytest/README.md attention/recurrent_gated_delta_rule/docs/aclnnRecurrentGatedDeltaRule.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!33292 个月前
更新recurrent_gated_delta_rule 输入范围要求 Co-authored-by: shasha_an<anshasha@hisilicon.com> # message auto-generated for no-merge-commit merge: !4355 merge master into master 更新recurrent_gated_delta_rule 输入范围要求 Created-by: aiyang4 Commit-by: shasha_an Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新用户输入query,key范围要求 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1939 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 暂无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/recurrent_gated_delta_rule/tests/pytest/README.md attention/recurrent_gated_delta_rule/docs/aclnnRecurrentGatedDeltaRule.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43551 个月前
更新recurrent_gated_delta_rule 输入范围要求 Co-authored-by: shasha_an<anshasha@hisilicon.com> # message auto-generated for no-merge-commit merge: !4355 merge master into master 更新recurrent_gated_delta_rule 输入范围要求 Created-by: aiyang4 Commit-by: shasha_an Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新用户输入query,key范围要求 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1939 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 暂无 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/recurrent_gated_delta_rule/tests/pytest/README.md attention/recurrent_gated_delta_rule/docs/aclnnRecurrentGatedDeltaRule.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43551 个月前
renew pytest rdv case Co-authored-by: aiyang2<aiyang2@huawei.com> # message auto-generated for no-merge-commit merge: !4155 merge master into master renew pytest rdv case Created-by: aiyang4 Commit-by: aiyang2 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> recurrent_gated_delta_rule算子新增pytest rdv用例验证 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1863 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> attention/recurrent_gated_delta_rule/tests/pytest/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!41551 个月前
renew recurrent_gated_delta_rule docs Co-authored-by: aiyang2<aiyang2@huawei.com> # message auto-generated for no-merge-commit merge: !4306 merge master into master renew recurrent_gated_delta_rule docs Created-by: aiyang4 Commit-by: aiyang2 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 更新recurrent_gated_delta_rule example文档 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/1933 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43061 个月前
README.md

Recurrent_gated_delta_rule算子测试框架

功能说明

基于pytest测试框架,实现Recurrent_gated_delta_rule算子的功能验证:

  • CPU侧:复现算子功能用以生成golden数据
  • NPU侧:通过torch_npu进行算子直调获取实际数据
  • 精度对比:进行CPU与NPU结果的精度对比验证算子功能

当前实现范围

参数限制

  • 支持batch_size大于0。
  • 支持mtp为1~8。
  • 支持NK、Nv小于等于256,Nv大于等于Nk且Nv需整除Nk。
  • 支持Dk、Dv小于等于512。
  • 支持actual_seq_lengths输入,长度为batch_size。
    • actual_seq_lengths中数值需大于等于0且小于等于mtp。
    • 不指定输入时,默认传入长度为batch_size,数值为mtp的数组。
    • T等于actual_seq_lengths所有元素之和。
  • 支持ssm_state_indices输入,长度为T。
    • ssm_state_indices中数值需小于block_num。
    • 不指定输入时默认长度为[0,1,...,T-1]。
  • 支持block_num手动传入,需大于等于T。
  • 支持data_type为BF16。
  • 支持query_datarange左区间最小为-1,右区间最大为1。
  • 支持key_datarange左区间最小为-1,右区间最大为1。
  • 支持gamma_datarange右区间最大为0。
  • 支持gamma_k_datarange右区间最大为0。
  • 支持beta_datarange左区间最小为0,右区间最大为1。

环境配置

前置要求

  1. torch_npu安装包下载路径(需及时更换为最新版本):torch_npu安装教程
  2. 完成环境安装和环境变量配置,具体操作请参考:ops-transformer

custom包调用

支持custom包调用

文件结构

pytest文件结构说明

  • test_run.sh # 执行脚本
  • recurrent_gated_delta_rule_golden.py # cpu侧算子golden实现以及cpu golden与npu结果精度对比
  • pytest.ini # 创建ci单算子和graph图模式的测试标记

单用例测试:

  • test_recurrent_gated_delta_rule_single.py # 测试单用例运行主程序
  • recurrent_gated_delta_rule_operator_single.py # CPU侧算子逻辑实现获取golden与npu算子直调
  • test_recurrent_gated_delta_rule_paramset.py # 单用例入参配置
  • test_recurrent_gated_delta_rule_paramset_rdv.py # RDV测试入参配置

使用方法

在pytest文件夹路径下执行:

运行测试用例

单用例调测

1、手动配置test_recurrent_gated_delta_rule_paramset.py的参数

2、执行指令:

bash test_run.sh single

RDV测试

1、手动配置test_recurrent_gated_delta_rule_paramset_rdv.py的参数

2、执行指令:

bash test_run.sh rdv