vcmax/vcmin
功能说明
vcmax:获取 256Byte 向量的元素最大值及其索引,其中 half 类型有128个元素,float 类型有64个元素。最大值及其索引的输出由 order 控制。
vcmin:获取 256Byte 向量的元素最小值及其索引,其中 half 类型有128个元素,float 类型有64个元素。最小值及其索引的输出由 order 控制。
上述接口均支持通过MASK控制哪些元素参与计算。
数据类型 |
order参数 |
描述目的数据参数 |
描述源数据参数 |
||||
|---|---|---|---|---|---|---|---|
地址大小 |
dstBlockStride |
dstRepeatStride |
地址大小 |
srcBlockStride |
srcRepeatStride |
||
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 |
|
补充说明:以order为 2’b00 为例,地址大小为4B的含义是:最大值和其索引各占2B。dstRepeatStride含义是:单位是4B。
接口原型
// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同 // vcmax 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); // vcmin 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);
参数说明
参数含义见表1 单目运算参数说明表。
参数名 |
说明 |
|---|---|
order |
支持四种模式:
|
流水类型
PIPE_V
父主题: 规约运算