DSP 库

HiFi 5 信号处理库

简介

HiFi 5 NatureDSP(NDSP)库,即 NatureDSP 信号处理库,提供了大量针对 HiFi 5 DSP 的高度优化 DSP 函数。

该源代码库包含兼容 ANSI-C 语言的 C 函数,适用于通用信号处理(滤波、相关性、卷积)、数学运算及向量运算,特别针对高密度信号处理进行了优化。库同时支持定点和单精度浮点数据类型。

{DSP_SDK}/lib/lib_hifi5 中提供了预编译好的 HiFi 5 NDSP 库。如有其他需求,也可以通过下载官方仓库代码自行编译。

更多信息

函数支持

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