文件最后提交记录最后更新时间
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35871 merge v2.7.1_lintrunner into v2.7.1 fix: lintrunner --all-files --take NEWLINE -a Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!3587115 天前
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35871 merge v2.7.1_lintrunner into v2.7.1 fix: lintrunner --all-files --take NEWLINE -a Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!3587115 天前
fix: lintrunner --all-files --take NEWLINE -a Co-authored-by: huangjingwei<huangjingwei4@huawei.com> # message auto-generated for no-merge-commit merge: !35871 merge v2.7.1_lintrunner into v2.7.1 fix: lintrunner --all-files --take NEWLINE -a Created-by: huangjingwei Commit-by: huangjingwei Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!3587115 天前
[feat]add module logger macros Co-authored-by: zhaoyu<nanzhaogang@qq.com> # message auto-generated for no-merge-commit merge: !34304 merge v2.7.1-log into v2.7.1 [feat]add module logger macros Created-by: zhaoyu65 Commit-by: zhaoyu Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 ## 修改概述 本次提交主要**重构了日志系统**,引入了模块化的宏定义来替代原来的logger实例,提供了更灵活的日志记录方式。 --- ## 核心改动 ### 1. 新增日志宏定义机制 在多个模块中引入了专门的日志宏,每个模块有自己独立的logger实例和对应的宏: - **调度层日志** (OpParamMaker.h): - TORCH_NPU_DISPATCH_LOGD - 调度层DEBUG级别日志 - TORCH_NPU_DISPATCH_LOGI - 调度层INFO级别日志 - TORCH_NPU_DISPATCH_LOGIL - 调度层长INFO日志 - TORCH_NPU_DISPATCH_TIME_LOGI - 调度层时间统计日志 - **队列层日志** (NPUQueue.h): - TORCH_NPU_QUEUE_LOGD - 队列DEBUG级别日志 - TORCH_NPU_QUEUE_LOGI - 队列INFO级别日志 - **环境变量日志** (OptionsManager.h): - TORCH_NPU_ENV_LOGI - 环境变量INFO级别日志 - **故障快恢模块日志** (Module.h): - TORCH_NPU_RECOVERY_LOGI - 设备恢复操作日志 - **对称内存日志** (NPUSHMEMSymmetricMemory.hpp): - TORCH_NPU_SYMMEM_LOGD - 对称内存DEBUG级别日志 - **ACL调用日志** (AclCallDecorator.h): - 使用 TORCH_NPU_LOGI 记录ACL API调用信息 ### 2. 重构Logger实现 (Logger.cpp & Logger.h) - **日志格式优化**: 改为类似glog的格式,包含: - 日志级别字符 (V DEBUG, I INFO, W WARNING, E ERROR, F CRITICAL) - 月日时分秒.微秒格式 (例如: 0420 14:30:25.123456) - 进程ID - 文件路径和行号 (格式: filename:line] message) - **Rank ID获取**: 通过环境变量 RANK 获取,替代了之前的 OptionsManager::GetRankId() - **移除依赖**: 移除了对 OptionsManager.h 的依赖,避免循环依赖 ### 3. 宏定义改进 - **文件位置标识**: 所有 TORCH_NPU_LOG* 宏现在自动添加 __FILE____LINE__,输出格式为 filename:line] message - **长日志支持**: 新增 TORCH_NPU_LOGIL 宏用于长消息的日志记录 ### 4. 代码清理 - **移除重复代码**: 删除了多个文件中的静态logger实例定义,改为通过函数获取 - 例如: static std::shared_ptr<npu_logging::Logger> logger = ... - **简化日志调用**: - 合并 if (logger->getAllowLevel() == DEBUG) + logger->debug() 为单一宏调用 - 移除冗余的日志级别检查 --- ## 具体文件修改 | 文件 | 修改类型 | |------|---------| | torch_npu/csrc/logging/Logger.cpp | 核心日志实现重构 | | torch_npu/csrc/logging/Logger.h | 日志宏定义重构 | | torch_npu/csrc/logging/LogContext.h | 新增日志上下文支持 (依赖) | | torch_npu/csrc/core/npu/NPUQueue.cpp/h | 队列层日志宏引入 | | torch_npu/csrc/core/npu/register/OptionsManager.cpp/h | 环境变量日志宏 | | torch_npu/csrc/framework/OpParamMaker.cpp/h | 调度层日志宏 | | torch_npu/csrc/framework/OpCommand.cpp | 时间统计日志 | | torch_npu/csrc/npu/Module.cpp/h | 恢复模块日志宏 | | torch_npu/csrc/core/npu/interface/AclCallDecorator.h | ACL调用日志 | | torch_npu/csrc/distributed/symm_mem/*.cpp/hpp | 对称内存日志宏 | | torch_npu/csrc/distributed/ProcessGroupHCCL.cpp | HCCL日志优化 | | torch_npu/csrc/distributed/HCCLUtils.cpp | 格式化字符串修复 | | torch_npu/csrc/framework/interface/MstxInterface.cpp | 环境变量日志 | | torch_npu/csrc/afd/ScheduleContext.cpp | 格式化字符串修复 | | torch_npu/csrc/core/npu/npu_log.h | ASCEND日志参数顺序调整 | --- ## 技术细节 ### 日志格式对比 **修改前:** ``` [rank:0]: [12345] [2026-04-20 14:30:25:123] torch_npu.dispatch: [INFO] [9876] message ``` **修改后:** ``` I0420 14:30:25.123456 12345 torch_npu/csrc/core/npu/NPUQueue.cpp:242] message I0420 14:30:25.123456 12345 torch_npu/csrc/core/npu/NPUQueue.cpp:242] [rank:0] message ``` ### 示例代码变更 ```cpp # 修改前 static std::shared_ptr<npu_logging::Logger> logger = npu_logging::logging().getLogger("torch_npu.dispatch"); if (logger->getAllowLevel() == npu_logging::LoggingLevel::DEBUG) { logger->debug("WriteQueue: write success, %s", msg.c_str()); } # 修改后 TORCH_NPU_QUEUE_LOGD("WriteQueue: write success, %s", msg.c_str()); ``` --- ## 优势 1. **更好的日志定位**: 每条日志自动包含文件名和行号 2. **模块化管理**: 不同模块有独立的日志配置 3. **代码简洁**: 单行宏调用替代多行日志检查,使用DEFINE_LOG_FUNCTION宏来消除大量重复的代码 4. **格式统一**: 采用业界标准的glog格式 5. **性能优化**: 宏定义在编译时展开,减少运行时开销 --- ## 注意事项 - 需要确保所有使用日志的代码都包含 LogContext.h 头文件 - 旧的logger实例已移除,需要使用新的宏定义 - ASCEND日志宏的参数顺序有所调整,调整后的格式为:file:func:line # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 ## 模块化打屏日志 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/acf8d149-d670-46c4-a914-1c2b362d622b/image.png 'image.png') ## 和pytorch原生日志在一起打印 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/e189d476-4631-49ab-8f06-c8f51d2f65f4/image.png 'image.png') ## 设置了RANK环境变量后 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/81ef254c-4b44-47c5-b408-92d6eefe2ac0/image.png 'image.png') ## plog日志 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/d34d6da1-b8bf-4c32-8e2b-76ee02a47f53/image.png 'image.png') # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!343041 个月前
!24249 add module afd Merge pull request !24249 from 李宁/v2.7.1 8 个月前