文件最后提交记录最后更新时间
fix: add pipe_barrier between TLOAD and TSTORE in TGET/TPUT Co-authored-by: echo_stone<liulei281@huawei.com> # message auto-generated for no-merge-commit merge: !1032 merge readme into master fix: add pipe_barrier between TLOAD and TSTORE in TGET/TPUT Created-by: echo_stone Commit-by: echo_stone Merged-by: cann-robot Description: ## 描述 本PR涉及三个问题: 1. tget指令在pypto中发现存在概率失败的问题,需要在tload和tstore之间增加pipe_barrier 2. tget_bandwidth 的readme对mpich软件依赖描述不准确 3. syncall指令的A2A3测试用例不应该写死 24:48,B1是24:48,B4是20:40 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!10323 天前
add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Co-authored-by: kerwinair<wenquan.xu@huawei.com> # message auto-generated for no-merge-commit merge: !945 merge pto-ccu-aiv-trigger into master add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Created-by: kerwinair Commit-by: kerwinair Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!94515 天前
add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Co-authored-by: kerwinair<wenquan.xu@huawei.com> # message auto-generated for no-merge-commit merge: !945 merge pto-ccu-aiv-trigger into master add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Created-by: kerwinair Commit-by: kerwinair Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!94515 天前
Split comm instruction implementations into a2a3/a5 folders Co-authored-by: echo_stone<liulei281@huawei.com> # message auto-generated for no-merge-commit merge: !797 merge a2_a5 into master Split comm instruction implementations into a2a3/a5 folders Created-by: echo_stone Commit-by: echo_stone Merged-by: cann-robot Description: ## 描述 通信指令新增 a2a3 和 a5文件夹,并且将通信指令在a2a3 和 a5文件夹分别实现,如果实现相同,则直接include对应的头文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!7971 个月前
Split comm instruction implementations into a2a3/a5 folders Co-authored-by: echo_stone<liulei281@huawei.com> # message auto-generated for no-merge-commit merge: !797 merge a2_a5 into master Split comm instruction implementations into a2a3/a5 folders Created-by: echo_stone Commit-by: echo_stone Merged-by: cann-robot Description: ## 描述 通信指令新增 a2a3 和 a5文件夹,并且将通信指令在a2a3 和 a5文件夹分别实现,如果实现相同,则直接include对应的头文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!7971 个月前
add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Co-authored-by: kerwinair<wenquan.xu@huawei.com> # message auto-generated for no-merge-commit merge: !945 merge pto-ccu-aiv-trigger into master add AIV-fused input path for TReduce, TScatter, TGather, TBroadCast ISA, with feat of AIV trigger and exchange data through HBM Created-by: kerwinair Commit-by: kerwinair Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!94515 天前
feat(comm): add CCU engine path for TREDUCE/TSCATTER/TBROADCAST/TGATHER Co-authored-by: kerwinair<wenquan.xu@huawei.com> # message auto-generated for no-merge-commit merge: !915 merge pto-ccu-aiv-trigger into master feat(comm): add CCU engine path for TREDUCE/TSCATTER/TBROADCAST/TGATHER Created-by: kerwinair Commit-by: kerwinair Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!91521 天前
Split comm instruction implementations into a2a3/a5 folders Co-authored-by: echo_stone<liulei281@huawei.com> # message auto-generated for no-merge-commit merge: !797 merge a2_a5 into master Split comm instruction implementations into a2a3/a5 folders Created-by: echo_stone Commit-by: echo_stone Merged-by: cann-robot Description: ## 描述 通信指令新增 a2a3 和 a5文件夹,并且将通信指令在a2a3 和 a5文件夹分别实现,如果实现相同,则直接include对应的头文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!7971 个月前
README.md

include/pto/comm/

PTO communication instruction set for inter-NPU data transfer, signal synchronization, and collective operations.

  • pto_comm_inst.hpp: Unified public API header. Upper-layer code should include this file only; it pulls in all necessary types and dispatches to the correct backend (NPU native or CPU simulation).

Layout

