| fix: clean stale zip files in CI build script Co-authored-by: root<1302896824@qq.com> # message auto-generated for no-merge-commit merge: !307 merge fix/ci-clean-stale-zip into master fix: clean stale zip files in CI build script Created-by: zhanghua145 Commit-by: root Merged-by: cann-robot Description: ## 问题描述 .ci/build.sh 在清理旧构建产物时只删除了 build/ 和 build_out/ 目录,但没有清理之前生成的 build_out_*.zip 文件。当 CI 容器被复用时,旧 zip 残留导致 OBS 上传失败。 ## 问题机制 ### zip 文件是怎么产生的 .ci/build.sh 在编译安装完成后,会将 build_out/ 目录打包为 zip 文件,供 CI 流水线上传到 OBS 作为构建产物: bash # .ci/build.sh 第 46-50 行 GIT_HASH=$(git rev-parse --short HEAD) PACKAGE_NAME="build_out_${NPU_ARCH}_${GIT_HASH}.zip" zip -r "$PACKAGE_NAME" build_out zip 文件名包含 git commit hash,用于区分不同版本的构建产物。 ### 为什么会有多个 zip 残留 CI 流水线编译 PR 时,会先将 PR 分支 merge 到 master 生成一个 **merge commit**。这个 merge commit 的 hash 每次 CI 运行都不同(即使代码没有变化),因此每次生成的 zip 文件名也不同: 第 1 次 CI:build_out_dav-3510_abc1234.zip 第 2 次 CI:build_out_dav-3510_def5678.zip ← 不同 hash,无法覆盖旧文件 第 3 次 CI:build_out_dav-3510_ghi9012.zip ← 又不同 而 .ci/build.sh 的清理阶段只删除了 build/ 和 build_out/,**没有清理 build_out_*.zip**: bash # .ci/build.sh 第 32-34 行 rm -rf build rm -rf build_out # ← 缺少 rm -f build_out_*.zip 当 CI 容器被复用时,工作目录中保留了上次运行生成的 zip 文件,新 zip 生成后目录中同时存在多个 zip。 ### 为什么 OBS 上传会失败 CI 流水线的 OBS 上传步骤使用 glob 模式匹配构建产物。当目录中存在多个 zip 文件时,匹配到多个文件,OBS 配置要求只上传单个文件,报错: [ERROR] OBS 存储文件名不为空时,只可上传单个文件 [ERROR] 该步骤执行失败,错误信息:failed to upload Finished: FAILURE **此时编译本身已经成功完成**(日志中可见 build success),失败仅发生在最后的产物上传阶段。 ## 偶发性 此问题是**偶发的**,取决于 CI 是否分配到复用的容器: - **干净容器**:工作目录为空,无旧 zip 残留,CI 正常通过 - **复用容器**:工作目录中残留上次运行的 zip,新 zip 生成后出现多个 zip,OBS 上传失败 容器分配由 CI 平台调度,开发者无法控制。同一个 PR 反复触发 CI,可能有时通过有时失败,表现不稳定。 ## 发生后的影响 1. **CI 资源浪费**:每次 CI 运行包含 12 个编译任务,编译阶段实际已全部成功,仅在最后的上传阶段失败,意味着整次运行的计算资源(约 40-70 分钟)全部浪费 2. **开发效率降低**:开发者看到 CI 失败后需要排查原因、重新触发,反复等待,单次 PR 的 CI 总耗时可达数小时 3. **问题难以定位**:由于是偶发失败,开发者容易误以为是代码问题,花费时间排查不相关的改动 ## 修复方案 在 .ci/build.sh 的清理阶段增加一行,确保无论容器是否复用,工作目录中只存在本次构建生成的 zip 文件: diff # 清理旧的构建产物 rm -rf build rm -rf build_out +rm -f build_out_*.zip Closes #207 See merge request: cann/cann-samples!307 | 2 个月前 |
| docs: 添加 GitCode Issue 和 PR 模板配置 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !25 merge master into master docs: 添加 GitCode Issue 和 PR 模板配置 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: docs: 添加 GitCode Issue 和 PR 模板配置 添加了 .gitcode/ 目录,包含 Issue 模板(bug-report.yml、documentation.yml、feature-request.yml、question.yml)和中文 Pull Request 模板(PULL_REQUEST_TEMPLATE.zh-CN.md) 文档更新: - 添加 ISSUE_TEMPLATE 目录(4个Issue模板文件) - 添加 PULL_REQUEST_TEMPLATE.zh-CN. 类型标签: - [x] 文档更新 See merge request: cann/ops-samples!25 | 6 个月前 |
| feat(simd_vf_story): 新增 elemwise、reduce 范式样例与 SIMD VF 性能调优 README Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !314 merge master into master feat(simd_vf_story): 新增 elemwise、reduce 范式样例与 SIMD VF 性能调优 README Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 基于已有 broadcast 逻辑模式样例,新增 elemwise(逐元素 AXPY)与 reduce(max/sum,ar/ra 双轴)两类 SIMD VF 计算范式样例,并补齐一篇覆盖 broadcast / elemwise / reduce 三类范式的性能调优 README(1155 行),用 cannsim trace 数据解释“同一算法不同写法的快慢与根因”。同时重构 simd_vf_story/CMakeLists.txt:由“每个 case 一个子 CMakeLists”改为顶层按 */src 目录自动发现 case、逐 .asc 文件生成可执行 target,并删除已无用的 broadcast/CMakeLists.txt。 ### 改动原因 simd_vf_story 此前只有 broadcast 逻辑模式样例,缺少“计算范式”维度(逐元素 / 归约)的可运行样例与系统化性能解释。开发者难以直观理解同一算法在 SIMD VF 内不同写法(baseline / 手写多累加器展开 / #pragma unroll / 二分折叠)的快慢差异与根因(throughput-bound vs latency-bound)。 ### 改动方法 - include/vf_common.h:抽出 16 个 .asc 共用的统一规格 [D0,D1]=[78,250](N=19500)、固定种子随机输入 GenInput、绝对/相对容差比对 VerifyAbs/VerifyRel、CHECK_ACL 宏。 - elemwise(AXPY z=a*x+y):baseline / 手写 unroll×4 / #pragma unroll 4 三种写法;结论为 throughput-bound,baseline 已最优,展开几乎无差异(约 −2%~−3%)。 - reduce:reduce_max 与 reduce_sum 各覆盖 ar(行内归约)/ ra(跨行归约)双轴,写法含 baseline / 多累加器 unroll / #pragma unroll,reduce_sum_ar 额外提供 binary 二分折叠;结论为 latency-bound,多累加器藏延迟最高 +51.9%、二分约 2×(+51.5%)。 - CMakeLists.txt:函数 add_simd_vf_story_case 改为按 <case>/src/*.asc GLOB,顶层按 */src 自动发现 case,保留 build/.../<case>/<target> 输出布局;删除 broadcast/CMakeLists.txt。 - 新增 README.md(1155 行)及 elemwise/reduce 的 SVG 配图。 ## 关联的Issue - #208 https://gitcode.com/cann/cann-samples/issues/208 ## 测试 - 每个样例自带 host 侧 golden 校验:reduce_sum 用 double 累加 + 相对容差 |got-ref| ≤ 1e-3·(|ref|+1)、输入 [-1,1);reduce_max / elemwise 用绝对容差;运行末行打印 PASSED / FAILED。 - 构建:cmake -S . -B build -DNPU_ARCH=dav-3510,支持单文件 target / 单 case target / 全量 simd_vf_story target。 - 性能:cannsim record ... -s Ascend950 --gen-report 采集 trace,对比 VF count、PUSHQ VF cycles、MTE2/MTE3 sum_cycles、RVECEX 关键指令。 ## 文档更新 - 新增 simd_vf_story/README.md(1155 行,三部分:broadcast / elemwise / reduce)。 - 新增 elemwise/images/elemwise.svg 与 reduce/images/{ar_vs_ra,binary_fold,dep_chain,latency_hiding}.svg。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!314 | 2 个月前 |
| Add MXFP8FP4 weight quant matmul sample Co-authored-by: xubinglin<xubinglin@huawei.com> # message auto-generated for no-merge-commit merge: !276 merge mm_mxfp8fp4_swat_version into master Add MXFP8FP4 weight quant matmul sample Created-by: xubinglin Commit-by: xubinglin Merged-by: cann-robot Description: ## 描述 本 PR 新增 matmul_recipes 下的 MXFP8FP4 权重量化矩阵乘样例,支持 MXFP8 输入、packed MXFP4 NZ 权重、E8M0 scale、BF16 输出。 主要改动包括: - 新增两个 target,通过 target 固定 2-buffer / 4-buffer 配置: - weight_quant_matmul_mxfp8fp4 - weight_quant_matmul_mxfp8fp4_swat_4_buffer - 新增 MXFP8FP4 对应的 host tiling、kernel universal 特化、block scheduler、block MMAD、weight prologue 和 weight copy helper。 - 使用 compact tail split 调度有效 tile,避免 scheduler 产生 zero block shape。 - 简化 tiling data,使用 tileShapeKL1 / tileShapeScaleKL1 表达 L1 K 与 scale K extent,buffer 数由 target/dispatch policy 固定。 - 新增 gen_data.py 与 verify_result.py,支持样例数据生成和 NPU 输出校验。 - 更新 CMake 安装逻辑和 README,接入 matmul recipe 样例目录。 ## 关联的Issue [#190](https://gitcode.com/cann/cann-samples/issues/190) ## 测试 - 格式化:对.h / .asc 文件执行仓库 clang-format 规则。 - 编译验证: - cmake --build build --target weight_quant_matmul_mxfp8fp4 weight_quant_matmul_mxfp8fp4_swat_4_buffer --parallel - Host tiling 泛化: - 2buf/4buf 合计 2,000,000 条合法 shape,全部 PASS。 - NPU 精度泛化: - 合计执行 5,000 条 resource-gated shape,全部 PASS。 - weight_quant_matmul_mxfp8fp4: 2,500 PASS - weight_quant_matmul_mxfp8fp4_swat_4_buffer: 2,500 PASS - msprof 性能扫点: - shape:k=4096,n=8192,m=1,2,4,8,16,32,64,128,256,384,512,768,1024 - warmup 1 次,repeat 3 次。 - 两个 target 均为 39/39 PASS。 ## 文档更新 - 更新 Samples/2_Performance/matmul_story/README.md - 更新 Samples/2_Performance/matmul_story/matmul_recipes/README.md - 新增 Samples/2_Performance/matmul_story/matmul_recipes/examples/weight_quant_matmul_mxfp8fp4/README.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!276 | 2 个月前 |
| test: add minimal functional CI runner and manifest Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !88 merge test/phase1-manifest into master test: add minimal functional CI runner and manifest Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 本 PR 为 cann-samples 增加一套最小可落地的功能测试 CI 原型,目标是从“仅看护编译不失败”推进到“具备统一执行入口和最小功能回归能力”。 本次改动包括: - 新增功能测试执行入口: - .ci/run_ci_functional.sh - .ci/run_ci_functional.py - 新增最小功能测试清单: - tests/ci_functional_test.yaml - 新增测试与 CI 文档: - .ci/README.md - tests/README.md - 修复 hif8 安装目录结构,保留 scripts/ 子目录,使安装树与源码、README、CI 清单保持一致 - 拆分 CI runner 依赖到 .ci/requirements.txt 当前方案刻意保持最小化: - .ci/ 只负责执行入口 - tests/ 只负责测试清单资产 - manifest 只保留最小契约:id、setup、steps、pass_criteria 当前纳入功能测试清单的样例: - vector_add - matmul_basic - hif8_quantize ## 关联的Issue https://gitcode.com/cann/cann-samples/issues/33 ## 测试 本地已完成静态验证: - python3 -m py_compile .ci/run_ci_functional.py - bash -n .ci/build.sh - bash -n .ci/run_ci_functional.sh 依赖安装方式: bash pip install -r requirements.txt pip install -r .ci/requirements.txt ## 文档更新 已更新: - .ci/README.md - tests/README.md - Samples/1_Features/hardware_features/hif8/README.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:新增最小功能测试 CI 原型与测试清单 See merge request: cann/cann-samples!88 | 5 个月前 |
| hifloat8 recipe Co-authored-by: Hu1L1<chenshujian5@huawei.com> # message auto-generated for no-merge-commit merge: !228 merge hifp8 into master hifloat8 recipe Created-by: Hu1L1 Commit-by: Hu1L1 Merged-by: cann-robot Description: ## 描述 本 PR 交付 **HiFloat8(A8W8)量化矩阵乘** 在 matmul_recipes 中的参考实现与 **examples/matmul_hifp8** 端到端样例能力。 **原因**:需要在 ops-samples 内提供与现有 matmul 策略并列的 HiFloat8 路径,覆盖 host tiling、block 调度、AscendC kernel 与 golden 校验,便于学习、演示与回归。 **方法概要**: - Host 侧:A8W8 tiling 与统一 **quant matmul tiling base** 对齐(上下文初始化、QuantMatmulA8W8TilingData 调试输出等),保证与其它策略一致的可维护性。 - Block / Kernel:量化 batch matmul 调度模板仅保留与输入、transpose、负载模式相关的参数 - 样例:matmul_hifp8 TT/TC 等入口、脚本生成数据与比对;**首版范围为单 batch**,tiling–kernel 约定不承载多 batch 偏移。 - 脚本:gen_data.py 中 transA 与 transB **须同时指定或同时省略**,省略时默认 **transA=false、transB=true**。 ## 关联的Issue <!-- 例如:https://gitcode.com/xxx/ops-samples/issues/123 --> https://gitcode.com/cann/cann-samples/issues/164 ## 测试 - 本地编译 matmul_hifp8 相关目标通过。 - 运行 matmul_hifp8 样例流程(含数据生成脚本、NPU 执行与 CPU golden 比对)通过。 - 盖 TT/TC 等已有入口及典型 M/N/K、transpose 组合。 ## 文档更新 Samples/2_Performance/matmul_story/README.md Samples/2_Performance/matmul_story/matmul_recipes/README.md Samples/2_Performance/matmul_story/matmul_recipes/examples/quant_matmul_hifp8/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!228 | 3 个月前 |
| init commit | 6 个月前 |
| add performance mxfp4 tiling Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge master into master add performance mxfp4 tiling Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 performance mxfp4 添加 tiling & 切换为 tensor api 接口 ## 关联的Issue [#36](https://gitcode.com/cann/cann-samples/issues/36) ## 测试 自测试,精度 pass cmake -S . -B build cmake --build build --parallel cmake --install build --prefix ./build_out 执行: python3 build_out/2_Performance/matmul_story/matmul_stubs/examples/quant_matmul_mxfp4/gen_data.py 8192 16384 8192 ./build_out/2_Performance/matmul_story/matmul_stubs/examples/quant_matmul_mxfp4/quant_matmul_mxfp4_swat 8192 16384 8192 ## 文档更新 2_Performance\matmul_story\matmul_recipes\examples\quant_matmul_mxfp4\README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!55 | 5 个月前 |
| submodule引入tensorapi源码并适配所有sample Co-authored-by: chen-shuai<chenshuai96@huawei.com> # message auto-generated for no-merge-commit merge: !207 merge submodule_tensorapi into master submodule引入tensorapi源码并适配所有sample Created-by: chen-shuai Commit-by: chen-shuai Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 将 tensor_api 从仓内源码方式调整为 Git submodule 引入,并同步适配 samples 中使用 Tensor API 的代码。 ### 主要改动 1. 引入 ops-tensor submodule - 新增 third_party/tensor_api submodule - submodule 地址:https://gitcode.com/cann/ops-tensor.git - 跟踪分支:master 2. 调整 CMake 依赖初始化 - 在 cmake/tensor_api.cmake 中增加 submodule 自动初始化逻辑 - 编译前通过 git submodule update --init --recursive third_party/tensor_api 拉取依赖 - 将 Tensor API include 路径调整为 third_party/tensor_api/include/tensor_api 3. 适配新 Tensor API 接口 - 更新 Samples/0_Introduction、Samples/1_Features、Samples/2_Performance 中使用 Tensor API 的样例 - include/tensor.h 调整为 include/tensor_api/tensor.h - Make*memPtr 迁移为 MakeMemPtr<Location::*> - Make*Layout 迁移为 MakeFrameLayout - Tensor 切片调用迁移为 .Slice(...) - CopyL12L0 拆分适配为 CopyL12L0A / CopyL12L0B - MakeMad / Mad 迁移为 MakeMmad / Mmad - MmadParams 调整到 AscendC::Te 命名空间 4. 适配 Matmul / Grouped Matmul MX 样例 - 更新 MX 量化 Matmul、Grouped Matmul 相关 block/kernel/tile 实现 - 移除仓内旧版 copy_scale_gm_to_l1.h 实现,改为使用新版 Tensor API 能力 - 调整 MX MMAD trait 与相关 layout/memory pointer 使用方式 5. 补充 Ascend include 路径 - cmake/ascend.cmake 中新增 ${ASCEND_DIR}/asc include 路径 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/cann-samples/issues/140 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 回归所有sample精度 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!207 | 4 个月前 |
| 支持通过 NPU_ARCH 配置样例编译架构 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !208 merge codex/npu-arch-simplify into master 支持通过 NPU_ARCH 配置样例编译架构 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 本 PR 简化 NPU_ARCH 配置方式: - 根 CMake 增加 NPU_ARCH 必填和合法性校验,支持 dav-3510、dav-2201。 - 各 sample 入口 CMake 本地声明支持架构,不支持当前 NPU_ARCH 时在配置阶段跳过,不创建 target、不参与编译和安装。 - 将 AscendC 编译参数中的固定 --npu-arch=dav-3510 改为 --npu-arch=${NPU_ARCH}。 - 更新 CI 构建脚本,支持通过参数选择目标 NPU 架构: - 编译 Ascend950 时使用 dav-3510:bash .ci/build.sh dav-3510。 - 编译 Ascend910B/C 时使用 dav-2201:bash .ci/build.sh dav-2201。 - 未传参数时默认使用 dav-3510,即 bash .ci/build.sh 等价于 bash .ci/build.sh dav-3510,兼容现有 CI 平台调用。 - 同步更新 README、CONTRIBUTING 和各样例 README / run.sh 中的构建命令;项目 README 明确说明 Ascend950 对应 dav-3510、Ascend910B/C 对应 dav-2201,并以 Ascend950 为例给出 CMake 配置命令。 ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/133 - https://gitcode.com/cann/cann-samples/issues/125 ## 测试 - 本地静态检查:确认非 third_party 文档中不再存在未带 NPU_ARCH 的根工程 cmake 配置示例,确认 CMake 中不再存在 --npu-arch=dav-3510。 - 本地脚本检查:bash -n .ci/build.sh 及相关 run.sh,git diff --check。 - 远端 Ascend950:/home/zhangzijie/workspace/cann-samples-fork: - cmake -S . -B build:按预期报缺少 NPU_ARCH,并提示示例命令。 - cmake -S . -B build -DNPU_ARCH=invalid:按预期报非法 NPU_ARCH。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build -DNPU_ARCH=dav-3510 && cmake --build build --parallel:通过。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build_dav2201_test -DNPU_ARCH=dav-2201 && cmake --build build_dav2201_test --parallel && cmake --build build_dav2201_test --target help:通过,仅 vector_add 生效。 - ./build/Samples/0_Introduction/vector_add/vector_add:通过,输出 Vector add completed successfully!。 - ./build/Samples/0_Introduction/matmul/matmul 100 50 200:通过,输出 matmul run successfully!。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh:通过,默认 dav-3510,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-3510:通过,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-2201:通过,仅打包 vector_add,生成并校验 build_out_dav-2201_21ae5b4.zip。 ## 文档更新 更新 README.md、CONTRIBUTING.md、相关 Samples README 和调用 .ci/build.sh 的 run.sh。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!208 | 4 个月前 |
| 支持通过 NPU_ARCH 配置样例编译架构 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !208 merge codex/npu-arch-simplify into master 支持通过 NPU_ARCH 配置样例编译架构 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 描述 本 PR 简化 NPU_ARCH 配置方式: - 根 CMake 增加 NPU_ARCH 必填和合法性校验,支持 dav-3510、dav-2201。 - 各 sample 入口 CMake 本地声明支持架构,不支持当前 NPU_ARCH 时在配置阶段跳过,不创建 target、不参与编译和安装。 - 将 AscendC 编译参数中的固定 --npu-arch=dav-3510 改为 --npu-arch=${NPU_ARCH}。 - 更新 CI 构建脚本,支持通过参数选择目标 NPU 架构: - 编译 Ascend950 时使用 dav-3510:bash .ci/build.sh dav-3510。 - 编译 Ascend910B/C 时使用 dav-2201:bash .ci/build.sh dav-2201。 - 未传参数时默认使用 dav-3510,即 bash .ci/build.sh 等价于 bash .ci/build.sh dav-3510,兼容现有 CI 平台调用。 - 同步更新 README、CONTRIBUTING 和各样例 README / run.sh 中的构建命令;项目 README 明确说明 Ascend950 对应 dav-3510、Ascend910B/C 对应 dav-2201,并以 Ascend950 为例给出 CMake 配置命令。 ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/133 - https://gitcode.com/cann/cann-samples/issues/125 ## 测试 - 本地静态检查:确认非 third_party 文档中不再存在未带 NPU_ARCH 的根工程 cmake 配置示例,确认 CMake 中不再存在 --npu-arch=dav-3510。 - 本地脚本检查:bash -n .ci/build.sh 及相关 run.sh,git diff --check。 - 远端 Ascend950:/home/zhangzijie/workspace/cann-samples-fork: - cmake -S . -B build:按预期报缺少 NPU_ARCH,并提示示例命令。 - cmake -S . -B build -DNPU_ARCH=invalid:按预期报非法 NPU_ARCH。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build -DNPU_ARCH=dav-3510 && cmake --build build --parallel:通过。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && cmake -S . -B build_dav2201_test -DNPU_ARCH=dav-2201 && cmake --build build_dav2201_test --parallel && cmake --build build_dav2201_test --target help:通过,仅 vector_add 生效。 - ./build/Samples/0_Introduction/vector_add/vector_add:通过,输出 Vector add completed successfully!。 - ./build/Samples/0_Introduction/matmul/matmul 100 50 200:通过,输出 matmul run successfully!。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh:通过,默认 dav-3510,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-3510:通过,生成并校验 build_out_dav-3510_21ae5b4.zip。 - source /home/zhangzijie/Ascend/ascend-toolkit/set_env.sh && bash .ci/build.sh dav-2201:通过,仅打包 vector_add,生成并校验 build_out_dav-2201_21ae5b4.zip。 ## 文档更新 更新 README.md、CONTRIBUTING.md、相关 Samples README 和调用 .ci/build.sh 的 run.sh。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!208 | 4 个月前 |
| init commit | 6 个月前 |
| 规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !134 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!134 | 5 个月前 |
| docs: update verified CANN Toolkit versions with 9.1.0 support Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !262 merge update/cann-toolkit-verified-versions into master docs: update verified CANN Toolkit versions with 9.1.0 support Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: See merge request: cann/cann-samples!262 | 3 个月前 |
| init commit | 6 个月前 |
| init commit | 6 个月前 |
| init commit | 6 个月前 |
| Clean up MXFP4 timing and verification flows Co-authored-by: smdbha<panzhijie2@huawei.com> # message auto-generated for no-merge-commit merge: !132 merge master into master Clean up MXFP4 timing and verification flows Created-by: smdbha Commit-by: smdbha Merged-by: cann-robot Description: ## 描述 本 PR 对 Samples/2_Performance/matmul_story 中 MXFP4 相关样例做了一组问题修复和一致性整理,主要包括以下内容: 1. quant_matmul_mxfp4 示例移除基于 aclrtEvent 的计时逻辑: - quant_matmul_mxfp4_a_full_load.cpp - quant_matmul_mxfp4_swat.cpp 2. quant_matmul_mxfp4_algorithm_recommend.py 调整为通过 msprof 获取 kernel 耗时: - 使用 msprof --output=./msprof_recommend --application="./<executable> m k n" 采集 profiling 数据 - 每个候选算法执行两次,第一次用于预热,第二次作为最终耗时 - 从 msprof_recommend/PROF_*/mindstudio_profiler_output/op_summary_*.csv 中读取 Task Duration(us) 作为 kernel 耗时 - 推荐流程结束后自动清理 msprof_recommend 临时目录 3. matmul_tutorials 下所有 tutorial .cpp 删除基于 event 的计时代码,并补齐缺失的结果校验逻辑: - 统一删除 aclrtEvent 相关变量、创建、记录、统计和输出逻辑 - 对原先未执行 verify_result.py 的 tutorial 样例补充自动校验流程 4. 文档更新: - 更新 quant_matmul_mxfp4/README.md - 补充当前样例仅支持 A 不转置、B 转置,即 A 为 [M, K]、B 为 [N, K],两侧 K 轴位于内轴 - 同步更新算法推荐脚本基于 msprof 的行为说明 5. 依赖声明更新: - 修正 requirements.txt - 补充样例脚本实际使用到的 Python 依赖及版本信息 ## 关联的Issue 关联 Issue: https://gitcode.com/cann/cann-samples/issues/70 ## 测试 bash cmake -S . -B build cmake --build build --parallel cmake --install build --prefix ./build_out cd build_out/2_Performance/matmul_story/matmul_recipes/examples/quant_matmul_mxfp4 python3 quant_matmul_mxfp4_algorithm_recommend.py 256 256 256 ## 文档更新 本 PR 更新了以下文档/依赖说明: - Samples/2_Performance/matmul_story/matmul_recipes/examples/quant_matmul_mxfp4/README.md - requirements.txt ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:样例校验流程、profiling 脚本逻辑和 Python 依赖声明修正 See merge request: cann/cann-samples!132 | 5 个月前 |