| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: runtime support launch blocking Co-authored-by: nevermore_t<tianjingxuan2@huawei.com> Co-authored-by: x00508183<xiachanglin@huawei.com> Co-authored-by: jiaxingru<jiaxingru1@huawei.com> # message auto-generated for no-merge-commit merge: !4247 merge feature/launch-blocking into master 【PR】: runtime support launch blocking Created-by: xiachanglin Commit-by: x00508183;jiaxingru;nevermore_t Merged-by: cann-robot Description: # Pull Request ## 描述 本需求提供一种面向调试场景的 blocking launch 能力,使用户在启动程序前设置环境变量后,Runtime 将纳入范围的 kernel/model launch 从“下发后立即返回”改为“下发后等待执行完成再返回”。这样执行错误在当前 launch API 返回,帮助用户定位问题算子。 新增环境变量: ASCEND_RT_LAUNCH_BLOCKING,默认不打开该环境变量时,Runtime 保持原有异步 launch 行为。当 ASCEND_RT_LAUNCH_BLOCKING=1 Runtime 对纳入范围的 kernel/model launch 执行做如下增强: 1. 先按原有流程完成任务下发。 2. 如果任务下发失败,直接返回原 launch 错误,不额外同步。 3. 如果任务下发成功,根据 stream 状态、no-blocking 逃生状态和环境变量判断是否需要同步。 4. 需要同步时,等待该 stream 当前已下发任务执行完成,再从当前 launch API 返回。 该功能的目标是调试定位。 涉及API: aclrtLaunchKernel、aclrtLaunchKernelWithConfig、aclrtLaunchKernelV2 aclrtLaunchKernelWithHostArgs、aclrtLaunchKernelWithArgsArray 、aclrtLaunchSIMTKernelWithArgsArray、aclrtLaunchSIMTKernelWithHostArgs aclmdlRIExecuteAsync ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> https://gitcode.com/cann/runtime/issues/921 ## 如何测试 描述测试此变更的步骤和前提条件: 1. UT 2. ST 3. rdv ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4247 | 14 天前 | |
refactor: 将 RtMacroValue 字段迁移到 DevProperties,重构 SoC 版本属性管理 Co-authored-by: daijinling<daijinling2@huawei.com> # message auto-generated for no-merge-commit merge: !1281 merge refactor/soc_version_20260312 into master refactor: 将 RtMacroValue 字段迁移到 DevProperties,重构 SoC 版本属性管理 Created-by: daijinling Commit-by: daijinling Merged-by: cann-robot Description: ## 描述 将 Runtime 中 RtMacroValue 全局静态变量的属性字段迁移到 DevProperties 按芯片类型注册管理,实现多芯片属性隔离。 **主要变更:** - 删除 RtMacroValue 结构体和 Runtime::macroValue_ 静态成员变量 - 将 16 个属性字段(maxPersistTaskNum、maxTaskNumPerStream、rtsqDepth 等)迁移到各平台 dev_info_reg.cc 的 DevProperties 静态初始化中 - 新增 ini_parse_utils.cc/h,支持从 INI 文件动态覆盖 DevProperties(normal_stream_num/depth、huge_stream_num/depth) - 新增 UpdateDevProperties()、CompareAndUpdate()、UpdateDevPropertiesFromIniAttrs() 统一初始化入口 - 将 MacroInit() 接口重命名为 UpdateDevProperties(),入参从 chipType 扩展为 (chipType, socVersion) - 全部 macroValue_ 访问点替换为 GET_DEV_PROPERTIES / device_->GetDevProperties() - 新增多层缓存刷新机制(propertiesMap_、curChipProperties_、NpuDriver、RawDevice) - 删除 13 个平台的 dev_info_proc_func.cc,静态值迁入 dev_info_reg.cc,仅 910_B_93 保留动态调整函数 - 新增 rtsqReservedTaskNum 字段,字段重命名 taskPoolSizeFromMacroValue → taskPoolSizeFromRtsqDepth - 适配 15+ 平台的 dev_info_reg.cc 和相关 UT ## 关联的Issue https://gitcode.com/cann/runtime/issues/316 ## 测试 - runtime 全量编译通过(bash build.sh) - 相关 UT 用例运行通过(UpdateDevPropertiesValueTest、UpdateDevPropertiesFromIniAttrs、CompareAndUpdate、CacheRefresh 等 7/7 全部通过) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:架构重构(RtMacroValue → DevProperties 迁移) See merge request: cann/runtime!1281 | 5 个月前 | |
【PR】【fix】correct RTS log messages round 2 Co-authored-by: Hou_jialin<houjialin3@huawei.com> # message auto-generated for no-merge-commit merge: !4547 merge br_log_opt_2round into master 【PR】【fix】correct RTS log messages round 2 Created-by: Hou_jialin Commit-by: Hou_jialin Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 针对 Runtime 日志易用性扫描结果进行整改,主要包括: - 修正日志和错误描述中的拼写、语法及术语问题。 - 统一 Runtime、ACL、TDT 等模块的日志表达。 - 为内存大小、超时时间等数值补充明确单位。 - 优化参数名称、错误原因和上下文信息,提升问题定位效率。 - 将不规范的内部错误描述统一为 Internal Error。 - 补充必要的 UT 覆盖受影响日志分支。 本次修改不涉及功能逻辑、对外接口或 ABI 变更。 ## 改动 修正 TDT 错误码描述文案(src/inc/tdt/status.h):纠正了 "transcation" → "transaction"、"argment" → "argument"、"unknow job state" → "unknown job state" 等拼写错误,并将 TDT_QUEUE_POP_FAILED/TDT_QUEUE_PUSH_FAILED 的描述改为更准确的 "queue pop/push interrupted because the queue was stopped"。 统一 ACL 队列模块日志表达(src/acl/acl_tdt_queue/ 下 queue_process.cpp、queue_process_ccpu.cpp、queue_process_host.cpp、queue_process_sp.cpp):将日志统一为 "Start to execute …" / "Successfully executed …" 句式,并修正 "unbinded" → "unbound"、"contact msg" → "connect msg" 等措辞错误。 修正运行时日志语法与拼写(src/runtime 多处,如 api_c.cc、api_impl.cc、errcode_manage.cc、context.cc、runtime.cc 等):修正 "Heterogenous" → "Heterogeneous"、"internel" → "internal"、"Stoping" → "Stopping"、"unknow" → "unknown" 等,并纠正日志字段名笔误(如 fftsMemAllocCnt 打印重复、true_sq_iq → true_sq_id、steam_id → stream_id)。 为日志中的内存大小补充单位:在 runtime.cc 的 Runtime_alloc_size 系列日志、api_error.cc 的 malloc/mem info 日志、onlineprof.cc、memory_pool_manager.cc、spm_pool.cc、h2d_copy_mgr.cc 及各类 memcpy 任务日志中,为 size/len/cpySize/stackSize 等数值统一追加 bytes 单位。 增强错误日志信息量:在 context.cc 的 LaunchSqeUpdateTask、ccu_device_error_proc.cc 的 CCU 子任务数校验、dqs_task.cc 的队列 ID 校验、task_manager.cc 的 nameOffset 越界告警等日志中,补充了失败说明、返回码及合法取值范围等上下文信息,使日志更易于定位问题。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 触发 PR 完整 CI 流水线。 2. 确认 x86、ARM 及 Ubuntu 24 编译通过。 3. 确认 ACL、Runtime 各分组 UT 及增量覆盖率检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档(本次不涉及文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅优化日志及错误信息的准确性和可读性,不改变原有执行流程和错误码返回行为。 See merge request: cann/runtime!4547 | 24 天前 |