| 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 | 1 个月前 |
| 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 | 5 个月前 |
| feat: 新增 RegBase/VF 编程模型入门样例 vector_function_add Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !369 merge master into master feat: 新增 RegBase/VF 编程模型入门样例 vector_function_add Created-by: songkai111 Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 新增 RegBase / Vector Function(VF)编程模型入门样例 vector_function_add,作为 RegBase 编程模型的 Hello World 可运行样例,与 [vector_add](../vector_add)(TQue / MemBase 模型)对照学习两种编程模型的差异。同时简化 vector_add kernel,合并主循环与尾块处理。 - **vector_function_add**:计算在 __simd_vf__ 函数中通过 AscendC::Reg::* API 在 Vector 寄存器上完成(Load -> Add -> Store,中间结果不往返 UB);UpdateMask 自动处理尾块;block / tile 两级切分支持多 Vector Core 并行;内置 CPU 精度对比。 - **vector_add/main.asc**:简化 kernel,合并主循环与尾块分支,用 tileElementNum 统一处理每轮 tile 元素数。 - **CMakeLists.txt / README.md**:注册并介绍新样例。 ## 关联的Issue - #244: 新增 RegBase / MemBase 编程模型的可运行样例 ## 测试 - 仅 Ascend 950(dav-3510)编译运行,dav-2201 自动跳过(cann_sample_check_arch(dav-3510))。 - 测试长度 409603(非寄存器宽度整数倍)验证 Mask 对尾块的自适应处理;样例内置 CPU 精度对比,成功时打印 Vector function add completed successfully!。 ## 文档更新 - Samples/0_Introduction/README.md:新增 vector_function_add 样例介绍 - Samples/0_Introduction/vector_function_add/README.md:新增样例使用说明 ## 类型标签 - [x] 新特性 - [ ] Bug修复 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!369 | 1 天前 |
| refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !352 merge master into master refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 29 个 sample CMakeLists.txt 中重复的架构校验样板(SUPPORTED_NPU_ARCHS + skip message)提取到 cmake/sample_common.cmake 的 cann_sample_check_arch() 宏中。 每个 leaf sample 的 CMakeLists.txt 从原来的 5 行 boilerplate 缩减为 1 行宏调用: cmake # Before (5 行) set(SUPPORTED_NPU_ARCHS dav-3510) file(RELATIVE_PATH SAMPLE_PATH ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) if(NOT "${NPU_ARCH}" IN_LIST SUPPORTED_NPU_ARCHS) message(STATUS "Skip sample ${SAMPLE_PATH}: NPU_ARCH=${NPU_ARCH} is not supported") return() endif() # After (1 行) cann_sample_check_arch(dav-3510) 变更涉及 30 个文件,净减少 144 行(185 删除,41 新增)。 ### 改动原因 49 个 sample CMakeLists.txt 中每个都独立实现了完全相同的架构校验逻辑,存在维护成本高和一致性衰减问题。这是 Issue #226 中提到的 CMake 样板代码重复问题的务实第一步。 ### 改动方法 - 新增 cmake/sample_common.cmake:定义 cann_sample_check_arch() 宏,封装架构校验逻辑 - 根 CMakeLists.txt 添加 include(cmake/sample_common.cmake) - 逐个迁移 29 个 leaf sample CMakeLists.txt(保留了三种架构配置:dav-3510、dav-2201、dav-2201 dav-3510) - 未修改中间 dispatcher CMakeLists.txt 和继承父级架构检查的子目录(如 matmul_tutorials) ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/226 ## 测试 - 远程 Git Hook 检查通过(推送前) - 代码逻辑等价替换,架构校验行为无变化 - 宏变量使用下划线前缀(_cann_sample_expected_archs、_cann_sample_path)避免与 sample 本地变量冲突 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:CMake 构建系统重构(消除重复样板代码) See merge request: cann/cann-samples!352 | 11 天前 |
| fix: 修复环境自检脚本依赖与版本校验缺陷 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !368 merge master into master fix: 修复环境自检脚本依赖与版本校验缺陷 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 修复环境自检脚本 scripts/check_env.py 的版本校验缺陷,并在 requirements.txt 中显式补充依赖声明: - **requirements.txt**:新增 numpy>=2.0,<3 与 torch>=2.0,避免按文档执行 pip3 install -r requirements.txt 后缺少 torch 依赖,导致环境自检无法正确检出缺失项。 - **scripts/check_env.py**:为 check_command 增加版本号解析与比较逻辑(_parse_version、_older_than),将命令输出版本与 min_version 进行比较,低于要求版本时输出 [FAIL] 并返回失败;同时修复版本查询超时/异常时误报失败的问题。 ## 关联的Issue - #243: requirements.txt 缺少 torch 依赖,导致 check_env.py 无法检出缺失 - #245: check_env.py 的 check_command 函数未实际比较版本号,min_version 参数被忽略 ## 测试 - 本地执行 python3 scripts/check_env.py:cmake/python3 满足最低版本时输出 [PASS],低于要求版本时输出 [FAIL] 且脚本退出码非 0。 - 安装 requirements.txt 后,check_python_deps 可正常检出 numpy 与 torch。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!368 | 1 天前 |
| docs: remove stale references to deleted ci_functional_test.yaml Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !353 merge master into master docs: remove stale references to deleted ci_functional_test.yaml Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 tests/ci_functional_test.yaml 已于 commit 3cc15b6 中被删除,导致 bash .ci/run_ci_functional.sh 等默认 CI 执行路径无法正常工作。同时指导文档中仍残留对该文件的引用,与仓库实际状态不一致。 本 PR 修复该问题: - 恢复 tests/ci_functional_test.yaml 清单文件,保留默认 CI 执行路径 - 还原 .ci/run_ci_functional.py 与 .ci/run_ci_functional.sh 的默认 manifest 配置 - 文档恢复正常引用,与文件实际存在状态保持一致 ## 关联的Issue - #228 ## 测试 - 验证默认执行路径可正常解析:python3 .ci/run_ci_functional.py --manifest tests/ci_functional_test.yaml - 验证仓库中 ci_functional_test.yaml 文件存在且引用正确 ## 文档更新 - tests/README.md:恢复主清单文件引用 - .ci/README.md:恢复清单文件说明与命令示例 ## 类型标签 - [x] Bug修复 - [x] 文档更新 See merge request: cann/cann-samples!353 | 11 天前 |
| fix(2_Performance): 修复 simd_vf 成员函数导致的 dav-3510 编译错误 Co-authored-by: zhangzijie<zhangzijie11@hisilicon.com> # message auto-generated for no-merge-commit merge: !362 merge fix/ci-build-compile-errors into master fix(2_Performance): 修复 simd_vf 成员函数导致的 dav-3510 编译错误 Created-by: zhangzijie Commit-by: zhangzijie Merged-by: cann-robot Description: ## 问题 bash .ci/build.sh(dav-3510)在 master 上编译失败,bisheng 编译器报 11 处错误: error: simd_vf function 'XXX' must be a free function or static member function 涉及 2 个样例、5 个文件: - Samples/2_Performance/rms_norm_quant_story/src/{3_vf,4_double_buffer,5_ub_utilization,6_binary_sum}.asc - Samples/2_Performance/kv_rms_norm_rope_cache_story/regbase/full_load.asc ## 修复方案 按照 Samples/1_Features/hardware_features/simd_vf_constraints 示例给出的约束与推荐写法,将 __simd_vf__ 成员函数改为文件作用域的**自由函数模板**,原来隐式依赖的对象成员状态(tilingData_、scale_、offset_、rInv_、vfLoopRNum_、rAlign_、dvLoop_ 等)全部改为显式参数传入,函数体逻辑保持不变。 注意:原代码在循环后对 count 标量的重新赋值(如 r = tilingData_->r;)不是冗余代码——AscendC::Reg::UpdateMask 会破坏 count 标量寄存器,重新赋值是保证循环后掩码正确的必要写法。重构后以「从按值参数重新赋值」的方式等价保留(并加了注释)。实测若删除该重新赋值,NPU 上精度从 100% 降至 ~15%(最终 ReduceSum 掩码错误导致 rms 计算失效、int8 量化饱和)。 ## 验证 - bash .ci/build.sh dav-3510 ✅ 通过(0 error,打包成功) - bash .ci/build.sh dav-2201 ✅ 通过(两个样例为 dav-3510 专有,按预期 skip) - 在真实 NPU 上运行全部 5 个修复样例,golden 数据比对: - rms_norm_quant_{3_vf,4_double_buffer,5_ub_utilization,6_binary_sum}:Precision 100%,Compare Difference length 0 - kv_rms_norm_rope_cache_regbase_full_load:k/v cache、k/v out 全部 100%,PASS - 未修改样例(0_naive/1_preload_gamma/2_multi_core、membase 版本)行为不变,仍 100%/PASS 另外验证中发现两个与本次修改无关的既有问题,供参考:CI 功能性清单中 matmul_basic 期望的输出串与样例实际输出不一致(样例实际输出 [PASS] NPU results are consistent with CPU.);hif8 的 gen_data.py 依赖 requirements.txt 中的 en_dtypes,在未安装该包的环境下无法生成数据。 --- ## 更新:修复 CI 编译失败(升级 shmem 子模块) CI(Compile_Ascend_X86_950)在本 PR 上仍然失败,错误不在样例代码,而在 third_party/shmem 子模块: third_party/shmem/src/host/init/backends/shmem_init_backend.cpp:104:10: error: no member named 'copy_n' in namespace 'std' third_party/shmem/src/host/init/backends/shmem_init_backend.cpp:461:20: error: no member named 'find_if' in namespace 'std' third_party/shmem/src/host/transport/device_rdma/fixed_ranks_qp_manager.cpp:424:18: error: no member named 'remove_if' in namespace 'std' ### 根因 - CI 机器系统 GCC 为 14,bisheng 自动选用 libstdc++-14 头文件; - 旧版 shmem(本仓库锁定的 bff4c64 / v1.3.0)的上述文件使用了 std::copy_n / std::find_if / std::remove_if 但未 #include <algorithm>,旧 libstdc++ 靠传递包含侥幸编译,libstdc++-14 移除传递包含后编译失败; - 该问题与本 PR 的样例修改无关,在 master 上同样会触发。 ### 修复 升级 shmem 子模块指针 bff4c64 → **64ce637**(上游提交:“修复cce-ld链接错误,用到std::copy的cpp添加algorithm头文件”,即上游针对该问题的修复提交,取最小升级范围)。 ### 验证 - 本地复现:安装 g++-14 使 bisheng 选用 GCC-14 的 libstdc++ 后,在 bff4c64 上干净构建 shmem,精确复现 CI 的 3 处错误(行号、信息一致); - 升级到 64ce637 后,完全干净状态(rm -rf build 及 shmem 自身 build/install)下 bash .ci/build.sh(dav-3510)与 bash .ci/build.sh dav-2201 均通过,0 error,打包成功; - moe 样例(shmem 使用方)编译链接正常(ldd 可见 libshmem 等 4 个库经 rpath 正确解析),其余样例行为不变。 See merge request: cann/cann-samples!362 | 7 天前 |
| init commit | 5 个月前 |
| feat: 添加环境自检脚本 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !365 merge master into master feat: 添加环境自检脚本 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增构建前环境自检功能,帮助用户在编译样例之前快速确认开发环境配置是否正确。 ### 主要内容 1. 新增 脚本,自动检查以下项目: - 基础命令(cmake、python3、pip3、zip、git) - CANN 环境(ASCEND_HOME_PATH、LD_LIBRARY_PATH、set_env.sh) - Python 依赖(requirements.txt 中的包是否可导入) - 仓库依赖(third_party submodule 是否已初始化) - NPU 运行时(npu-smi 是否可用) 2. 更新 ,新增环境自检章节,更新目录导航和目录结构说明 3. 更新 ,忽略 和 ### 使用方式 在仓库根目录执行: ## 关联的Issue N/A ## 测试 - 脚本本地运行验证通过 - 各检查项(基础命令、CANN环境、Python依赖、仓库依赖、NPU运行时)逐项验证 ## 文档更新 - 更新 :新增环境自检章节,更新目录导航 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!365 | 4 天前 |
| fix: rename ops-tensor submodule path Co-authored-by: Crrryyyy<chenruiyu4@huawei.com> # message auto-generated for no-merge-commit merge: !322 merge rename-third-party-dir into master fix: rename ops-tensor submodule path Created-by: Crrryyyy Commit-by: Crrryyyy Merged-by: cann-robot Description: ## 描述 本次变更将 ops-tensor 子模块在 third_party 下的目录名从 tensor_api 调整为 ops-tensor,使本仓目录结构与上游仓库命名保持一致。 同步更新内容包括: - .gitmodules 中的子模块 path; - cmake/tensor_api.cmake 中自动初始化子模块的路径、提示信息和依赖目标引用; - README.md 中 ops-tensor 子模块获取方式和 Toolkit 约束说明。 ## 关联的Issue 无。 ## 测试 已完成静态检查: - 确认 PR diff 中 third_party/tensor_api 相关引用已同步替换为 third_party/ops-tensor; - 确认子模块目录重命名为 third_party/ops-tensor,未修改子模块内容。 本地编译验证无误:  ## 文档更新 已更新 README.md 中 ops-tensor 子模块路径、初始化命令和头文件路径说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:同步 third_party 下 ops-tensor 子模块目录命名及构建脚本引用 See merge request: cann/cann-samples!322 | 1 个月前 |
| refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !352 merge master into master refactor(cmake): extract arch check boilerplate into cann_sample_check_arch() macro Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 将 29 个 sample CMakeLists.txt 中重复的架构校验样板(SUPPORTED_NPU_ARCHS + skip message)提取到 cmake/sample_common.cmake 的 cann_sample_check_arch() 宏中。 每个 leaf sample 的 CMakeLists.txt 从原来的 5 行 boilerplate 缩减为 1 行宏调用: cmake # Before (5 行) set(SUPPORTED_NPU_ARCHS dav-3510) file(RELATIVE_PATH SAMPLE_PATH ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) if(NOT "${NPU_ARCH}" IN_LIST SUPPORTED_NPU_ARCHS) message(STATUS "Skip sample ${SAMPLE_PATH}: NPU_ARCH=${NPU_ARCH} is not supported") return() endif() # After (1 行) cann_sample_check_arch(dav-3510) 变更涉及 30 个文件,净减少 144 行(185 删除,41 新增)。 ### 改动原因 49 个 sample CMakeLists.txt 中每个都独立实现了完全相同的架构校验逻辑,存在维护成本高和一致性衰减问题。这是 Issue #226 中提到的 CMake 样板代码重复问题的务实第一步。 ### 改动方法 - 新增 cmake/sample_common.cmake:定义 cann_sample_check_arch() 宏,封装架构校验逻辑 - 根 CMakeLists.txt 添加 include(cmake/sample_common.cmake) - 逐个迁移 29 个 leaf sample CMakeLists.txt(保留了三种架构配置:dav-3510、dav-2201、dav-2201 dav-3510) - 未修改中间 dispatcher CMakeLists.txt 和继承父级架构检查的子目录(如 matmul_tutorials) ## 关联的Issue - https://gitcode.com/cann/cann-samples/issues/226 ## 测试 - 远程 Git Hook 检查通过(推送前) - 代码逻辑等价替换,架构校验行为无变化 - 宏变量使用下划线前缀(_cann_sample_expected_archs、_cann_sample_path)避免与 sample 本地变量冲突 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:CMake 构建系统重构(消除重复样板代码) See merge request: cann/cann-samples!352 | 11 天前 |
| 支持通过 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 | 3 个月前 |
| init commit | 5 个月前 |
| 规范化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 | 4 个月前 |
| docs: 修复文档链接、拼写错误并补充目录入口与Perf Story索引 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !366 merge master into master docs: 修复文档链接、拼写错误并补充目录入口与Perf Story索引 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 修复 cann-samples 文档中的链接错误、拼写问题,并补充 README 中缺失的目录入口和 Perf Story 条目。 ### 改动详情 - **README.md**:补充 3_Utilities 目录入口(快速入门表与文件结构)、更新 Perf Stories 徽章计数 9→13 - **Samples/0_Introduction/npu_execution/README.md**:修复 3 处拼写/描述错误(参数v→参数、piblic→public、静态kernel→动态kernel) - **Samples/2_Performance/README.md**:新增 flash_attn_lite_story、scalar_story、simd_vf_story 三个 Perf Story 索引条目 - **Samples/2_Performance/matmul_story/docs/quant_matmul_mxfp4_tutorials.md**:修复损坏的相对链接 ## 关联的Issue - fix #238 - fix #239 - fix #240 - fix #241 - fix #242 ## 测试 文档修改,无需测试。 ## 文档更新 - [x] README.md - [x] Samples/0_Introduction/npu_execution/README.md - [x] Samples/2_Performance/README.md - [x] Samples/2_Performance/matmul_story/docs/quant_matmul_mxfp4_tutorials.md ## 类型标签 - [x] 文档更新 See merge request: cann/cann-samples!366 | 2 天前 |
| init commit | 5 个月前 |
| init commit | 5 个月前 |
| init commit | 5 个月前 |
| fix: 修复环境自检脚本依赖与版本校验缺陷 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !368 merge master into master fix: 修复环境自检脚本依赖与版本校验缺陷 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 修复环境自检脚本 scripts/check_env.py 的版本校验缺陷,并在 requirements.txt 中显式补充依赖声明: - **requirements.txt**:新增 numpy>=2.0,<3 与 torch>=2.0,避免按文档执行 pip3 install -r requirements.txt 后缺少 torch 依赖,导致环境自检无法正确检出缺失项。 - **scripts/check_env.py**:为 check_command 增加版本号解析与比较逻辑(_parse_version、_older_than),将命令输出版本与 min_version 进行比较,低于要求版本时输出 [FAIL] 并返回失败;同时修复版本查询超时/异常时误报失败的问题。 ## 关联的Issue - #243: requirements.txt 缺少 torch 依赖,导致 check_env.py 无法检出缺失 - #245: check_env.py 的 check_command 函数未实际比较版本号,min_version 参数被忽略 ## 测试 - 本地执行 python3 scripts/check_env.py:cmake/python3 满足最低版本时输出 [PASS],低于要求版本时输出 [FAIL] 且脚本退出码非 0。 - 安装 requirements.txt 后,check_python_deps 可正常检出 numpy 与 torch。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/cann-samples!368 | 1 天前 |