| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 1 个月前 | |
【PR】: 新增 SIMD 栈空间预算配置与校验样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !5089 merge example/2_advanced_features/kernel/10_simd_stack_budget into master 【PR】: 新增 SIMD 栈空间预算配置与校验样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 10_simd_stack_budget 样例,展示 SIMD Kernel 栈空间预算的配置、回读及实际执行验证流程。 主要变更: - 在绑定 Device 前设置并回读 64 KiB SIMD 栈空间预算。 - 新增使用 48 KiB 局部栈数据的校验 Kernel。 - 通过 Host 侧确定性 checksum 校验 Kernel 执行结果。 - 补充 CMake 和一键编译运行脚本。 - 补充中英文 README 及 Kernel 样例导航。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 如何测试 1. 加载 CANN 环境并进入样例目录: ```bash source ${install_root}/cann/set_env.sh source ${git_clone_path}/example/set_sample_env.sh cd example/2_advanced_features/kernel/10_simd_stack_budget See merge request: cann/runtime!5089 | 4 天前 | |
【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !5105 merge example/2_advanced_features/kernel/11_device_argument_vector_add into master 【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 Runtime7 单 Device 样例 11_device_argument_vector_add,演示 aclrtLaunchKernelV2 使用 Device 内存参数包异步下发 Kernel 的完整流程。 主要变更: 1. 复用已有 add_custom FP16 向量加法 Kernel,将三个向量的 Device 地址封装为 24 字节参数包并上传至 Device。 2. 通过 aclrtLaunchKernelV2 下发任务,在 Stream 同步完成后释放 Device 参数包,体现其与 Host 参数接口不同的生命周期。 3. 使用变化的确定性输入逐项校验 16384 个 FP16 向量加法结果,并在失败路径返回非零值。 4. 新增中英文 README、CMake 构建文件和运行脚本,补充 Kernel 主题中英文导航。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 关联 Issue:#<Issue编号> 请在 PR 右侧关联对应 Issue,并勾选“合并后关闭已关联的 Issue”。 ## 如何测试 测试环境:单 Device Atlas A3,SOC_VERSION=Ascend910_9362。 1. 加载环境并运行样例: bash source /home/developer/Ascend/cann/set_env.sh source /mnt/workspace/runtime/example/set_sample_env.sh bash example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh 2. 确认程序输出以下业务校验结果并以 0 退出: text [INFO] Uploaded a 24-byte Kernel argument package to Device memory. [INFO] Released the Device argument package after Stream synchronization. [INFO] Verified 16384 FP16 vector additions element by element. [INFO] Run the 11_device_argument_vector_add sample successfully. 3. 本地检查结果: - Pre-commit:通过。 - OAT:按本次 7 个变更文件检查通过。 - git diff --check:通过。 - bash -n example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh:通过。 - 缺少 Kernel 二进制参数时,程序返回非零值且不输出成功标记。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 关键 API 的公开文档显示 Atlas A2、Atlas A3、Ascend 950PR/Ascend 950DT 均支持本样例;本次仅在 Atlas A3 实机验证。 - Host 可执行文件仅链接 libacl_rt.so,未链接 libascendcl.so。 - 共享 Kernel example/kernel_func/add_custom.cpp 未修改。 - 远端 CodeCheck_precommit 和 openLiBing CodeCheck 结果需在 PR 流水线中确认。 See merge request: cann/runtime!5105 | 3 天前 | |
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 1 个月前 | |
【PR】【fix】修复 binary_enumerate_functions 样例重复执行构建失败 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4771 merge kex into master 【PR】【fix】修复 binary_enumerate_functions 样例重复执行构建失败 Created-by: weixin_51634168 Commit-by: weixin_51634168;chenyang Merged-by: cann-robot Description: # 【PR】【fix】修复 binary_enumerate_functions 样例重复执行构建失败并精简 run.sh ## 关联 Issue https://gitcode.com/cann/runtime/issues/938 ## 问题背景 example/2_advanced_features/kernel/2_binary_enumerate_functions 在干净构建目录下首次执行成功,但不清理 build 目录再次执行 run.sh 时构建失败,样例无法稳定重复运行。 ## 修改内容 仅修改 example/2_advanced_features/kernel/2_binary_enumerate_functions/run.sh: 1. **修复重复执行失败** 构建前增加 rm -rf "${BUILD_DIR}" "${OUTPUT_DIR}",每次运行从干净目录构建。 See merge request: cann/runtime!4771 | 15 天前 | |
【PR】: 文档一致性修改 Co-authored-by: weixin_47917346<zhangjunyu23@huawei.com> # message auto-generated for no-merge-commit merge: !4610 merge master into master 【PR】: 文档一致性修改 Created-by: weixin_47917346 Commit-by: weixin_47917346 Merged-by: cann-robot Description: # 文档一致性修改 ## 描述 3_binary_get_function_count 的 README 缺少产品支持表,其他用例(0_launch_kernel、1_launch_kernel_with_reslimit)均有产品支持表,这两个用例缺失,不符合文档一致性要求。按照0_launch_kernel的README格式内容修改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 See merge request: cann/runtime!4610 | 24 天前 | |
docs: improve launch blocking sample guide Co-authored-by: jiaxingru<jiaxingru1@huawei.com> # message auto-generated for no-merge-commit merge: !4748 merge docs/launch-blocking-usage-guide into master docs: improve launch blocking sample guide Created-by: m0_60337577 Commit-by: jiaxingru Merged-by: cann-robot Description: ## 描述 完善 Kernel Launch Blocking sample 的中英文使用说明,使文档从测试场景描述转为用户使用指导。 主要变更: - 补充环境变量、流级属性及 NonBlocking 区间的控制优先级。 - 明确三态枚举、Begin/End 嵌套、默认流和受限流语义。 - 按仓库 sample 风格重组关键 API,并同步中英文文档。 ## 变更类型 - [x] 文档内容更新 ## 关联的 Issue 无 ## 如何测试 1. 对照 sample 实现检查文档中的 API 和枚举名称。 2. 执行 git diff --check,确认 Markdown 无空白错误。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已阅读并遵守贡献指南 ## 其他信息 本 PR 仅修改 4_launch_blocking sample 的中英文 README,不包含功能代码变更。 See merge request: cann/runtime!4748 | 16 天前 | |
【PR】: 新增 FDTD 三维有限差分模板 Runtime 样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !4742 merge feat/fdtd-stencil-sample-rebased into master 【PR】: 新增 FDTD 三维有限差分模板 Runtime 样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 example/2_advanced_features/kernel/4_fdtd_stencil 样例,展示单 Device 上执行三维有限差分模板更新的完整流程。 主要变更: - 使用 Device 变量保存 FDTD 系数,通过 Vector Core Kernel 完成三维网格更新。 - 将 64 个内部点与 Host 参考结果逐点比较,误差阈值为 1e-5。 - 覆盖 Runtime 初始化、Device、Stream、内存、Kernel 查询与执行等接口。 - 新增中英文 README、CMakeLists.txt 和一键运行脚本。 - 更新 Kernel 样例中英文目录索引。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 前提条件:已安装 CANN 软件,并具有可用的 Atlas A2, Atlas A3 或 A5 Device。 1. 配置环境变量并进入样例目录: ```bash source ${install_root}/set_env.sh source ${git_clone_path}/example/set_sample_env.sh cd ${git_clone_path}/example/2_advanced_features/kernel/4_fdtd_stencil See merge request: cann/runtime!4742 | 14 天前 | |
【PR】: 新增 aclrtBinaryLoadFromData 内存加载 Kernel 样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !4791 merge vectorAddDrv into master 【PR】: 新增 aclrtBinaryLoadFromData 内存加载 Kernel 样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 6_memory_loaded_vector_add 样例,演示将 Ascend C Kernel 二进制 读入 Host 内存,并通过 aclrtBinaryLoadFromData 完成加载、函数获取、 Kernel 下发、结果校验和资源释放。 同步新增中英文使用文档,并更新 Kernel 样例目录索引。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 如何测试 1. 在已安装 CANN Toolkit 的单 Device 环境中配置环境变量。 2. 执行以下命令: bash cd example/2_advanced_features/kernel/5_memory_loaded_vector_add bash run.sh 3. 确认程序输出 Verified 16384 FP16 additions 和运行成功信息。 验证情况:Atlas A2、Atlas A3、 Ascend 950DT 已实机验证 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读并遵守贡献指南 ## 其他信息 本变更仅新增独立样例及目录索引,不修改 Runtime 公共接口和现有业务逻辑。 See merge request: cann/runtime!4791 | 14 天前 | |
【PR】:新增 Kernel 二进制与函数元数据内省样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !4904 merge example/2_advanced_features/kernel/7_binary_introspection into master 【PR】:新增 Kernel 二进制与函数元数据内省样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 Runtime7 单 Device 样例 example/2_advanced_features/kernel/7_binary_introspection,展示自定义 Ascend C Kernel 二进制在加载后的元数据内省和有效性验证: - 从 Host 内存创建并加载 Kernel Binary,完成 Binary 的创建、加载、卸载和销毁闭环。 - 按名称获取 Function,校验 Function 反查所属 Binary,并查询 Kernel 参数数量、偏移和大小。 - 查询 AI Core/Vector Core 代码段大小、每个 Block 的可用动态 UB,以及 Binary 在 Device 上的地址和大小。 - 在 Kernel 中定义具名 Device 全局变量,通过写入后读回探测值验证查询到的地址有效。 - 新增 CMake/Ascend C 构建、run.sh、中英文 README,并更新 Kernel 主题中英文导航。 本样例新增覆盖以下 10 个 Runtime API: - aclrtCreateBinary、aclrtBinaryLoad、aclrtBinaryGetDevAddress、aclrtBinaryGetGlobal - aclrtFunctionGetBinary、aclrtFunctionGetParamCount、aclrtFunctionGetParamInfo - aclrtGetFunctionSize、aclrtFunctionGetAvailDynUbufPerBlock、aclrtDestroyBinary ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 如何测试 测试环境: - 硬件:Atlas A3,SoC Ascend910_9362。 - CANN:9.2.0-weekly.20260909.01,toolkit/A3 ops 内部版本 V100R001C12B106。 - 编译器:GCC/G++ 13.3.0,CANN 配套 BiSheng 编译器。 1. 配置环境并运行样例: bash source /home/developer/Ascend/cann/set_env.sh source /mnt/workspace/runtime/example/set_sample_env.sh cd /mnt/workspace/runtime/example/2_advanced_features/kernel/7_binary_introspection bash run.sh 2. 验证结果: - Host 可执行文件与 Ascend C Kernel 二进制编译、安装和运行成功,样例返回码为 0。 - 从 Host 内存加载 47456 字节 Kernel Binary。 - 查询到 3 个 Kernel 参数,偏移/大小分别为 0/8、8/8、16/4。 - 代码段查询结果为 aic=0 bytes, aiv=168 bytes,动态 UB 为 0 字节。 - Binary Device 镜像大小为 4356 字节。 - 具名全局变量 g_binary_metadata_value 大小为 256 字节,写入并读回 0x13572468 成功。 - 输出 Run the 7_binary_introspection sample successfully.。 3. 静态检查: bash git diff --check upstream/master...HEAD bash -n example/2_advanced_features/kernel/7_binary_introspection/run.sh 上述检查均通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格(待处理 clang-format --dry-run --Werror 检查结果) - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 - clang-format --dry-run --Werror 当前报告 main.cpp 中的日志/aclrtMemcpy 调用换行和 binary_introspection_kernel.cpp 函数声明不符合格式,需在提交 PR 前完成格式化并重新检查。 - 本样例同时使用 aclrtBinaryGetFunction、aclrtBinaryUnLoad、aclrtMemcpy 等配套 API 完成场景闭环,不将其重复计入本次 API 覆盖增量。 See merge request: cann/runtime!4904 | 10 天前 | |
【PR】: 新增可复用 Kernel 参数用户内存样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !4953 merge example/2_advanced_features/kernel/8_reusable_kernel_args into master 【PR】: 新增可复用 Kernel 参数用户内存样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 8_reusable_kernel_args 样例,展示在单 Device 场景下由用户管理 Kernel 参数内存并复用参数列表的完整流程。 主要变更如下: - 根据核函数句柄查询参数列表句柄区和参数数据区所需大小,并申请对应的 Host 内存。 - 使用 aclrtKernelArgsInitByUserMem 初始化参数列表,通过 aclrtKernelArgsAppend 追加输出地址和标量参数。 - 保留标量参数句柄,首次下发并校验输出为 7 后,通过 aclrtKernelArgsParaUpdate 将参数更新为 23,复用同一参数列表再次下发并校验结果。 - 完善异常返回和资源清理流程,确保 Stream、Device 内存、Host 内存及 Runtime 资源均被释放。 - 增加中英文 README、CMake 构建脚本、运行脚本及 Kernel 样例导航入口。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 如何测试 前提条件:已安装支持样例所用 Kernel 参数接口的 CANN 软件,并已配置可用的 Ascend Device。 1. 设置环境变量。 bash source ${install_root}/set_env.sh source ${git_clone_path}/example/set_sample_env.sh 2. 编译并运行样例。 bash cd ${git_clone_path}/example/2_advanced_features/kernel/8_reusable_kernel_args bash run.sh 3. 检查输出,确认首次下发结果为 7、参数更新后第二次下发结果为 23,且程序打印运行成功信息并返回 0。 测试结果: - Atlas A3 单 Device 实机编译、运行通过,两个输出值均符合预期。 - Atlas A2 与 Ascend 950PR/Ascend 950DT 交叉构建通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 样例使用查询结果申请参数内存,不依赖固定缓冲区大小。 - 参数列表句柄区和参数数据区均由用户管理,并在 Stream 销毁后释放。 - 本 PR 已基于最新主线完成 rebase,中英文 Kernel 样例导航同时保留 7_binary_introspection 和 8_reusable_kernel_args。 See merge request: cann/runtime!4953 | 9 天前 | |
【PR】: 新增 Device Symbol 读写与 Kernel 更新样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !4989 merge example/2_advanced_features/kernel/9_device_symbol_io into master 【PR】: 新增 Device Symbol 读写与 Kernel 更新样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 Runtime7 Device Symbol 读写样例 example/2_advanced_features/kernel/9_device_symbol_io: - 查询并校验 Device 全局变量的地址、对齐和大小。 - 使用锁页 Host 内存异步写入 8 个确定性初值。 - 通过 aclrtGetFuncBySymbol 获取 Kernel,并由 Kernel 将全部数值加 7。 - 分别使用同步和异步方式读回数据,逐项校验结果及两条路径的一致性。 - 覆盖 aclrtGetSymbolAddress、aclrtGetSymbolSize、aclrtMemcpyToSymbolAsync、aclrtMemcpyFromSymbol、aclrtMemcpyFromSymbolAsync、aclrtGetFuncBySymbol 和 aclrtLaunchKernelWithArgsArray。 - 新增 CMake、run.sh、中英文 README,并更新 Kernel 主题中英文导航。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 如何测试 测试环境: - 硬件:Atlas A3,SoC Ascend910_9362 - 架构:AArch64 - CANN:9.2.0-weekly.20260909.01 运行 example/2_advanced_features/kernel/9_device_symbol_io/run.sh。 验证结果: - CMake 配置、ASC/C++ 编译及样例执行成功,返回码为 0。 - Device Symbol 地址有效,大小为 32 字节。 - 8 个初值经 Kernel 加 7 后,同步和异步读回结果均为 [17, ..., 87]。 - 输出 Run the 9_device_symbol_io sample successfully.。 - git diff --check upstream/master...HEAD、clang-format --dry-run --Werror main.cpp 和 bash -n run.sh 均通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 样例支持 Ascend 950PR/950DT、Atlas A3 和 Atlas A2 系列产品;本次已在 Atlas A3 环境完成验证。 See merge request: cann/runtime!4989 | 8 天前 | |
【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !5105 merge example/2_advanced_features/kernel/11_device_argument_vector_add into master 【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 Runtime7 单 Device 样例 11_device_argument_vector_add,演示 aclrtLaunchKernelV2 使用 Device 内存参数包异步下发 Kernel 的完整流程。 主要变更: 1. 复用已有 add_custom FP16 向量加法 Kernel,将三个向量的 Device 地址封装为 24 字节参数包并上传至 Device。 2. 通过 aclrtLaunchKernelV2 下发任务,在 Stream 同步完成后释放 Device 参数包,体现其与 Host 参数接口不同的生命周期。 3. 使用变化的确定性输入逐项校验 16384 个 FP16 向量加法结果,并在失败路径返回非零值。 4. 新增中英文 README、CMake 构建文件和运行脚本,补充 Kernel 主题中英文导航。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 关联 Issue:#<Issue编号> 请在 PR 右侧关联对应 Issue,并勾选“合并后关闭已关联的 Issue”。 ## 如何测试 测试环境:单 Device Atlas A3,SOC_VERSION=Ascend910_9362。 1. 加载环境并运行样例: bash source /home/developer/Ascend/cann/set_env.sh source /mnt/workspace/runtime/example/set_sample_env.sh bash example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh 2. 确认程序输出以下业务校验结果并以 0 退出: text [INFO] Uploaded a 24-byte Kernel argument package to Device memory. [INFO] Released the Device argument package after Stream synchronization. [INFO] Verified 16384 FP16 vector additions element by element. [INFO] Run the 11_device_argument_vector_add sample successfully. 3. 本地检查结果: - Pre-commit:通过。 - OAT:按本次 7 个变更文件检查通过。 - git diff --check:通过。 - bash -n example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh:通过。 - 缺少 Kernel 二进制参数时,程序返回非零值且不输出成功标记。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 关键 API 的公开文档显示 Atlas A2、Atlas A3、Ascend 950PR/Ascend 950DT 均支持本样例;本次仅在 Atlas A3 实机验证。 - Host 可执行文件仅链接 libacl_rt.so,未链接 libascendcl.so。 - 共享 Kernel example/kernel_func/add_custom.cpp 未修改。 - 远端 CodeCheck_precommit 和 openLiBing CodeCheck 结果需在 PR 流水线中确认。 See merge request: cann/runtime!5105 | 3 天前 | |
【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Co-authored-by: 2403_89963296<2540257541@qq.com> # message auto-generated for no-merge-commit merge: !5105 merge example/2_advanced_features/kernel/11_device_argument_vector_add into master 【PR】: 新增 Device 参数包驱动的 Kernel 调度样例 Created-by: 2403_89963296 Commit-by: 2403_89963296 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 Runtime7 单 Device 样例 11_device_argument_vector_add,演示 aclrtLaunchKernelV2 使用 Device 内存参数包异步下发 Kernel 的完整流程。 主要变更: 1. 复用已有 add_custom FP16 向量加法 Kernel,将三个向量的 Device 地址封装为 24 字节参数包并上传至 Device。 2. 通过 aclrtLaunchKernelV2 下发任务,在 Stream 同步完成后释放 Device 参数包,体现其与 Host 参数接口不同的生命周期。 3. 使用变化的确定性输入逐项校验 16384 个 FP16 向量加法结果,并在失败路径返回非零值。 4. 新增中英文 README、CMake 构建文件和运行脚本,补充 Kernel 主题中英文导航。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 关联 Issue:#<Issue编号> 请在 PR 右侧关联对应 Issue,并勾选“合并后关闭已关联的 Issue”。 ## 如何测试 测试环境:单 Device Atlas A3,SOC_VERSION=Ascend910_9362。 1. 加载环境并运行样例: bash source /home/developer/Ascend/cann/set_env.sh source /mnt/workspace/runtime/example/set_sample_env.sh bash example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh 2. 确认程序输出以下业务校验结果并以 0 退出: text [INFO] Uploaded a 24-byte Kernel argument package to Device memory. [INFO] Released the Device argument package after Stream synchronization. [INFO] Verified 16384 FP16 vector additions element by element. [INFO] Run the 11_device_argument_vector_add sample successfully. 3. 本地检查结果: - Pre-commit:通过。 - OAT:按本次 7 个变更文件检查通过。 - git diff --check:通过。 - bash -n example/2_advanced_features/kernel/11_device_argument_vector_add/run.sh:通过。 - 缺少 Kernel 二进制参数时,程序返回非零值且不输出成功标记。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 关键 API 的公开文档显示 Atlas A2、Atlas A3、Ascend 950PR/Ascend 950DT 均支持本样例;本次仅在 Atlas A3 实机验证。 - Host 可执行文件仅链接 libacl_rt.so,未链接 libascendcl.so。 - 共享 Kernel example/kernel_func/add_custom.cpp 未修改。 - 远端 CodeCheck_precommit 和 openLiBing CodeCheck 结果需在 PR 流水线中确认。 See merge request: cann/runtime!5105 | 3 天前 | |
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 1 个月前 | |
【PR】: feat:remove all exclude Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !4195 merge master_precommit into master 【PR】: feat:remove all exclude Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 pre-commit example scripts docs,并把这些目录pre-commit排除项给去掉 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 pre-commit readme docs无新增文件 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4195 | 1 个月前 |
kernel
本目录聚焦 Kernel 加载、参数组织、执行与资源限制能力。
样例列表
- 0_launch_kernel:演示 Kernel 二进制加载、参数组装和执行。
- 1_launch_kernel_with_reslimit:演示在 Device 资源限制下的 Kernel 执行。
- 2_binary_enumerate_functions:演示枚举同一算子二进制中的多个核函数,并依次下发和校验计算结果。
- 3_binary_get_function_count:演示查询 Kernel 二进制中的核函数数量。
- 4_launch_blocking:演示 Kernel Launch Blocking 的环境变量控制、流级三态及嵌套非阻塞区间。
- 5_fdtd_stencil:演示通过 Kernel 属性和 Device 变量配置执行三维有限差分模板更新。
- 6_memory_loaded_vector_add:演示从 Host 内存加载 Kernel 二进制并执行向量加法。
- 7_binary_introspection:演示加载后查询 Kernel 二进制、函数参数、代码段和 Device 全局变量元数据。
- 8_reusable_kernel_args:演示由用户管理参数内存,并通过参数句柄更新和复用同一 Kernel 参数列表。
- 9_device_symbol_io:演示异步初始化 Device 变量、由 Kernel 更新状态,并通过同步和异步方式读回校验。
- 10_simd_stack_budget:演示在绑定 Device 前配置并确认 SIMD 栈空间预算,再执行使用较大局部栈数据的校验 Kernel。
- 11_device_argument_vector_add:演示将参数包上传至 Device 内存,通过异步 Kernel 任务完成向量加法并逐项校验结果。