Ccann-robot增加scalar优化原理与实践
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 | |
增加scalar优化原理与实践 Co-authored-by: luwei<luwei5@huawei.com> # message auto-generated for no-merge-commit merge: !234 merge master into master 增加scalar优化原理与实践 Created-by: luweikk Commit-by: luwei Merged-by: cann-robot Description: ## 描述 新增 Scalar 优化原理与实践长文,沉淀昇腾 NPU 上 ScalarBound 问题的成因分析、优化方法论与可量化的收益数据,补齐 Samples/2_Performance/ 中缺失的 Scalar 维度性能样例。 **新增内容(14 个文件,+870 行,纯文档)**: - Samples/2_Performance/scalar_story/README.md:约 870 行的中文系统性长文; - Samples/2_Performance/scalar_story/images/*.png:13 张原理与前后对比图。 **核心要点**: 1. **现状分析**:基于 Ascend 950 平台对 8000+ 用例的实测统计,ScalarBound 在 Cube/Mix 类算子中占比 **> 97%**;Load/Store 指令过多(占比 > 30%)是主因,根源在于编译器寄存器 spill。 2. **优化案例**: - **FusedInferAttentionScore**:通过 icache 预取、静态创建 LocalTensor、消除多级指针解引用等手段,**Scalar 耗时平均降低 33%,端到端性能平均提升 15%**; - **QuantBatchMatmul**:通过循环主尾块分离、局部变量替代成员变量、显式编写循环代码等手段,**Scalar 耗时平均降低 50%,端到端性能平均提升 10%**。 3. **方法论沉淀**: - 一套可落地的 ScalarBound 诊断流程; - **7 条 Scalar 高性能算子编码原则**:结构体内慎用数组、循环主尾块分离、显式编写循环代码、尽量使用局部变量、变量定义贴近使用位置、避免多级指针解引用、避免使用超大结构体。 ## 关联的Issue #157 ## 测试 - 仅新增 Markdown 文档与配图,不涉及代码、构建脚本与 CI 流程; - 已在本地核对 README 章节锚点与图片相对路径(./images/*.png)正确; - 文档中所有性能数据均来自 Ascend 950 + CANN 9.0 + msprof/cannsim 的实测采集,并在文档「4.1 实验环境」中显式标注采集环境。 ## 文档更新 - 新增:Samples/2_Performance/scalar_story/README.md - 新增:Samples/2_Performance/scalar_story/images/(13 张配图) - 与已有的 matmul_story、gather 等性能样例并列,形成更完整的性能调优知识库。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!234 | 2 个月前 |