Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

BFP API 快速访问链接

下表列出了块浮点数(Block Floating-Point,BFP)API的函数。"EW" 列表示操作是否按元素执行。

"签名" 列旨在快速传达操作的概念输入和输出的类型。这些签名只用于表明有多少个(概念性的)输入和输出,以及它们的维度。

这些函数本身通常会比这些签名所示的取更多的参数。查看函数的完整文档以获取更详细的信息。

签名中使用了以下符号:

符号描述
S\mathbb{S}标量输入或输出值。
V\mathbb{V}向量值输入或输出。
M\mathbb{M}矩阵值输入或输出。
\varnothing占位符,表示没有输入或输出。

例如,操作签名 (V×V×S)V(\mathbb{V \times V \times S}) \to \mathbb{V} 表示操作接收两个向量输入和一个标量输入,输出是一个向量。

32位BFP API快速访问链接

函数EW签名简述
bfp_s32_init()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}初始化BFP(静态)
bfp_s32_alloc()V\varnothing \to \mathbb{V}初始化BFP(动态)
bfp_s32_dealloc()V\mathbb{V} \to \mathbb{\varnothing}释放BFP与其占用的内存
bfp_s32_set()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}设置所有元素的值
bfp_s32_use_exponent()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}强制使用指定的指数
bfp_s32_headroom()VS\mathbb{V} \to \mathbb{S}获取头空间(headroom)
bfp_s32_shl()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}对尾数进行左移
bfp_s32_add()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量加法
bfp_s32_add_scalar()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}向量与标量加法
bfp_s32_sub()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量减法
bfp_s32_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量乘法
bfp_s32_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}向量乘法累加(Multiply-Accumulate)
bfp_s32_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}向量乘法累加取负(Negated Multiply-Accumulate)
bfp_s32_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}向量与标量乘法
bfp_s32_abs()xVV\mathbb{V} \to \mathbb{V}向量元素取绝对值
bfp_s32_sum()VS\mathbb{V} \to \mathbb{S}向量元素求和
bfp_s32_dot()(V×V)S(\mathbb{V \times V}) \to \mathbb{S}向量内积
bfp_s32_clip()x(V×S×S)V(\mathbb{V \times S \times S}) \to \mathbb{V}对向量元素进行裁剪
bfp_s32_rect()xVV\mathbb{V} \to \mathbb{V}对向量元素进行整流
bfp_s32_to_bfp_s16()VV\mathbb{V} \to \mathbb{V}将32位向量转换为16位向量
bfp_s32_sqrt()xVV\mathbb{V} \to \mathbb{V}向量元素求平方根
bfp_s32_inverse()xVV\mathbb{V} \to \mathbb{V}向量元素求倒数
bfp_s32_abs_sum()VS\mathbb{V} \to \mathbb{S}向量元素绝对值求和
bfp_s32_mean()VS\mathbb{V} \to \mathbb{S}计算向量平均值
bfp_s32_energy()VS\mathbb{V} \to \mathbb{S}计算向量能量
bfp_s32_rms()VS\mathbb{V} \to \mathbb{S}计算向量均方根值
bfp_s32_max()VS\mathbb{V} \to \mathbb{S}找出向量中的最大元素
bfp_s32_min()VS\mathbb{V} \to \mathbb{S}找出向量中的最小元素
bfp_s32_max_elementwise()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}按元素计算向量最大值
bfp_s32_min_elementwise()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}按元素计算向量最小值
bfp_s32_argmax()VS\mathbb{V} \to \mathbb{S}找出向量中最大元素的索引
bfp_s32_argmin()VS\mathbb{V} \to \mathbb{S}找出向量中最小元素的索引
bfp_s32_convolve_valid()(V×V)V(\mathbb{V \times V}) \to \mathbb{V}与卷积核进行卷积("valid"模式)
bfp_s32_convolve_same()(V×V)V(\mathbb{V \times V}) \to \mathbb{V}卷积("same"模式)

16位BFP API快速访问链接

函数EW签名简介
bfp_s16_init()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}初始化BFP(静态)
bfp_s16_alloc()V\varnothing \to \mathbb{V}初始化BFP(动态)
bfp_s16_dealloc()V\mathbb{V} \to \mathbb{\varnothing}释放BFP与其占用的内存
bfp_s16_set()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}设置所有元素
bfp_s16_use_exponent()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}强制指数
bfp_s16_headroom()VS\mathbb{V} \to \mathbb{S}获取头空间
bfp_s16_shl()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}移位尾数
bfp_s16_add()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量相加
bfp_s16_add_scalar()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}标量相加
bfp_s16_sub()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量相减
bfp_s16_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}向量相乘
bfp_s16_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}乘累加
bfp_s16_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}取反乘累加
bfp_s16_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}标量乘法
bfp_s16_abs()xVV\mathbb{V} \to \mathbb{V}绝对值
bfp_s16_sum()VS\mathbb{V} \to \mathbb{S}求和
bfp_s16_dot()(V×V)S(\mathbb{V \times V}) \to \mathbb{S}内积
bfp_s16_clip()x(V×S×S)V(\mathbb{V \times S \times S}) \to \mathbb{V}裁剪范围
bfp_s16_rect()xVV\mathbb{V} \to \mathbb{V}矩形化元素
bfp_s16_to_bfp_s32()xVV\mathbb{V} \to \mathbb{V}转换为32位
bfp_s16_sqrt()xVV\mathbb{V} \to \mathbb{V}平方根
bfp_s16_inverse()xVV\mathbb{V} \to \mathbb{V}倒数
bfp_s16_abs_sum()VV\mathbb{V} \to \mathbb{V}绝对值求和
bfp_s16_mean()VV\mathbb{V} \to \mathbb{V}向量均值
bfp_s16_energy()VS\mathbb{V} \to \mathbb{S}向量能量
bfp_s16_max()VS\mathbb{V} \to \mathbb{S}最大元素
bfp_s16_min()VS\mathbb{V} \to \mathbb{S}最小元素
bfp_s16_max_elementwise()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}逐元素最大值
bfp_s16_min_elementwise()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}逐元素最小值
bfp_s16_argmax()VS\mathbb{V} \to \mathbb{S}最大元素索引
bfp_s16_argmin()VS\mathbb{V} \to \mathbb{S}最小元素索引
bfp_s16_accumulate()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}逐元素累加

