文件最后提交记录最后更新时间
!17920 support _logging Merge pull request !17920 from 王超/master_logging 1 年前
!17920 support _logging Merge pull request !17920 from 王超/master_logging 1 年前
!17920 support _logging Merge pull request !17920 from 王超/master_logging 1 年前
add TORCH_NPU_LOGS_FILTER Co-authored-by: nomiz<1606135114@qq.com> # message auto-generated for no-merge-commit merge: !30462 merge v2.7.1 into v2.7.1 add TORCH_NPU_LOGS_FILTER Created-by: nomiz Commit-by: nomiz Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 新增环境变量TORCH_NPU_LOGS_FILTER,对日志进行过滤 实现黑白名单功能 “+”: 只打印白名单内容;“-”:不打印黑名单内容,其他保留; 无该环境变量:全部打印 LogContext.cpp  新增环境变量解析和过滤逻辑 Logger.cpp 日志打印前实现过滤 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 新增环境变量已新增UT测试用例 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/642aa3c7-e7f9-42d9-8e96-14b8b451044f/image.png 'image.png') # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!304623 个月前
record filename in plog and delete unused macros Co-authored-by: zhaoyu<nanzhaogang@qq.com> # message auto-generated for no-merge-commit merge: !31953 merge v2.7.1-plog into v2.7.1 record filename in plog and delete unused 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/工单 [#1568](https://gitcode.com/Ascend/pytorch/issues/1568) - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1、删除CMakeLists.txt文件中关于__FILENAME____FILE__的定义,以及其他2处使用到的地方:torch_npu/csrc/profiler/feature_mgr.cpp和torch_npu/csrc/profiler/profiler_mgr.cpp 2、在CMakeLists.txt文件中添加编译选项add_compile_options(-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=) 3、修改调用到aclAppLog的地方; 4、将日志模块宏从torch_npu\csrc\logging\LogContext.h文件中挪到各模块的头文件中; 5、删除没有用到的宏; 打印效果: 1、日志模块宏的打印效果 ```text [223916] [2026-03-12 10:47:24:086] torch_npu.memory: [DEBUG] [223916] Allocating memory: size=64, device=6 [223916] [2026-03-12 10:47:24:086] torch_npu.memory: [DEBUG] [223916] Rounded size: 512, alloc size: 2097152, using small pool on device 6 [223916] [2026-03-12 10:47:24:086] torch_npu.memory: [DEBUG] [223916] Searching for free block: size=512, stream=0x22e309a0, device=6 ``` 2、plog日志打印效果 ```text [DEBUG] APP(223916,python):2026-03-12-10:47:28.033.940 [log_inner.cpp:87]223916 free:NPUCachingAllocator.cpp:1441: "[PTA]:"Freeing memory block: size=512, ptr=0x12c041200000, device=6"" [DEBUG] APP(223916,python):2026-03-12-10:47:28.033.973 [log_inner.cpp:87]223916 free_block:NPUCachingAllocator.cpp:2307: "[PTA]:"Freeing block to cache: size=512, ptr=0x12c041200000, device=6"" [DEBUG] APP(223916,python):2026-03-12-10:47:28.033.993 [log_inner.cpp:87]223916 free:NPUCachingAllocator.cpp:1479: "[PTA]:"PTA CachingAllocator free: free = 512, cached = 2097152, allocated = 1024"" [DEBUG] APP(223916,python):2026-03-12-10:47:28.289.574 [log_inner.cpp:87]223916 free:NPUCachingAllocator.cpp:1441: "[PTA]:"Freeing memory block: size=512, ptr=0x12c041200200, device=6"" ``` # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 验证Ok # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!319532 个月前
[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 个月前
[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 个月前