| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
torch_extension目录整改 Co-authored-by: qq_32807861<handongchen2@huawei.com> Co-authored-by: number-2-bo-bo<jinying22@huawei.com> # message auto-generated for no-merge-commit merge: !6881 merge torch_fix into master torch_extension目录整改 Created-by: jinyingbo Commit-by: number-2-bo-bo;qq_32807861 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> torch_extension目录整改 对外API命名整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/3130 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了attention/flash_attn/tests/pytests/readme.md,attention/mixed_quant_sparse_flash_mla/README.md,attention/sparse_flash_mla/README.md torch_extension/cann_ops_transformer/docs ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!6881 | 1 个月前 | |
refactor: eliminate duplicate code in flash_attn GQA kernels via variable renaming Co-authored-by: linengyao<linengyao@huawei.com> # message auto-generated for no-merge-commit merge: !8020 merge cleancode-0701 into master refactor: eliminate duplicate code in flash_attn GQA kernels via variable renaming Created-by: linengyao Commit-by: linengyao Merged-by: cann-robot Description: ## 描述 通过变量重命名消除 flash_attn GQA 核函数中 IterateBmm1DnSplitK 与 IterateBmm1Dn 之间的重复代码块。 ## 改动 - flash_attn_block_cube_noquant_gqa.h: IterateBmm1DnSplitK 中变量 mm1B->mm1BBuffer、mm1A->mm1ABuffer,消除与 IterateBmm1Dn 的文本重复 - flash_attn_block_vec_noquant_gqa.h: 局部变量声明顺序调整、CopyAttentionOut 中 if-else 分支顺序调整,保持逻辑等价 - flash_attn.cpp: FlashAttn 函数签名参数排版整理 ## 关联的Issue #3499 ## 测试 - 变量重命名不影响运行时行为,仅改变变量名 - if-else 分支顺序交换不影响逻辑等价性 - 不传新参数时原有行为不受影响 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [x] 重构 - [ ] 测试 - [ ] 构建/CI - [ ] 配置变更 - [ ] 文档更新 - [ ] 依赖升级 - [ ] 安全修复 - [x] 代码清理 - [ ] 其他 See merge request: cann/ops-transformer!8020 | 19 天前 | |
训推归一-flash_attn Co-authored-by: Yuanfeng_HW<yuanfeng24@huawei.com> # message auto-generated for no-merge-commit merge: !5014 merge 5/7-se into master 训推归一-flash_attn Created-by: Yuanfeng_HW Commit-by: Yuanfeng_HW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 需求:新增新接口算子flash_attn,该算子支持非量化场景下FA训练正向与推理功能 具体支持功能: 1、基础端到端功能,tiling + kernel + interface (继承 + 新开发) 1.1 基础layout layout_q: BSND dtype_q BF16/FP16 layout_kv: BSND dtype_kv BF16/FP16 layout_out: BSND dtype_out BF16/FP16 1.2 使用aicpu MetaData 输入进行负载均衡调度 1.3 Metadata参数支持不传 1.4 PTA接口放Transformer仓 2、支持 seqused_q, seqused_kv (继承 + int32 适配) 3、 layout 泛化支持(含PageAttention)(继承 + cu_seqlens_q、cu_seqlens_kv shape dtype 适配 ) 4、mask 支持 mode 1 , 3 5、支持行无效 (继承) 6、softmax_scale 支持None输入(新开发) 7、支持softmaxLse 输出,支持全量layout (继承功能) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2336 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5014 | 2 个月前 | |
flash attn switch to static tensor Co-authored-by: jiang-lirui<jianglirui1@huawei.com> # message auto-generated for no-merge-commit merge: !8881 merge static_tensor_0717 into master flash attn switch to static tensor Created-by: jiang-lirui Commit-by: jiang-lirui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8881 | 1 天前 | |
flash attn switch to static tensor Co-authored-by: jiang-lirui<jianglirui1@huawei.com> # message auto-generated for no-merge-commit merge: !8881 merge static_tensor_0717 into master flash attn switch to static tensor Created-by: jiang-lirui Commit-by: jiang-lirui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8881 | 1 天前 | |
feat: flash_attn non-quant path kvcache non-contiguous stride support Co-authored-by: linengyao<linengyao@huawei.com> # message auto-generated for no-merge-commit merge: !7890 merge flash_attn-nc into master feat: flash_attn non-quant path kvcache non-contiguous stride support Created-by: linengyao Commit-by: linengyao Merged-by: cann-robot Description: ## 描述 参考 cann/ops-transformer#6883,为 flash_attn 算子的非量化路径增加 kvcache(key/value)非连续 stride 支持。当 KV cache 为非连续(tensor v2 view)输入时,kernel 按真实 stride 计算 GM 偏移,避免框架将其强制拷贝为连续。flash_attn 仅有非量化路径,故 #6430 的 mxfp8 全量化专属改动不在本次范围。 ## 改动 - op_host/fa_tiling_info.h:FaTilingInfo 增加 keyStrides/valueStrides/isTensorV1 - op_host/flash_attn_tiling_info_parser.{h,cpp}:新增 GetStrides(),用 InputIsView 区分 tensor v1/v2,GetInputStride 取 key/value stride,回填 FaTilingInfo - op_host/arch35/flash_attn_tiling.cpp:SetFATilingData 在 tensor v2 时把 GetStride(0)/GetStride(1) 写入 tiling data 的 keyStrides/valueStrides - op_kernel/arch35/flash_attn_tiling_data.h:FlashAttnBaseParams 增加 keyStrides/valueStrides - op_host/flash_attn_def.cpp:key/value 输入由 AutoContiguous 改为 IgnoreContiguous,使框架不再强制连续 - op_host/checkers/base_checker.{h,cpp}:新增 CheckTensorContiguous,逐维比对 stride 定位首个非连续维 - op_host/checkers/common_checker.{h,cpp}:新增 CheckKVContiguous(非 PA 必须连续;PA_BBND 仅允许 dim0 非连续;PA_BNBD/PA_NZ 仅允许 dim0/dim1 非连续),在 CheckMultiPara 中调用 - op_kernel/utils/flash_attn_common_def.h:PAConstInfo 增加 keyStrides/valueStrides - op_kernel/arch35/flash_attn_kernel_noquant_gqa.h:InitConstInfo 将 stride 从 tiling data 拷贝到 constInfo - op_kernel/arch35/flash_attn_block_cube_noquant_gqa.h:InitKVBuffer 增加 stride 形参并透传给 offsetCalculator.Init(PA_BNBD/PA_NZ) ## 关联的Issue #3435 ## 测试 - 连续输入(tensor v1 / 连续 tensor)时 isTensorV1/stride=0 路径保持原有连续行为不变,不影响存量场景 - flash_attn 无量化、无 key_rope 输入,故未涉及 kRope / 量化 scale 的 stride - 受限于本地无 CANN 工具链,UT / Example 待在 Linux 环境编译验证 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!7890 | 9 天前 | |
训推归一_flash_attn_后续修改 Co-authored-by: Yuanfeng_HW<yuanfeng24@huawei.com> # message auto-generated for no-merge-commit merge: !5384 merge push_flash_attn into master 训推归一_flash_attn_后续修改 Created-by: Yuanfeng_HW Commit-by: Yuanfeng_HW Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 需求:新增新接口算子flash_attn,该算子支持非量化场景下FA训练正向与推理功能 具体支持功能: 1、基础端到端功能,tiling + kernel + interface (继承 + 新开发) 1.1 基础layout layout_q: BSND dtype_q BF16/FP16 layout_kv: BSND dtype_kv BF16/FP16 layout_out: BSND dtype_out BF16/FP16 1.2 使用aicpu MetaData 输入进行负载均衡调度 1.3 Metadata参数支持不传 1.4 PTA接口放Transformer仓 2、支持 seqused_q, seqused_kv (继承 + int32 适配) 3、 layout 泛化支持(含PageAttention)(继承 + cu_seqlens_q、cu_seqlens_kv shape dtype 适配 ) 4、mask 支持 mode 1 , 3 5、支持行无效 (继承) 6、softmax_scale 支持None输入(新开发) 7、支持softmaxLse 输出,支持全量layout (继承功能) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2336 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!5384 | 2 个月前 |