news 2026/5/9 18:58:11

CANN/pto-isa核心类型详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pto-isa核心类型详解

核心类型详解

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

Signal — 标量信号

用于单标志同步,封装int32_t类型的 GM 地址:

using Signal = GlobalTensor<int32_t, Shape<1,1,1,1,1>, Stride<1,1,1,1,1>, Layout::ND>; comm::Signal sig(ptr); // ptr: __gm__ int32_t*

Signal2D — 二维信号矩阵

编译期形状的二维信号网格,支持密集布局和子区域视图:

// 密集 4×8 网格(步长自动推导为 8) comm::Signal2D<4, 8> grid(ptr); // 从 128 列大网格中的子区域(步长 = 128) comm::Signal2D<4, 8> sub(ptr + offset, 128);

ParallelGroup — 集合通信分组

轻量级视图,封装多 rank 的GlobalTensor对象数组:

template <typename GlobalData> struct ParallelGroup { GlobalData *tensors; // 每个 rank 的 GlobalTensor 数组 int nranks; // rank 总数 int rootIdx; // root NPU 的 rank 索引 static ParallelGroup Create(GlobalData *tensorArray, int size, int rootIdx); };

关键约束

  • tensors指向外部数组(不做动态内存分配)
  • rootIdx是 root rank 在组中的索引,所有 rank 必须传入相同的rootIdx
  • 通过operator[]按 team rank 索引访问

NotifyOp — 通知操作类型

说明
NotifyOp::AtomicAdd原子加(signal += value
NotifyOp::Set直接赋值(signal = value

WaitCmp — 比较运算符

说明
WaitCmp::EQ等于 (==)
WaitCmp::NE不等于 (!=)
WaitCmp::GT大于 (>)
WaitCmp::GE大于等于 (>=)
WaitCmp::LT小于 (<)
WaitCmp::LE小于等于 (<=)

ReduceOp — 归约运算符

说明
ReduceOp::Sum逐元素求和
ReduceOp::Max逐元素取最大值
ReduceOp::Min逐元素取最小值

AtomicType — 原子操作类型

定义于include/pto/common/constants.hpp

说明
AtomicType::AtomicNone无原子操作(默认)
AtomicType::AtomicAdd原子加操作

DmaEngine — DMA 引擎选择

说明
DmaEngine::SDMASDMA 引擎,支持二维传输
DmaEngine::URMAURMA 引擎,支持一维传输(仅 Ascend950 / NPU_ARCH 3510)

AsyncEvent — 异步事件句柄

struct AsyncEvent { uint64_t handle; DmaEngine engine; bool valid() const; // handle != 0 时返回 true bool Wait(const AsyncSession &session) const; // 阻塞直到传输完成 bool Test(const AsyncSession &session) const; // 非阻塞完成检测 };

AsyncSession — 异步会话

引擎无关的会话对象,通过BuildAsyncSession<engine>()构建:

struct AsyncSession { DmaEngine engine; sdma::SdmaSession sdmaSession; urma::UrmaSession urmaSession; bool valid; };

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 18:57:59

CANN/cann-learning-hub:torch_npu IPC特性详解

1 背景介绍 【免费下载链接】cann-learning-hub CANN 学习中心仓&#xff0c;支持在线互动运行、边学边练&#xff0c;提供教程、示例与优化方案&#xff0c;一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.com/cann/cann-learning-hub IPC&#xff08;Inte…

作者头像 李华
网站建设 2026/5/9 18:55:06

DeepEn2023数据集:边缘AI能耗评估与低功耗模型优化实战指南

1. 项目概述与核心价值最近在边缘AI和可持续计算领域&#xff0c;一个名为DeepEn2023的数据集开始引起不少研究者和工程师的关注。如果你正在做移动设备上的模型部署、嵌入式AI芯片的能效优化&#xff0c;或者关心如何让AI应用更“绿色”&#xff0c;那么这个数据集很可能就是你…

作者头像 李华
网站建设 2026/5/9 18:53:29

鸿蒙PC多端适配的断点设计与布局策略

踩坑记录25&#xff1a;多端适配的断点设计与布局策略 阅读时长&#xff1a;10分钟 | 难度等级&#xff1a;高级 | 适用版本&#xff1a;HarmonyOS NEXT (API 12) 关键词&#xff1a;GridRow、GridCol、断点系统、响应式布局 声明&#xff1a;本文基于真实项目开发经历编写&…

作者头像 李华
网站建设 2026/5/9 18:53:20

CANN/sip CgemmBatched算子

HCgemmBatched 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库&#xff0c;基于华为Ascend AI处理器&#xff0c;专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 …

作者头像 李华
网站建设 2026/5/9 18:48:32

图数据库与记忆体融合:构建AI智能体的结构化记忆系统

1. 项目概述&#xff1a;当图数据库遇上记忆体&#xff0c;会擦出怎样的火花&#xff1f;最近在折腾一些需要处理复杂关系数据的项目时&#xff0c;我一直在寻找一个能同时搞定“关系存储”和“上下文记忆”的解决方案。传统的做法要么是把数据一股脑塞进图数据库&#xff0c;然…

作者头像 李华