文件最后提交记录最后更新时间
Add cmake scripts for torch_npu with safe compile args. 4 年前
[refactor] eliminate the dependency on libhccl and libopapi when import torch_npu Co-authored-by: liwei386<liwei386@huawei.com> # message auto-generated for no-merge-commit merge: !31869 merge v2.7.1 into v2.7.1 [refactor] eliminate the dependency on libhccl and libopapi when import torch_npu Created-by: liwei386 Commit-by: liwei386 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 > 1、将hccl接口改成运行时加载,消除import torch_npu时对libhccl的依赖 > 2、优化asd初始化逻辑,避免import torch_npu时依赖libopapi算子库 # 【资料变更】 > “不涉及” # 【接口变更】 > “不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!318692 个月前
!11232 Register the communication operator adaptation required by data_parallel Merge pull request !11232 from 闫鹏全/master 2 年前
torch_npu.npu.Event inherits torch.Event, add GetPerStreamQueue in NPUGuardImpl's function Co-authored-by: zhaoyu<nanzhaogang@qq.com> # message auto-generated for no-merge-commit merge: !29915 merge v2.7.1-event_stream into v2.7.1 torch_npu.npu.Event inherits torch.Event, add GetPerStreamQueue in NPUGuardImpl's function Created-by: zhaoyu65 Commit-by: zhaoyu Merged-by: ascend-robot Description: # 【合入来源】 > (如有)请关联需求文档/issue链接 - [x] 需求 event/stream等接口对齐社区接入逻辑 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1、将torch_npu.npu.Event修改为torch.Event的子类,和pytorch原生代码行为保持一致; 2、实现NPUGuardImpl::uncheckedGetDevice(); 3、NPUGuardImpl::block()、destroyEvent()支持PerStreamQueue,参考NPUEvent; 4、优化NPUGuardImpl::synchronizeEvent(); # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 1、使用isinstance、issubclass方法校验torch_npu.npu.Event和torch.Event的关系; 2、验证单流单queue场景是否正常; # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!299153 个月前
torch_npu.npu.Event inherits torch.Event, add GetPerStreamQueue in NPUGuardImpl's function Co-authored-by: zhaoyu<nanzhaogang@qq.com> # message auto-generated for no-merge-commit merge: !29915 merge v2.7.1-event_stream into v2.7.1 torch_npu.npu.Event inherits torch.Event, add GetPerStreamQueue in NPUGuardImpl's function Created-by: zhaoyu65 Commit-by: zhaoyu Merged-by: ascend-robot Description: # 【合入来源】 > (如有)请关联需求文档/issue链接 - [x] 需求 event/stream等接口对齐社区接入逻辑 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 1、将torch_npu.npu.Event修改为torch.Event的子类,和pytorch原生代码行为保持一致; 2、实现NPUGuardImpl::uncheckedGetDevice(); 3、NPUGuardImpl::block()、destroyEvent()支持PerStreamQueue,参考NPUEvent; 4、优化NPUGuardImpl::synchronizeEvent(); # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 1、使用isinstance、issubclass方法校验torch_npu.npu.Event和torch.Event的关系; 2、验证单流单queue场景是否正常; # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!299153 个月前
[feature]aclgraph支持superkernel Co-authored-by: zhukkk<zhuke11@huawei.com> # message auto-generated for no-merge-commit merge: !31563 merge v2.7.1 into v2.7.1 [feature]aclgraph支持superkernel Created-by: zhukkk Commit-by: zhukkk Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [x] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 SuperKernel是一种算子的二进制融合技术,与源码融合不同,它聚焦于内核函数 (Kernel) 的二进制的调度方案,展开深度优化,于已编译的二进制代码基础上融合创建一个超级Kernel函数(SuperKernel),以调用子函数的方式调用多个其他内核函数,也就是子Kernel。相对于单算子下发,SuperKernel技术可以减少任务调度等待时间和调度开销,同时利用Task间隙资源进一步优化算子头开销。SuperKernel的参数中融合多个子kernel,在Superkernel内部直接调用算子,仅需一次stars调度后便可执行多个kernel。由于kernel内的调用路径比stars更短,性能更好,尤其是大量连续的aicore算子时,一个Superkernel可以融合上千个子算子,调用收益可达15%以上,为了获得该收益AclGraph需要支持Superkernel。 1、提供def super_kernel_optimize(self, optimize_options = None, debug_options = None) 2、提供def super_kernel_scope_begin/end(scope_name)接口标记superkernel融合范围做compile封装; 3、对optimize_options 、debug_options dict python入参类型做校验并转为sk_options; # 【资料变更】 def super_kernel_scope_begin/end(scope_name):标记superkernel融合范围,如果graph中不存在scope_begin/end标签表示整个aclgraph做superkernel融合; 参数说明:scope_name为None或非空字符串; 使用示例:表示融合sk1范围内的matmul、relu算子 with torch.npu.graph(g): torch_npu.npu.super_kernel_scope_begin("sk1") z = torch.matmul(x, y) w = torch.relu(z) torch_npu.npu.super_kernel_scope_end("sk1") def super_kernel_optimize(self, optimize_options = None, debug_options = None):aclgraph capture后触发superkernel融合; 参数说明: optimize_options:支持preload_code、split_mode、stream_fusion; preload_code、: kernel执行前做指令的预加载,可选值:[0, 1, 2],0:按最大可能的预取size进行加载,1(默认值):按函数体大小进行加载,2:不进行预加载。 split_mode: 代码拆分的分数,可选值:[1,2,3,4]; stream_fusion: 是否是多流融合,可选值:[0, 1]; debug_options:支持debug_dcci_disable_on_kernel、debug_sync_aLL; debug_dcci_disable_on_kernel: opX算子结束后不使能dcci,可选值:["op1", "op2",...]; debug_sync_all: debug模式是否每个算子后面插入全核同步,可选值:[0, 1]; 使用示例: with torch.npu.graph(g): z = torch.matmul(x, y) w = torch.relu(z) optimize_options = { 'preload_code': 1, 'stream_fusion': 1 } debug_options = { 'debug_synn_alll':1 } g.super_kernel_optimize(optimize_options=optimize_options, debug_options=None) g.replay() # 【接口变更】 1、提供def super_kernel_optimize(self, optimize_options = None, debug_options = None) 2、提供def super_kernel_scope_begin/end(scope_name)接口标记superkernel融合范围做compile封装; # 【功能验证】 已新增UT用例看护,test/npu/test_aclgraph_super_kernel.py,流水线CI已通过 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!315632 个月前
sk头文件和cann保持一致 Co-authored-by: zhukkk<zhuke11@huawei.com> # message auto-generated for no-merge-commit merge: !34583 merge v2.7.1-26.0.0 into v2.7.1-26.0.0 sk头文件和cann保持一致 Created-by: zhukkk Commit-by: zhukkk Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [x] 重构优化 - [ ] 资料更新 # 【修改方案】 acl_sk头文件和cann下面的super_kernel头文件保持名称和内容一致 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 ![验证.png](https://raw.gitcode.com/user-images/assets/7404318/404c4dc1-21b1-499b-a4d6-37a49347bbad/验证.png '验证.png') # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!345831 个月前
!19150 support npugraph and mempool Merge pull request !19150 from jiangpengfei/master 1 年前
fix: fix from blob bug Co-authored-by: luochao60<luochao60@huawei.com> # message auto-generated for no-merge-commit merge: !33192 merge pta_fix_from_blob_20260212_v2.7.1-26.0.0 into v2.7.1-26.0.0 fix: fix from blob bug Created-by: luochao60 Commit-by: luochao60 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > (如有)请关联需求文档/issue链接 - [ ] 需求 - [x] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列 > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) 1. 修复 torch_npu/csrc/aten/common/from_blob.cppTensorMaker::computeStorageSize() 计算 storage size 时对 storage_offset_ 的处理 bug:原代码将 storage_offset_(按元素数计)直接累加到字节大小上,缺少 * itemsize,导致非 float32 类型或带偏移的 tensor 计算出的 storage size 偏小,from_blob 创建的 tensor storage 不足。修复后两处分支均改为 storage_size += storage_offset_.value() * itemsize;。 2. 修复 torch_npu/csrc/npu/Module.cpp_weak_ref_tensor 实现:原实现通过 t.data_ptr() + t.sizes() + t.strides() 调用 from_blob 构造新 tensor,丢失了原 tensor 的 storage_offset 信息,且当原 tensor 是 view(带 offset 或非平凡 stride)时,新 tensor 的 storage 会被错误地按视图形状重新计算,与原 storage 不一致。修复方式:基于原 tensor 的完整 storage().mutable_data()storage().nbytes() / element_size() 调用 from_blob 构造新 tensor(覆盖完整 storage),随后通过 set_sizes_and_stridesset_storage_offset 还原原 tensor 的视图信息,确保弱引用 tensor 的 storage、sizes、strides、offset 与原 tensor 完全一致。 3. 测试用例重构与新增: - 将原本散落在 test/cpp_extensions/extension.cpp 中的 from_blob 相关测试(check_from_blob/check_from_blob_strides/check_from_blob_delete)迁移到独立的 test/cpp_extensions/test_from_blob.cpp,按 at_npu::native::from_blob 接口能力分门别类组织。 - test/cpp_extensions/setup.py 注册新的扩展模块 torch_test_cpp_extension.npu_from_blob。 - test/cpp_extensions/test/test_cpp_extensions_aot.py 新增 TestFromBlob 测试类,覆盖 basic / deleter / strides / storage_offset / storage_offset_2d / storage_offset_dtype / storage_offset_contiguous / non_owning / clone 等场景;test_storage_sizes 增加 @SupportedDevices(['Ascend910B', 'Ascend910C']) 限制。 - test/npu/test_npu_format.py 新增 test_weak_ref_tensor_with_storage_offset 用例,构造带非平凡 stride 与 storage_offset 的 view,验证 _weak_ref_tensor 返回的 tensor 在 size、stride、storage_offset、storage().nbytes() 与数值上都与原 tensor 一致。 # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写"不涉及" 不涉及 # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写"不涉及" 不涉及 # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤 > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 1. C++ 扩展用例 test/cpp_extensions/test/test_cpp_extensions_aot.py::TestFromBlob:覆盖 at_npu::native::from_blob 在 basic、自定义 deleter、显式 strides、带 storage_offset、二维带 offset、不同 dtype、contiguous 标志、non-owning 语义、clone 后数据正确性等场景,验证修复后 storage 计算正确。 2. Python 用例 test/npu/test_npu_format.py::TestNPUFormat::test_weak_ref_tensor_with_storage_offset:构造 view_shape=[2,1,8,64]view_strides=[1536,0,192,1]view_offset=128 的 strided view,验证 _weak_ref_tensor 保持 size/stride/offset/storage 字节数一致且数值相等。 3. UT 已随 PR 一同提交,本地自验证通过。 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!331921 个月前
!11232 Register the communication operator adaptation required by data_parallel Merge pull request !11232 from 闫鹏全/master 2 年前
[fix][v2.7.1]Fix the core dump issue of the COW feature. Co-authored-by: y30062407<handsome0324@163.com> # message auto-generated for no-merge-commit merge: !31944 merge v2.7.1_cow into v2.7.1 [fix][v2.7.1]Fix the core dump issue of the COW feature. Created-by: yangch0324 Commit-by: y30062407 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 适配 _lazy_clone 算子(TensorFactories.cpp) 调用 PyTorch 核心 c10::impl::COW::lazy_clone_storage() 创建共享存储的 Tensor 副本 通过 StorageDescHelper::CopyDesc() 同步 NPU 特有的存储描述符 修改内存分配器 copy_data 实现(NPUCachingAllocator.cpp) 将 default_copy_data(CPU memcpy)替换为 aclrtMemcpy(ACL_MEMCPY_DEVICE_TO_DEVICE) 实现 NPU 设备间直接内存拷贝,避免 PCIe 传输开销 修改存储创建逻辑(NPUStorageImpl.cpp) 支持外部传入已分配的 data_ptr,配合 COW 懒克隆场景 # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 ![image.png](https://raw.gitcode.com/user-images/assets/7404318/a68135a4-c5aa-4ae8-be93-a9af0ab1c966/image.png 'image.png') python3 test_ops.py -v TestCompositeCompliancePRIVATEUSE1.test_cow_input_remainder_npu_float32 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!319442 个月前
add graph api extension for pluggable allocator Co-authored-by: ltcs11<litangshengsheng@huawei.com> # message auto-generated for no-merge-commit merge: !31794 merge v2.7.1 into v2.7.1 add graph api extension for pluggable allocator Created-by: ltcs11 Commit-by: ltcs11 Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 https://gitcode.com/Ascend/pytorch/issues/1574 - [ ] 需求 - [ ] 问题单 - [x] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 新增pluggable allocator自定义函数注册(已有自定义函数接口,仅新增注册功能,原调用会报错,新增后如有已注册接口则调用接口,未注册继续报错) 1. begin_allocate_to_pool_fn_ 2. end_allocate_to_pool_fn_ 3. release_pool_fn_ # 【资料变更】 不涉及 # 【接口变更】 不涉及 # 【功能验证】 不涉及,CUDA Pluggable Allocator并无此类测试 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [x] 代码注释完备,正确记录错误日志 - [x] 代码实现进行了返回值、空指针等校验 - [x] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [x] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/pytorch!317942 个月前
!24627 [feat] support high priority stream Merge pull request !24627 from xudaohong/v2.7.1-1 8 个月前
!20261 [feat] aclGraph task group Merge pull request !20261 from xudaohong/master 1 年前
!24200 Stress detect: add start log for cann interface. Merge pull request !24200 from 王超/v2.7.0_stresslog 9 个月前
!23428 Support p2p detect Merge pull request !23428 from 王超/v2.7.0_stresshccl 9 个月前
!23601 add segment_pool_id in memory snapshot Merge pull request !23601 from 郭光浩/v2.7.1 9 个月前
!12205 [3/N][memory_snapshot][feat] add flamegraph visualization Merge pull request !12205 from 杜金航/master 1 年前