复数32位BFP API快速访问链接

函数EW签名简介
bfp_complex_s32_init()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}初始化BFP(静态)
bfp_complex_s32_alloc()V\varnothing \to \mathbb{V}初始化BFP(动态)
bfp_complex_s32_dealloc()V\mathbb{V} \to \mathbb{\varnothing}释放BFP与其占用的内存
bfp_complex_s32_set()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}设置所有元素
bfp_complex_s32_use_exponent()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}强制指数
bfp_complex_s32_headroom()VS\mathbb{V} \to \mathbb{S}获取头空间
bfp_complex_s32_real_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}实向量乘法
bfp_complex_s32_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量乘法
bfp_complex_s32_conj_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}共轭复向量乘法
bfp_complex_s32_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}复向量乘累加
bfp_complex_s32_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}取反复向量乘累加
bfp_complex_s32_conj_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}共轭复向量乘累加
bfp_complex_s32_conj_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}取反共轭复向量乘累加
bfp_complex_s32_real_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}实标量乘法
bfp_complex_s32_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}复标量乘法
bfp_complex_s32_add()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量相加
bfp_complex_s32_add_scalar()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}复标量相加
bfp_complex_s32_sub()(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量相减
bfp_complex_s32_to_bfp_complex_s16()xVV\mathbb{V} \to \mathbb{V}转换为16位
bfp_complex_s32_squared_mag()xVV\mathbb{V} \to \mathbb{V}平方幅度
bfp_complex_s32_mag()xVV\mathbb{V} \to \mathbb{V}幅度
bfp_complex_s32_sum()VS\mathbb{V} \to \mathbb{S}向量求和
bfp_complex_s32_conjugate()xVV\mathbb{V} \to \mathbb{V}复共轭
bfp_complex_s32_energy()VS\mathbb{V} \to \mathbb{S}向量能量
bfp_complex_s32_make()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}由实部和虚部构造复数
bfp_complex_s32_real_part()xVV\mathbb{V} \to \mathbb{V}实部
bfp_complex_s32_imag_part()xVV\mathbb{V} \to \mathbb{V}虚部

复数16位BFP API快速访问链接

函数EW签名简介
bfp_complex_s16_init()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}初始化BFP(静态)
bfp_complex_s16_alloc()V\varnothing \to \mathbb{V}初始化BFP(动态)
bfp_complex_s16_dealloc()V\mathbb{V} \to \mathbb{\varnothing}释放BFP与其占用的内存
bfp_complex_s16_set()x(V×S)V(\mathbb{V \times S}) \to \mathbb{V}设置所有元素
bfp_complex_s16_use_exponent()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}强制指数
bfp_complex_s16_headroom()VS\mathbb{V} \to \mathbb{S}获取头空间
bfp_complex_s16_real_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}实向量乘法
bfp_complex_s16_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量乘法
bfp_complex_s16_conj_mul()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}共轭复向量乘法
bfp_complex_s16_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}复向量乘累加
bfp_complex_s16_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}取反复向量乘累加
bfp_complex_s16_conj_macc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}共轭复向量乘累加
bfp_complex_s16_conj_nmacc()x(V×V×V)V(\mathbb{V \times V \times V}) \to \mathbb{V}取反共轭复向量乘累加
bfp_complex_s16_real_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}实标量乘法
bfp_complex_s16_scale()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}复标量乘法
bfp_complex_s16_add()x(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量相加
bfp_complex_s16_add_scalar()(V×S)V(\mathbb{V \times S}) \to \mathbb{V}复标量相加
bfp_complex_s16_sub()(V×V)V(\mathbb{V \times V}) \to \mathbb{V}复向量相减
bfp_complex_s16_to_bfp_complex_s32()xVV\mathbb{V} \to \mathbb{V}转换为32位
bfp_complex_s16_squared_mag()xVV\mathbb{V} \to \mathbb{V}平方幅度
bfp_complex_s16_sum()VS\mathbb{V} \to \mathbb{S}向量求和
bfp_complex_s16_mag()xVV\mathbb{V} \to \mathbb{V}幅度
bfp_complex_s16_conjugate()xVV\mathbb{V} \to \mathbb{V}复共轭
bfp_complex_s16_energy()VS\mathbb{V} \to \mathbb{S}向量能量