news 2026/7/15 15:06:02

昇腾C GatherMask函数文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
昇腾C GatherMask函数文档

GatherMask

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品 AI Core

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

x

功能说明

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

函数原型

  • 用户自定义模式

    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)

参数说明

表 1模板参数说明

参数名称

含义

T

源操作数src0和目的操作数dst的数据类型。

Ascend 950PR/Ascend 950DT,支持的数据类型为:int8_t/uint8_t/int16_t/uint16_t/half/bfloat16_t/float/int32_t/uint32_t

Atlas A3 训练系列产品 / Atlas A3 推理系列产品,支持的数据类型为:half/bfloat16_t/uint16_t/int16_t/float/uint32_t/int32_t

Atlas A2 训练系列产品 / Atlas A2 推理系列产品,支持的数据类型为:half/bfloat16_t/uint16_t/int16_t/float/uint32_t/int32_t

Atlas 200I/500 A2 推理产品,支持的数据类型为:half/uint16_t/int16_t/float/uint32_t/int32_t

Atlas 推理系列产品 AI Core,支持的数据类型为:half/uint16_t/int16_t/float/uint32_t/int32_t

U

用户自定义模式下src1Pattern的数据类型。支持的数据类型为uint8_t/uint16_t/uint32_t。

  • 当目的操作数数据类型为uint8_t/int8_t时,src1Pattern应为uint8_t数据类型。
  • 当目的操作数数据类型为b16时,src1Pattern应为uint16_t数据类型。
  • 当目的操作数数据类型为float/uint32_t/int32_t时,src1Pattern应为uint32_t数据类型。

mode

预留参数,为后续功能做预留,当前提供默认值,用户无需设置该参数。

表 2参数说明

参数名称

输入/输出

含义

dst

输出

目的操作数。

类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。

LocalTensor的起始地址需要32字节对齐。

src0

输入

源操作数。

类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。

LocalTensor的起始地址需要32字节对齐。

数据类型需要与目的操作数保持一致。

src1Pattern

输入

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

reduceMode

输入

用于选择mask参数模式,数据类型为bool,支持如下取值。

mask

输入

用于控制每次迭代内参与计算的元素。根据reduceMode,分为两种模式:

gatherMaskParams

输入

控制操作数地址步长的数据结构,GatherMaskParams类型。

具体定义请参考${INSTALL_DIR}/include/ascendc/basic_api/interface/kernel_struct_gather.h,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。

具体参数说明表3。

rsvdCnt

输出

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

表 3GatherMaskParams结构体参数说明

参数名称

含义

src0BlockStride

用于设置src0同一迭代不同DataBlock间的地址步长(起始地址之间的间隔)。单位为DataBlock。

repeatTimes

迭代次数。

src0RepeatStride

用于设置src0相邻迭代间的地址步长(起始地址之间的间隔)。单位为DataBlock。

src1RepeatStride

用于设置src1相邻迭代间的地址步长(起始地址之间的间隔)。单位为DataBlock。

返回值说明

约束说明

  • 操作数地址对齐要求请参见通用地址对齐约束。

  • 操作数地址重叠约束请参考通用地址重叠约束。

  • 若调用该接口前为Counter模式,在调用该接口后需要显式设置回Counter模式(接口内部执行结束后会设置为Normal模式)。

调用示例

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

非对称加解密概念+CBC概念+SM2

文章目录非对称信件来源是否正确&#xff1f;信件内容不被黑客破解&#xff1f;站在我的角度&#xff1a;CBC模式SM2的kdf测试向量非对称 #mermaid-svg-bgU7JoJd4pZuDPLW{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes…

作者头像 李华
网站建设 2026/7/15 15:03:04

SDINBDG4-16G(eMMC)简介及应用设计

一、简介: 型号:SDINBDG4-16G(SanDisk eMMC 5.1) 容量:16GB。 接口标准:eMMC 5.1(向后兼容eMMC 4.5/5.0)。 性能: 数据传输模式:HS400(8-bit DDR,最高200MHz时钟,400MB/s)。 工作电压:VCC = 2.7-3.6V,VCCQ = 1.7-1.95V(支持双电压)。 封装:153-ball FB…

作者头像 李华
网站建设 2026/7/15 15:00:35

CANN/asc-devkit:SetHF32TransMode函数

SetHF32TransMode 产品支持情况 产品 是否支持 Ascend 950PR/Ascend 950DT √ Atlas A3 训练系列产品 / Atlas A3 推理系列产品 √ Atlas A2 训练系列产品 / Atlas A2 推理系列产品 √ Atlas 200I/500 A2 推理产品 √ Atlas 推理系列产品 AI Core x Atlas 推理系列产品 V…

作者头像 李华