DSP 库
HiFi 5 信号处理库
简介
HiFi 5 NatureDSP(NDSP)库,即 NatureDSP 信号处理库,提供了大量针对 HiFi 5 DSP 的高度优化 DSP 函数。
该源代码库包含兼容 ANSI-C 语言的 C 函数,适用于通用信号处理(滤波、相关性、卷积)、数学运算及向量运算,特别针对高密度信号处理进行了优化。库同时支持定点和单精度浮点数据类型。
{DSP_SDK}/lib/lib_hifi5
中提供了预编译好的 HiFi 5 NDSP 库。如有其他需求,也可以通过下载官方仓库代码自行编译。
更多信息
官方文档:GitHub 仓库压缩包解压后的 NDSP_HiFi5/library/doc 路径下
函数支持
NDSP 库包含以下函数的实现:
FIR 滤波器及相关函数
IIR 滤波器
数学运算
复数数学运算
向量运算
矩阵运算
矩阵分解与求逆函数
拟合/插值
快速傅里叶变换
梅尔频率倒谱系数(MFCC)函数
图像处理
更多详情请参阅 Cadence 官方文档。
HiFi 5 神经网络库
简介
HiFi 5 神经网络(NN)库 是针对 HiFi 处理器优化的神经网络层及底层运算的实现。该库专注于语音音频领域,专为相关神经网络设计。
库中的底层 NN 内核针对 HiFi 优化,是构成 NN 层的基础,提供了通用简洁的接口。NN 层则基于这些底层内核实现,可接收最多四维形状的输入数据,并生成相应形状的输出。
层操作所需的权重(或系数)及偏置均存储于外部。输入、输出、权重与偏置的形状均严格遵循各层设计规范。
{DSP_SDK}/lib/xa_nnlib
中提供了预编译好的 HiFi 5 神经网络库。如有其他需求,也可以通过下载官方仓库代码自行编译。
运算支持
底层内核
矩阵向量乘法内核
卷积内核
激活函数内核
池化内核
基础运算内核
全连接内核
标准化内核
重组内核
这些内核支持权重/系数、偏置、输入和输出使用定点 8 位、16 位、单精度浮点数 (float32/f32) 和半精度浮点数 (float16/f16) 数据类型。
此外,部分内核也支持 TensorFlow (TF) 和 TensorFlowLite-Micro (TFLM) 中定义的 8 位和 16 位量化数据类型。这些数据类型对权重/系数、输入和输出使用 8 位/16 位量化值 (asym8u – 非对称 8 位无符号, asym8s – 非对称 8 位有符号, sym8s – 对称 8 位有符号)。偏置为 32 位量化值。
层
GRU 层 (8x16, 16x16 精度)
LSTM 层 (8x16, 16x16 精度)
CNN 层 (8x8, 8x16, 16x16 和 float32xfloat32 精度)
TensorFlow Lite Micro 算子
HiFi 5 NN 库底层内核可用于实现 TensorFlow Lite Micro 的一些算子。对于适用的算子,HiFi 5 NN 库支持 TensorFlow Lite Micro 中可用的两种取整模式。
更多详情请参阅 Cadence 官方文档。
加速效果
使用 HiFi 5 神经网络库可以显著提升神经网络的推理速度。
以 {DSP_SDK}/example/tflite_micro/tflm_mnist
为例:
示例 |
不使用nnlib耗时(毫秒) |
使用nnlib耗时(毫秒) |
加速比 |
---|---|---|---|
tflm_mnist |
2378 |
72 |
33 |