news 2026/5/9 12:48:15

CANN/pyasc gather_mask向量收集掩码API文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pyasc gather_mask向量收集掩码API文档

asc.language.basic.gather_mask

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

asc.language.basic.gather_mask(dst: LocalTensor, src0: LocalTensor, src1_pattern: LocalTensor, reduce_mode: bool, mask: int, params: GatherMaskParams, gather_mask_mode=GatherMaskMode.DEFAULT) → int

asc.language.basic.gather_mask(dst: LocalTensor, src0: LocalTensor, src1_pattern: int, reduce_mode: bool, mask: int, params: GatherMaskParams, gather_mask_mode=GatherMaskMode.DEFAULT) → int

以内置固定模式对应的二进制或者用户自定义输入的Tensor数值对应的二进制为gather mask(数据收集的掩码),从源操作数中选取元素写入目的操作数中。

对应的Ascend C函数原型

template <typename T, typename U, GatherMaskMode mode = defaultGatherMaskMode> __aicore__ inline void GatherMask(const LocalTensor<T>& dst, const LocalTensor<T>& src0, const LocalTensor<U>& src1Pattern, const bool reduceMode, const uint32_t mask, const GatherMaskParams& gatherMaskParams, uint64_t& rsvdCnt)
template <typename T, GatherMaskMode mode = defaultGatherMaskMode> __aicore__ inline void GatherMask(const LocalTensor<T>& dst, const LocalTensor<T>& src0, const uint8_t src1Pattern, const bool reduceMode, const uint32_t mask, const GatherMaskParams& gatherMaskParams, uint64_t& rsvdCnt)

参数说明

  • dst: 目的操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。
  • src0: 源操作数。类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。LocalTensor的起始地址需要32字节对齐。数据类型需要与目的操作数保持一致。
  • src1_pattern: gather mask(数据收集的掩码),分为内置固定模式和用户自定义模式两种:
    • 内置固定模式:src1_pattern数据类型为uint8_t,取值范围为[1,7],所有repeat迭代使用相同的gather mask。不支持配置src1_repeat_stride。

      1:01010101…0101 # 每个repeat取偶数索引元素 2:10101010…1010 # 每个repeat取奇数索引元素 3:00010001…0001 # 每个repeat内每四个元素取第一个元素 4:00100010…0010 # 每个repeat内每四个元素取第二个元素 5:01000100…0100 # 每个repeat内每四个元素取第三个元素 6:10001000…1000 # 每个repeat内每四个元素取第四个元素 7:11111111…1111 # 每个repeat内取全部元素

    • 用户自定义模式:src1_pattern数据类型为LocalTensor,迭代间间隔由src1_repeat_stride决定,迭代内src1_pattern连续消耗。

  • reduce_mode: 用于选择mask参数模式,数据类型为bool,支持如下取值:
    • False:Normal模式。该模式下,每次repeat操作256Bytes数据,总的数据计算量为repeat_times * 256Bytes。mask参数无效,建议设置为0。按需配置repeat_times、src0_block_stride、src0_repeat_stride参数。支持src1_pattern配置为内置固定模式或用户自定义模式。用户自定义模式下可根据实际情况配置src1_repeat_stride。

    • True:Counter模式。根据mask等参数含义的不同,该模式有以下两种配置方式:

      配置方式一:每次repeat操作mask个元素,总的数据计算量为repeat_times * mask个元素。mask值配置为每一次repeat计算的元素个数。按需配置repeat_times、src0_block_stride、src0_repeat_stride参数。支持src1_pattern配置为内置固定模式或用户自定义模式。用户自定义模式下可根据实际情况配置src1_repeat_stride。 配置方式二:总的数据计算量为mask个元素。mask配置为总的数据计算量。repeat_times值不生效,指令的迭代次数由源操作数和mask共同决定。按需配置src0_block_stride、src0_repeat_stride参数。支持src1_pattern配置为内置固定模式或用户自定义模式。用户自定义模式下可根据实际情况配置src1_repeat_stride。

  • mask: 用于控制每次迭代内参与计算的元素。根据reduce_mode,分为两种模式:
    • Normal模式:mask无效,建议设置为0。
    • Counter模式:取值范围[1, 232 – 1]。不同的版本型号Counter模式下,mask参数表示含义不同。具体配置规则参考上文reduce_mode参数描述。
  • params: 控制操作数地址步长的数据结构,GatherMaskParams类型。具体参数包括:
    • src0_block_stride: 用于设置src0同一迭代不同DataBlock间的地址步长。
    • repeat_times: 迭代次数。
    • src0_repeat_stride: 用于设置src0相邻迭代间的地址步长。
    • src1_repeat_stride: 用于设置src1相邻迭代间的地址步长。
  • mode: 模板参数,用于指定gather_mask的模式,当前仅支持默认模式GatherMaskMode.DEFAULT,为后续功能做预留。

