在 Cadence 音频数字信号处理器上加速 TensorFlow Lite Micro
2022 年 3 月 24 日

由 Raj Pawate (Cadence) 和 Advait Jain (Google) 发布

数字信号处理器 (DSP) 是任何电池供电设备的关键组成部分,提供了一种以极低功耗处理音频数据的方式。这些芯片运行信号处理算法,如音频编解码器、降噪和波束成形。

越来越多的 DSP 也被用于运行神经网络,例如唤醒词检测、语音识别和降噪。使这些应用程序成为可能的关键部分是能够尽可能高效地执行这些神经网络。

然而,在 DSP 上进行机器学习的产品化路径通常是临时性的。相比之下,语音、音频和视频编解码器有像 ITU 和 3GPP 这样的全球标准机构,它们创建用于压缩和解压缩的算法,解决质量测量、定点运算考虑和互操作性的几个方面。

TensorFlow Lite Micro (TFLM) 是一个通用的开源推理框架,可在嵌入式目标(包括 DSP)上运行机器学习模型。类似地,Cadence 在 PPA 优化的软硬件平台方面投入巨资,例如 Cadence Tensilica HiFi DSP 系列(用于音频)和 Cadence Tensilica Vision DSP 系列(用于视觉)。

Google 和 Cadence - 为边缘 AI 赋能的多年合作关系

这是 TFLM 团队与 Cadence 音频 DSP 团队合作的起源,始于 2019 年。TFLM 团队专注于利用广泛的 TensorFlow 框架,并通过解释器和参考内核为嵌入式和 DSP 部署开发一条平滑的路径。Cadence 正在开发一个高度优化的软件库,称为 NeuralNet 库 (NNLIB),它利用了其低功耗 HiFi DSP 的 SIMD 和 VLIW 功能。这种合作始于针对一个 Xtensa DSP 的三个优化内核,现在已涵盖 50 多个内核,覆盖各种平台,如 HiFi 5、HiFi 4、HiFi 3z、Fusion F1 以及 Vision DSP(如 P6),并包括在可用时卸载到加速器的功能。

此外,我们还合作添加了针对 Cadence DSP 的所有优化代码的持续集成。这包括测试每个 TFLM 存储库的拉取请求是否通过了针对 Tensilica 工具链的各种 HiFix 和 Vision P6 内核的所有单元测试的基础设施。因此,我们确保组合的 TFLM 和 NNLIB 开源软件既紧密集成,又具有良好的自动化测试覆盖率

性能改进

最近,我们合作添加了针对使用 int16 激活量化的模型的优化。特别是在音频领域,int16 激活对于量化生成模型的质量至关重要。我们预计这些优化的内核将开启一类新的 ML 驱动的音频信号处理。下表显示了一些用于实现降噪神经网络的操作符。我们展示了一种 SEANet 变体的循环计数改进 267 倍,SEANet 是一个降噪神经网络示例。

下表显示了使用 Xtensa 指令集模拟工具测量的优化内核相对于参考实现的改进。

操作符

改进

转置卷积

458 倍

Conv2D

287 倍

39 倍

24 倍

Leaky ReLU

18 倍

Srided_Slice

10 倍

填充

6 倍

整个网络

267 倍

如何使用这些优化

所有代码都可以在 TFLite Micro GitHub 存储库中使用。

要使用针对 HiFi 3z 的 TFLM 优化,需要满足以下条件

  • TensorFlow Lite (TFLite) flatbuffer 模型使用 int16 激活和 int8 权重量化
  • 它使用上表中列出的一个或多个操作符
  • TFLM 使用 OPTIMIZED_KERNEL_DIR=xtensa 编译

例如,您可以使用以下命令运行带参考 C++ 代码的 Conv2D 内核集成测试

make -f tensorflow/lite/micro/tools/make/Makefile TARGET=xtensa TARGET_ARCH=hifi4 XTENSA_CORE= test_integration_tests_seanet_conv

并通过添加 OPTIMIZED_KERNEL_DIR=xtensa 将其与优化内核进行比较

make -f tensorflow/lite/micro/tools/make/Makefile TARGET=xtensa TARGET_ARCH=hifi4 OPTIMIZED_KERNEL_DIR=xtensa XTENSA_CORE= test_integration_tests_seanet_conv

展望未来

虽然目前的工作主要集中在卷积神经网络上,但 Google 和 Cadence 也在共同开发优化的 LSTM 操作符,并发布了第一个基于 LSTM 的关键词识别器示例。我们预计将在此基础上进行扩展,并继续将 AI/ML 最新发展的优化和可用于生产的实现带到 Tensilica Xtensa DSP。

致谢

我们要感谢许多同事为这次合作取得成功做出了贡献。

Cadence: int16 优化:Manjunath CP、Bhanu Prakash Venkata、Anirban Mandal LSTM 实现:Niranjan Yadla、Lukman Rahumathulla、Manjunath CP、Pramodkumar Surana、Arjun Medinakere NNLIB 优化:Vijay Pawar、Prasad Nikam、Harshavardhan、Mayur Jagtap、Raj Pawate

Google: Advait Jain、Deqiang Chen、Lawrence Chan、Marco Tagliasacchi、Nat Jeffries、Nick Kreeger、Pete Warden、Rocky Rhodes、Ting Yan、Yunpeng Li、Victor Ungureanu

下一篇文章
Accelerating TensorFlow Lite Micro on Cadence Audio Digital Signal Processors

- 由 Raj Pawate (Cadence) 和 Advait Jain (Google) 发布 数字信号处理器 (DSP) 是任何电池供电设备的关键组成部分,提供了一种以极低功耗处理音频数据的方式。这些芯片运行信号处理算法,如音频编解码器、降噪和波束成形。越来越多的 DSP 也被用于运行神经网络,例如唤醒词检测…