文件最后提交记录最后更新时间
!19517 Cleancode Merge pull request !19517 from yuhaiyan/master-dev1 1 年前
[feat] support cholesky_backward Co-authored-by: zqwenn<zhangqiongwen@huawei.com> # message auto-generated for no-merge-commit merge: !27325 merge v2.7.1_linalg_cholesky into v2.7.1 [feat] support cholesky_backward Created-by: zqwenn Commit-by: zqwenn Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > /kind feature **What does this PR do / why do we need it**: **Which issue(s) this PR fixes**: <!-- *Automatically closes linked issue when PR is merged. Usage: Fixes #<issue number>, or Fixes (paste link of issue). --> Fixes # **Special notes for your reviewers**: See merge request: Ascend/pytorch!273255 个月前
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 天前
test(test_out_warning_log_softmax_npu): Add warning before resize Co-authored-by: yuanqi1104<yuanqi13@huawei.com> # message auto-generated for no-merge-commit merge: !36890 merge yuanqi_add_resize_check into v2.7.1 test(test_out_warning_log_softmax_npu): Add warning before resize Created-by: yuanqi1104 Commit-by: yuanqi1104 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> https://gitcode.com/Ascend/pytorch/issues/2153 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. https://gitcode.com/Ascend/op-plugin/pull/5032 已修复_log_softmax无out版本的问题。 2. 本PR修复issue中的用例在resize时未产生WARNING告警的问题。 ,resize前添加告警检测。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 参见 https://gitcode.com/Ascend/op-plugin/pull/5032 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!368904 天前
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] npu_format_cast supports nz2nd Co-authored-by: yuanshuai000<yuanshuai70@huawei.com> # message auto-generated for no-merge-commit merge: !34633 merge v2.7.1 into v2.7.1 [feat] npu_format_cast supports nz2nd Created-by: yuanshuai000 Commit-by: yuanshuai000 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1. 4-bit场景支持ND的格式变化 2. 补充NZ_C0_X的Infer_Shape函数 3. 补充npu_format_cast接口的 nd2nz 和 nz2nd 测试用例 # 【资料变更】 新增npuFormatCast支持nz2nd的数据流:https://gitcode.com/cann/ops-math/blob/master/conversion/npu_format_cast/docs/aclnnNpuFormatCast.md # 【接口变更】 不涉及 # 【功能验证】 1. ACLNNFUZZ框架测试pta通路,覆盖4-bit, 8-bit, 16-bit. 32-bit的数据类型,维度覆盖2-6维,nz2nd功能均符合预期。 2. 新增ut测试看护TORCH API用例,ut通过 测试方法: cd test && python3 ./npu/test_npu_format.py 测试用例: float32类型ND -> NZ 以及 NZ -> ND ut测试结果: Ran 6 tests in 13.258s OK # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!346331 个月前
!20887 Internalformat torchnpu operator dispatch and add new parameter type f… Merge pull request !20887 from jiangpengfei/master 1 年前
!20739 [DFX] Add warnings when creating tensor with base format instead of internal format. Merge pull request !20739 from 刘嘉巍/master 1 年前
!17608 [cleancode2]The space and line feed problems are modified Merge pull request !17608 from 杜金航/master_cleancode 1 年前
[2.7.1][feature]support Lazy aclsetcompileopt Co-authored-by: wild-mechanical-small-flat<514123661@qq.com> # message auto-generated for no-merge-commit merge: !30362 merge v2.7.1 into v2.7.1 [2.7.1][feature]support Lazy aclsetcompileopt Created-by: Dring Commit-by: wild-mechanical-small-flat Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [✓ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1、 在PTA中新增LazyAclopSet 管理类,用于实现ACL编译选项的延迟设置与批量提交。具体修改包括: 1)在新类中提供 LazyAclSetCompileopt 方法,用于在初始化阶段暂存所有环境变量解析出的编译选项; 2)在算子实际运行前(OpCommand::Run 中)调用 SetCompileopt 方法,将暂存的选项一次性设置到ACL运行时环境; 2、 将 EnvVariables.cpp 中所有通过 REGISTER_OPTION_HOOK 注册的ACL选项设置调用,从直接调用 AclSetCompileopt 统一替换为调用 LazyAclSetCompileopt 3、 通过互斥锁保证线程安全,并仅在特定初始化模式下启用,以兼容现有行为 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/4b98bf46-dd55-473e-bda3-81843d06e528/image.png 'image.png') # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 1、算子编译选项设置后,算子实际调用前,进入lazyinit---对应观察,日志里没有aclsetcompileopt调用,后台没有算子编译多进程 2、算子编译时,默认算子编译选项也生效,设置的算子编译选项为设置的值而非默认值---手动配置可以覆盖默认值,也可以新增,同时可以多次配置,日志里在aclop调用前最后的配置项一定要和手动配置的一样,同时要保证配置的顺序和脚本手动配置的顺序一致,另外观察下默认配置值和手动配置值的顺序和修改之前一致 3、aclop算子调用后,配置选项立即生效 4、第一次算子调用后,再次设置算子编译选项,算子直接编译且为设置值 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!303623 个月前
[2.7.1][feature]support Lazy aclsetcompileopt Co-authored-by: wild-mechanical-small-flat<514123661@qq.com> # message auto-generated for no-merge-commit merge: !30362 merge v2.7.1 into v2.7.1 [2.7.1][feature]support Lazy aclsetcompileopt Created-by: Dring Commit-by: wild-mechanical-small-flat Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [✓ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1、 在PTA中新增LazyAclopSet 管理类,用于实现ACL编译选项的延迟设置与批量提交。具体修改包括: 1)在新类中提供 LazyAclSetCompileopt 方法,用于在初始化阶段暂存所有环境变量解析出的编译选项; 2)在算子实际运行前(OpCommand::Run 中)调用 SetCompileopt 方法,将暂存的选项一次性设置到ACL运行时环境; 2、 将 EnvVariables.cpp 中所有通过 REGISTER_OPTION_HOOK 注册的ACL选项设置调用,从直接调用 AclSetCompileopt 统一替换为调用 LazyAclSetCompileopt 3、 通过互斥锁保证线程安全,并仅在特定初始化模式下启用,以兼容现有行为 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/4b98bf46-dd55-473e-bda3-81843d06e528/image.png 'image.png') # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 1、算子编译选项设置后,算子实际调用前,进入lazyinit---对应观察,日志里没有aclsetcompileopt调用,后台没有算子编译多进程 2、算子编译时,默认算子编译选项也生效,设置的算子编译选项为设置的值而非默认值---手动配置可以覆盖默认值,也可以新增,同时可以多次配置,日志里在aclop调用前最后的配置项一定要和手动配置的一样,同时要保证配置的顺序和脚本手动配置的顺序一致,另外观察下默认配置值和手动配置值的顺序和修改之前一致 3、aclop算子调用后,配置选项立即生效 4、第一次算子调用后,再次设置算子编译选项,算子直接编译且为设置值 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!303623 个月前
!20994 Add RunOpApiV2 Merge pull request !20994 from 姜怡文/main_opm 1 年前
!20994 Add RunOpApiV2 Merge pull request !20994 from 姜怡文/main_opm 1 年前
!17608 [cleancode2]The space and line feed problems are modified Merge pull request !17608 from 杜金航/master_cleancode 1 年前
!19007 cleancode Merge pull request !19007 from 杜金航/master_cleancode 1 年前
[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 个月前
add lock for workspaceallocator Co-authored-by: huangyunlong2022<huangyunlong4@h-partners.com> # message auto-generated for no-merge-commit merge: !26717 merge 2.7ts into v2.7.1 add lock for workspaceallocator Created-by: huangyunlong2022 Commit-by: huangyunlong2022 Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind bug > /kind task > /kind feature **What does this PR do / why do we need it**: 1、通过环境变量控制是否开启每个流一个taskqueue,默认关闭 2、开启后,在enqueue的时候初始化taskqueue,避免流创建的时候初始化太多taskqueue线程,同时为了避免多线程多次初始化进行加锁保护 3、初始化的时候默认选择当前流下发,当前计算算子都是下发到当前流上,对于通信算子下发到通信流上,将其下发的流传到enqueue使用传入的通信流下发 4、取流的时候进行清queue,只清对应流上的queue,可以避免不必要的清queue耗时 5、当前event需要先record后wait,在多taskqueue时为了保序,需要wait在enqueue时确保record已经下发(dequeue阶段通过record数量判断,在event复用场景下,wait之后的record会导致record数量判断失效,导致卡死) 6、event销毁需要确保record,wait已经下发后进行,为了不阻塞,当前采用lazy destroy 7、workspaceallocator进行加锁保护,防止多taskqueue出现竞争问题 **Which issue(s) this PR fixes**: <!-- *Automatically closes linked issue when PR is merged. Usage: Fixes #<issue number>, or Fixes (paste link of issue). --> Fixes # **Special notes for your reviewers**: See merge request: Ascend/pytorch!267176 个月前
!15979 add OpHook and Swap related changes Merge pull request !15979 from ChenDonYY/master_swap 1 年前
/approve Co-authored-by: DaiFu<daifu2@huawei.com> # message auto-generated for no-merge-commit merge: !31096 merge v2.7.1 into v2.7.1 [2.7.1]support aclnn extension Created-by: daifu1234567 Commit-by: DaiFu 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能力等内容) 1、get_npu_data_unsafe_flag等函数加TORCH_NPU_API对外暴露,extension中可以从libtorch_npu.so中获取对应函数 2、修改CustomRegisterSchema.cpp生成逻辑,extension场景用TORCH_LIBRARY_FRAGMENT代替TORCH_LIBRARY 3、修复bug,extension场景下无需获取VERSION_PART # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 1、extension可以正常获取所需函数 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/37de6f85-f1c3-4de4-bb75-fe9715df96bc/image.png 'image.png') 2、extension中生成的CustomRegisterSchema.cpp中使用TORCH_LIBRARY_FRAGMENT ![image.png](https://raw.gitcode.com/user-images/assets/7404318/73f39b9e-e9d2-47b7-8d5f-e53ccac92f70/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!310963 个月前
[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 个月前
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 天前
!22299 Add support for custom dtype Merge pull request !22299 from chuboning/v2.7.1 10 个月前