昇腾社区首页
中文
注册
开发者
下载

vcgadd/vcgmax/vcgmin

功能说明

以block(32Byte)为单位完成向量的累加(或计算其中的最大值/最小值),每次迭代计算8个block,输出为每个block 的计算结果,共8个值,连续写入dst地址(half类型输出占16Byte,float 类型输出占32Byte)。

上述接口均支持通过MASK控制哪些元素参与计算。MASK应用于输入元素。如果某个块/组的掩码全部为0,则该接口不会写入对应的目标元素。

接口原型

// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同
// vcgadd
void vcgadd(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);
 
void vcgadd(__ubuf__ float *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);

// vcgmax
void vcgmax(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride); 

void vcgmax(__ubuf__ float *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);
 
// vcgmin
void vcgmin(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);

void vcgmin(__ubuf__ float *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);

参数说明

参数含义见表1

流水类型

PIPE_V