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

vcmax/vcmin

功能说明

vcmax:获取 256Byte 向量的元素最大值及其索引,其中 half 类型有128个元素,float 类型有64个元素。最大值及其索引的输出由 order 控制。

vcmin:获取 256Byte 向量的元素最小值及其索引,其中 half 类型有128个元素,float 类型有64个元素。最小值及其索引的输出由 order 控制。

表1 地址与步长对齐单位

数据类型

order参数

描述目的数据参数

描述源数据参数

地址

数据块步长

重复步长

地址

数据块步长

重复步长

f16

2’b00

4B

/

4B

32B

32B

32B

2’b01

4B

/

4B

32B

32B

32B

2’b10

2B

/

2B

32B

32B

32B

2’b11

4B

/

4B

32B

32B

32B

f32

2’b00

8B

/

8B

32B

32B

32B

2’b01

8B

/

8B

32B

32B

32B

2’b10

4B

/

4B

32B

32B

32B

2’b11

4B

/

4B

32B

32B

32B

函数原型

void vcmax(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride, Order_t order); 

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

参数说明

表2 vcmax特有参数说明

参数名

说明

order

支持四种模式:

  • VALUE_INDEX(2'b00):依次输出最大值和其索引,dst[0] 为最大值,dst[1] 是索引,如果存在多个最大值,索引值为最小索引。
  • INDEX_VALUE(2'b01):依次输出索引和最大值,dst[0] 为索引,dst[1] 是最大值,如果存在多个最大值,索引值为最小索引。
  • ONLY_VALUE(2'b10):只输出最大值。
  • ONLY_INDEX(2'b11):只输出最大值的最小索引,索引数据类型为 uint32_t,与输入数据类型无关。

流水类型

PIPE_V

同类型接口

void vcmin(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride, Order_t order); 

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