comm/
├── pto_comm_inst.hpp            # Public API: TPUT, TGET, TNOTIFY, TWAIT, TTEST,
│                                #   TGATHER, TSCATTER, TBROADCAST, TREDUCE,
│                                #   TPUT_ASYNC, TGET_ASYNC
├── pto_comm_instr_impl.hpp      # Backend dispatcher — includes NPU or CPU impl
│                                #   based on __CCE_AICORE__ / __CPU_SIM / PTO_NPU_ARCH_A5
├── comm_types.hpp               # Shared types: ParallelGroup, Signal, Signal2D,
│                                #   NotifyOp, WaitCmp, ReduceOp, DmaEngine, AsyncEvent
│
├── a2a3/                        # A2/A3 (Ascend 910B/910C) architecture implementations
│   ├── TPut.hpp                 # TPUT_IMPL  — remote write (local GM → UB → remote GM)
│   ├── TGet.hpp                 # TGET_IMPL  — remote read  (remote GM → UB → local GM)
│   ├── TNotify.hpp              # TNOTIFY_IMPL — send flag notification
│   ├── TWait.hpp                # TWAIT_IMPL — blocking wait on signal(s)
│   ├── TTest.hpp                # TTEST_IMPL — non-blocking signal test
│   ├── TGather.hpp              # TGATHER_IMPL  — root collects from all ranks
│   ├── TScatter.hpp             # TSCATTER_IMPL — root distributes to all ranks
│   ├── TBroadCast.hpp           # TBROADCAST_IMPL — root broadcasts to all ranks
│   ├── TReduce.hpp              # TREDUCE_IMPL — root gathers and reduces (Sum/Max/Min)
│   └── async/
│       ├── TPutAsync.hpp        # TPUT_ASYNC_IMPL (SDMA only)
│       └── TGetAsync.hpp        # TGET_ASYNC_IMPL (SDMA only)
│
├── a5/                          # A5 (Ascend 950) architecture implementations
│   ├── T*.hpp                   # Sync instructions (include a2a3/ counterparts)
│   └── async/
│       ├── TPutAsync.hpp        # TPUT_ASYNC_IMPL (SDMA with MTE fallback + URMA)
│       └── TGetAsync.hpp        # TGET_ASYNC_IMPL (SDMA + URMA)
│
└── async_common/                # Common async implementations (shared by a2a3/a5)
    ├── async_types.hpp          # SDMA/URMA session and context types
    ├── async_event_impl.hpp     # AsyncEvent::Wait/Test, BuildAsyncSession
    ├── TPutAsyncCommonDetail.hpp # Common TPUT_ASYNC detail helpers + SDMA impl
    └── TGetAsyncCommonDetail.hpp # Common TGET_ASYNC detail helpers + SDMA impl

Architecture

 User code
    │
    ▼
 pto_comm_inst.hpp              ← public API (template wrappers + event handling)
    │                              includes async_common/async_event_impl.hpp
    ▼
 pto_comm_instr_impl.hpp        ← compile-time dispatch
    │
    ├── PTO_NPU_ARCH_A5    →  a5/T*.hpp / a5/async/T*Async.hpp
    ├── __CCE_AICORE__     →  a2a3/T*.hpp / a2a3/async/T*Async.hpp
    └── __CPU_SIM          →  pto/cpu/comm/T*.hpp  (CPU simulation stubs)

Instruction Categories

Category Instructions Description
Point-to-Point (sync) TPUT, TGET Remote write / read through UB staging tile. Supports single-buffer and ping-pong double-buffering modes.
Point-to-Point (async) TPUT_ASYNC, TGET_ASYNC GM-to-GM DMA via SDMA or URMA engine. Returns AsyncEvent for later Wait/Test.
Signal Synchronization TNOTIFY, TWAIT, TTEST Flag-based cross-NPU synchronization. Signals are int32_t scalars or 2D grids.
Collective TGATHER, TSCATTER, TBROADCAST, TREDUCE Multi-rank operations via ParallelGroup. Root-initiated; support chunked 2D sliding and ping-pong.

Key Types (comm_types.hpp)

  • ParallelGroup<GlobalData> — Lightweight view wrapping an array of GlobalTensor objects, one per rank.
  • Signal — Scalar GlobalTensor<int32_t, Shape<1,1,1,1,1>> for single-flag synchronization.
  • Signal2D<Rows, Cols> — 2D signal grid with compile-time shape; supports dense and strided sub-region views.
  • AsyncEvent — Handle returned by async instructions; call .Wait(session) or .Test(session) to synchronize.
  • AsyncSession — Engine-agnostic session built via BuildAsyncSession<engine>().
  • ISA semantics and examples: docs/isa/
  • CPU simulation stubs: pto/cpu/comm/
  • NPU async backends: pto/npu/comm/async/