返回值说明

该条指令筛选后保留下来的元素计数,对应dst_local中有效元素个数,数据类型为uint64_t。

约束说明

  • 操作数地址对齐要求请参见 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址对齐约束”。
  • 操作数地址重叠约束请参考 《Ascend C算子开发接口》 中的“通用说明和约束-通用地址重叠约束”。
  • 若调用该接口前为Counter模式,在调用该接口后需要显式设置回Counter模式(接口内部执行结束后会设置为Normal模式)。

调用示例

src0_local = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.VECIN, addr=0, tile_size=512) dst_local = asc.LocalTensor(dtype=asc.float16, pos=asc.TPosition.VECOUT, addr=0, tile_size=512) pattern_value = 2 reduce_mode = False gather_mask_mode = asc.GatherMaskMode.DEFAULT mask = 0 params = asc.GatherMaskParams(src0_block_stride=1, repeat_times=1, src0_repeat_stride=0, src1_repeat_stride=0) rsvd_cnt = asc.gather_mask(dst_local, src0_local, pattern_value, reduce_mode, mask, params, gather_mask_mode)

【免费下载链接】pyasc本项目为Python用户提供算子编程接口,支持在昇腾AI处理器上加速计算,接口与Ascend C一一对应并遵守Python原生语法。项目地址: https://gitcode.com/cann/pyasc

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

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

Motif项目:用大语言模型为强化学习智能体提供内在奖励引导

1. 项目概述&#xff1a;当智能体学会“自我反思”在强化学习领域&#xff0c;让智能体&#xff08;Agent&#xff09;在复杂、稀疏奖励的环境中高效探索&#xff0c;一直是个老大难问题。想象一下&#xff0c;你让一个机器人去一个布满房间的迷宫里找一把钥匙&#xff0c;但只…

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

如何借助Taotoken用量看板精准分析并优化团队的AI调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何借助Taotoken用量看板精准分析并优化团队的AI调用成本 对于技术负责人和运维人员而言&#xff0c;随着团队AI应用规模的扩大&a…

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

物联网联邦学习实战:量化训练、数据异构与噪声标签的挑战与优化

1. 项目概述与核心挑战在物联网&#xff08;IoT&#xff09;的浪潮下&#xff0c;数以亿计的智能设备正以前所未有的密度渗透到我们生活的方方面面&#xff0c;从智能家居传感器到工业网关&#xff0c;再到可穿戴设备。这些设备每天都在产生海量的、蕴含丰富价值的数据。然而&a…

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

PyPTO分布式共享内存加载

pypto.distributed.shmem_load 【免费下载链接】pypto PyPTO&#xff08;发音: pai p-t-o&#xff09;&#xff1a;Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Atlas A3 推理系列产品√Atlas A2 推…

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

CANN/ge ES 模块所有权关系反转分析

ES 模块所有权关系反转分析 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、…

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

需求感知AI:从理解人类深层需求到构建可持续智能系统

1. 项目概述&#xff1a;当AI开始思考“你需要什么”“我需要一杯咖啡。”这是我们日常生活中再普通不过的一句话。但你是否想过&#xff0c;当这句话被一个AI系统“听到”并试图响应时&#xff0c;背后会引发怎样一连串复杂的技术决策与伦理考量&#xff1f;咖啡是“需要”吗&…

作者头像 李华