news 2026/5/9 12:12:47

CANN/PTO-ISA 信号同步指令详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/PTO-ISA 信号同步指令详解

信号同步指令详解(TNOTIFY / TWAIT / TTEST)

【免费下载链接】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

TNOTIFY — 发送信号通知

向远端 NPU 发送标志通知,用于轻量级同步。

template <typename GlobalSignalData, typename... WaitEvents> void TNOTIFY(GlobalSignalData &dstSignalData, int32_t value, NotifyOp op, WaitEvents&... events);

约束

  • GlobalSignalData::DType必须为int32_t
  • dstSignalData必须指向远端地址(目标 NPU)
  • dstSignalData应 4 字节对齐
  • NotifyOp::Set执行直接存储
  • NotifyOp::AtomicAdd使用硬件原子加指令

示例

// 直接赋值通知 comm::Signal sig(remote_signal); comm::TNOTIFY(sig, 1, comm::NotifyOp::Set); // 原子计数器自增 comm::Signal counter(remote_counter); comm::TNOTIFY(counter, 1, comm::NotifyOp::AtomicAdd);

重要:TNOTIFY 发送到远端地址,TWAIT/TTEST 检测本地地址。成对使用时需注意地址方向。


TWAIT — 阻塞等待信号

阻塞等待,直到信号满足比较条件。

template <typename GlobalSignalData, typename... WaitEvents> void TWAIT(GlobalSignalData &signalData, int32_t cmpValue, WaitCmp cmp, WaitEvents&... events);

约束

  • GlobalSignalData::DType必须为int32_t
  • signalData必须指向本地地址(当前 NPU)
  • 支持单个信号和多维信号 tensor(最高 5 维)
  • 对于 tensor,所有信号必须满足条件才会返回

示例

// 等待单个信号 comm::Signal sig(local_signal); comm::TWAIT(sig, 1, comm::WaitCmp::EQ); // 等待信号矩阵(4×8 网格所有元素 >= 1) comm::Signal2D<4, 8> grid(signal_matrix); comm::TWAIT(grid, 1, comm::WaitCmp::GE); // 等待计数器达到阈值 comm::TWAIT(counter, expected_count, comm::WaitCmp::GE);

TTEST — 非阻塞信号检测

非阻塞检测信号条件,返回bool

template <typename GlobalSignalData, typename... WaitEvents> bool TTEST(GlobalSignalData &signalData, int32_t cmpValue, WaitCmp cmp, WaitEvents&... events);

约束

与 TWAIT 相同,但不阻塞。

示例

// 非阻塞检测 bool ready = comm::TTEST(sig, 1, comm::WaitCmp::EQ); // 带超时的轮询 for (int i = 0; i < max_iters; ++i) { if (comm::TTEST(sig, 1, comm::WaitCmp::EQ)) { break; } }

TWAIT vs TTEST 选择指南

场景推荐原因
确定必须等待(barrier)TWAIT硬件自旋,更节能
等待期间需执行其他工作TTEST可交错执行
需要超时控制TTEST可设循环上限
就绪队列消费TTEST先检查再处理

【免费下载链接】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 12:12:38

CANN/ops-math Concat算子

Concat 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品A…

作者头像 李华
网站建设 2026/5/9 12:11:44

left link changed unexpectedly in block xxxx of index ““index_xxxxx“

文章目录环境症状问题原因解决方案报错编码环境 系统平台&#xff1a;N/A 版本&#xff1a;10.3 症状 对表执行vaccum操作时&#xff0c;提示索引相关的错误&#xff0c;信息如下&#xff1a; testdb# vacuum testtable01; ERROR: left link changed unexpectedly in blo…

作者头像 李华
网站建设 2026/5/9 12:10:39

apk改包名的三个步骤:

改包名的三个步骤: 1. 清单文件 <activityandroid:name="com.ai.app.MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="andro…

作者头像 李华
网站建设 2026/5/9 12:02:30

CANN/runtime内存拷贝设置API

11-03 内存拷贝与设置 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 本章节描述 Host-Device 间及 Device-Device 间的内存拷贝与内存设置接口。 aclError aclrtMemcpy(void *dst, size_t destMax, …

作者头像 李华
网站建设 2026/5/9 11:58:34

综采工作面刮板输送机直线度光纤光栅检测控制方法【附方案】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;可以私信&#xff0c;或者点击《获取方式》 &#xff08;1&#xff09;多芯光纤光栅阵列形态重构…

作者头像 李华