昇腾社区首页
中文
注册

vconv

功能说明

vector数据类型转换,缀区分不同round模式:

R: 四舍五入,偶数优先(C语言中的rint)

A: 四舍五入,优先远零值(C语言中的round)

F: 向下取整(C语言中的floor)

C: 向上取整(C语言中的ceil)

Z: 向零取整(C语言中的trunc)

O: 向奇数取整(冯·诺依曼舍入)

函数原型

// vconv_{src}2{dst}{rnd_mode} 
void vconv_bf162f32(__ubuf__ float *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_bf162s32a(__ubuf__ int32_t *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_bf162s32c(__ubuf__ int32_t *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_bf162s32f(__ubuf__ int32_t *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_bf162s32r(__ubuf__ int32_t *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_bf162s32z(__ubuf__ int32_t *dst, __ubuf__ bfloat16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

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

void vconv_f162s16a(__ubuf__ int16_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s16c(__ubuf__ int16_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s16f(__ubuf__ int16_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s16r(__ubuf__ int16_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s16z(__ubuf__ int16_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s32a(__ubuf__ int32_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s32c(__ubuf__ int32_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s32f(__ubuf__ int32_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s32r(__ubuf__ int32_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162s32z(__ubuf__ int32_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

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

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

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

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

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

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

流水类型

PIPE_V

同类型接口

void vconv_f162s8{a,c,f,r,z}(__ubuf__ int8_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f162u8{a,c,f,r,z}(__ubuf__ uint8_t *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f322bf16{a,c,f,r,z,o}(__ubuf__ bfloat16_t *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f322f32{a,c,f,r,z}(__ubuf__ float *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f322s16{a,c,f,r,z}(__ubuf__ int16_t *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f322s32{a,c,f,r,z}(__ubuf__ int32_t *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_f322s64{a,c,f,r,z}(__ubuf__ int64_t *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_s162f16{a,c,f,r,z}(__ubuf__ half *dst, __ubuf__ int16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

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

void vconv_s322f32{a,c,f,r,z}(__ubuf__ float *dst, __ubuf__ int32_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_s322s16(__ubuf__ int16_t *dst, __ubuf__ int32_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_s322s64(__ubuf__ int64_t *dst, __ubuf__ int32_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

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

void vconv_s642f32{a,c,f,r,z}(__ubuf__ float *dst, __ubuf__ int64_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_s642s32(__ubuf__ int32_t *dst, __ubuf__ int64_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

void vconv_s82f16(__ubuf__ half *dst, __ubuf__ int8_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); 

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

void vconv_vdeqs162b8h(__ubuf__ int8_t *dst, __ubuf__ int16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint8_t dstRepeatStride, uint8_t srcRepeatStride); 

void vconv_vdeqs162b8h(__ubuf__ uint8_t *dst, __ubuf__ int16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint8_t dstRepeatStride, uint8_t srcRepeatStride); 

void vconv_vdeqs162b8l(__ubuf__ int8_t *dst, __ubuf__ int16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint8_t dstRepeatStride, uint8_t srcRepeatStride); 

void vconv_vdeqs162b8l(__ubuf__ uint8_t *dst, __ubuf__ int16_t *src, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint8_t dstRepeatStride, uint8_t srcRepeatStride);