news 2026/5/9 16:41:06

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

许多 PTO 内建接口除了 Tile 外还会带标量参数(例如比较模式、舍入模式、原子模式或字面常量)。

本文档汇总include/pto/common/pto_instr.hpp公共内建接口中出现的标量/枚举类型。

标量值

部分指令直接使用 C++ 基本类型作为标量参数:

  • TADDS/TMULS/TDIVS/TEXPANDS:标量类型为TileData::DType
  • TMINS:标量为模板类型T,必须可转换为 Tile 元素类型。
  • TCI:标量S为模板类型T,并且必须与TileData::DType匹配(由实现中的static_assert强制)。

PTO ISA 类型助记符(参考)

ISA 文档会用简短助记符(例如fp16s8)描述指令语义。不同后端在任意时刻可能只支持其中一部分;实现状态可参考include/README_zh.md

整数类型

类型助记符
有符号s4,s8,s16,s32,s64
无符号u4,u8,u16,u32,u64

浮点类型

类型助记符
4-bit float 家族fp4,hif4,mxfp4
8-bit float 家族fp8,hif8,mxfp8
16-bit float 家族bf16,fp16
32-bit float 家族tf32,hf32,fp32
64-bit floatfp64

无类型比特宽度

类型助记符
typeless bitsb4,b8,b16,b32,b64
兼容性规则(ISA 约定)

当两个助记符满足以下条件时,认为二者兼容:

  • 位宽相同,并且满足其一:
    • 类型相同;或
    • 同位宽的有符号/无符号整数;或
    • 其中一侧为同位宽的 typeless bits(b*)。

这属于文档层面的规则,用于描述指令合法性;具体指令可能进一步限制类型。

核心枚举

以下枚举均可通过#include <pto/pto-inst.hpp>使用。

pto::RoundMode

定义于include/pto/common/constants.hppTCVT使用它来指定舍入行为(例如RoundMode::CAST_RINT)。

pto::CmpMode

定义于include/pto/common/type.hppTCMPS(以及TCMP)使用它进行逐元素比较(EQ/NE/LT/GT/GE/LE)。

pto::MaskPattern

定义于include/pto/common/type.hpp。mask-pattern 形式的TGATHER使用它选择预定义的 0/1 mask 模式。

pto::AtomicType

定义于include/pto/common/constants.hpp。作为TSTORE<..., AtomicType::AtomicAdd>(或AtomicNone)的模板参数。

pto::AccToVecModepto::ReluPreMode

定义于include/pto/common/constants.hpp。用于TMOV的部分重载:从累加器 Tile 移动到向量/矩阵 Tile 时,选择量化与/或 ReLU 行为。

pto::PadValue

定义于include/pto/common/constants.hpp。属于Tile<...>模板参数,并被一些实现用于定义有效区域外元素的处理策略(例如 select/copy/pad)。

示例

#include <pto/pto-inst.hpp> using namespace pto; void example(Tile<TileType::Vec, float, 16, 16>& dst, Tile<TileType::Vec, float, 16, 16>& src) { TCVT(dst, src, RoundMode::CAST_RINT); TMINS(dst, src, 0.0f); }

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

CANN驱动设备错误码查询

dcmi_get_device_errorcode_string 【免费下载链接】driver 本项目是CANN提供的驱动模块&#xff0c;实现基础驱动和资源管理及调度等功能&#xff0c;使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_device_errorcode_string(int c…

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

CANN/driver删除算力组API文档

dcmi_delete_capability_group 【免费下载链接】driver 本项目是CANN提供的驱动模块&#xff0c;实现基础驱动和资源管理及调度等功能&#xff0c;使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_delete_capability_group(int card_id, …

作者头像 李华
网站建设 2026/5/9 16:38:31

老鸟如何使用Linux系统

老鸟如何使用Linux系统&#xff1a;从命令记忆到问题驱动的认知重构别再背命令了&#xff0c;你需要的是搭建一套排错决策树很多Linux学习者都有这样的经历&#xff1a;上学时抄下一张命令清单&#xff0c;ls、cd、grep、awk……背得滚瓜烂熟&#xff0c;可一离开课本就忘得一干…

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

SlimeNexus:基于Spring Boot与Vue的Minecraft服务器一体化运维管理平台

1. 项目概述&#xff1a;一个为《我的世界》服务器量身定制的现代化管理枢纽如果你是一名《我的世界》&#xff08;Minecraft&#xff09;服务器管理员&#xff0c;尤其是运营着有一定玩家基数的社区服&#xff0c;那么你一定对“管理”这两个字的重量深有体会。从玩家数据备份…

作者头像 李华
网站建设 2026/5/9 16:31:03

CANN/atvoss内核调度运行接口

BaseKernelSchedule::Run 【免费下载链接】atvoss ATVOSS&#xff08;Ascend C Templates for Vector Operator Subroutines&#xff09;是一套基于Ascend C开发的Vector算子库&#xff0c;致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。 …

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

Gitee CodePecker SCA:中国企业级软件供应链安全的破局者

随着全球数字化转型进程加速&#xff0c;软件供应链安全正面临前所未有的挑战。开源组件的大规模应用在提升开发效率的同时&#xff0c;也带来了复杂的安全隐患。据行业统计&#xff0c;2022年开源组件相关问题同比增长超过200%&#xff0c;其中约40%的企业因第三方组件问题遭受…

作者头像 李华