在 Cadence 音频数字信号处理器上加速 TensorFlow Lite Micro

2022 年 4 月 11 日 谷歌开发者


发布人:来自 Cadence 的 Raj Pawate 和 Google 的 Advait Jain


数字信号处理器 (DSPs) 是所有电池供电设备的重要组成部分,其提供了一种以极低功耗处理音频数据的方法。这些芯片负责运行信号处理算法,例如音频编解码器、噪声消除和波束形成等。


这些 DSPs 也越来越多地用于运行神经网络,例如唤醒词检测、语音识别和噪声抑制。启用此类应用的关键是,能够尽可能高效地执行这些神经网络。



不过,在 DSPs 上运行机器学习的产品化路径往往是临时路径。相比之下,语音、音频和视频编解码器运行国际电联 (ITU) 和 3GPP 等全球标准机构创建的压缩和解压缩算法,可解决质量测量、定点算法注意事项和互操作性等多方面的问题。


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

  • Cadence

    https://www.cadence.com/en_US/home.html


基于此,TFLM 团队与 Cadence 的音频 DSP 团队在 2019 年就此展开合作。TFLM 团队专注于利用广泛的 TensorFlow 框架,并通过解释器和参考内核开发从训练到嵌入式和 DSP 部署的平滑路径。Cadence 开发一个高度优化的软件库,称为 NeuralNet 库 (NNLIB),该库利用了其低功耗 HiFi DSPs 的 SIMD 和 VLIW 功能。起初,此合作仅包括一个 Xtensa DSP 的三个优化内核,而现已涵盖各种平台上的 50 多个内核,例如 HiFi 5、HiFi 4、HiFi 3z、Fusion F1 以及 P6 等 Vision DSPs,并包括卸载加速器(如有)的功能。


此外,我们还共同为所有针对 Cadence DSPs 进行过优化的代码添加了持续集成设置。其中包括的基础架构会对 TFLM 存储库的每个拉取请求进行测试,检测其是否通过 Tensilica 工具链的所有单元测试,该工具链具有各种 HiFix 和 Vision P6 内核。因此,我们会确保组合的 TFLM 和 NNLIB 开源软件不仅紧密集成,还具有良好的自动化测试覆盖率

  • 自动化测试覆盖率

    https://github.com/tensorflow/tflite-micro/actions/workflows/xtensa.yml?query=event%3Aschedule


性能提升


最近,我们共同为使用 int16 激活函数量化的模型添加了优化设置。尤其是在音频领域,int16 激活函数对于量化生成式模型的质量至关重要。我们希望这些经过优化的内核能够支持一种新的 ML 驱动型的音频信号处理。下表所示为实现噪音抑制神经网络所需的几个算子。我们以噪音抑制神经网络 SEANet 为例,该网络中一个变体的循环计数提升了 267 倍。

  • 使用 int16 激活函数量化

    https://tensorflow.google.cn/lite/performance/post_training_integer_quant_16x8

  • SEANet

    https://arxiv.org/abs/2008.02027


下表所示为经过优化的内核相比参考实现所取得的改进(使用 Xtensa 指令集模拟工具测量)。


算子

改进

Transpose Conv

458 倍

Conv2D

287 倍

Sub

39 倍

Add

24 倍

Leaky ReLU

18 倍

Srided_Slice

10 倍

Pad

6 倍

整个网络

267 倍


如何使用这些优化设置


所有代码均可通过 TFLite Micro GitHub 库来使用。

  • TFLite Micro

    https://github.com/tensorflow/tflite-micro


要使用 HiFi 3z 定向 TFLM 优化设置,需满足以下条件:


已使用 int16 激活函数和 int8 权重对 TensorFlow Lite (TFLite) FlatBuffer 模型进行量化


该模型使用上表中列出的一个或多个算子


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 的关键字识别器的首个示例。我们希望在此基础上进行扩展,并继续为 Tensilica Xtensa DSPs 带来经过优化的生产级的 ML 领域最新实践。

  • 首个示例

    https://github.com/tensorflow/tflite-micro/tree/1c6b50ef8b9dac1bb31dfe79679aec781666a86b/third_party/xtensa/examples/micro_speech_lstm


致谢


衷心感谢以下同事,感谢他们为此番成功合作做出的贡献。


Cadence:Manjunath CP、Bhanu Prakash Bandaru Venkata、Anirban Mandal


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


登录查看更多
1

相关内容

专知会员服务
17+阅读 · 2021年4月24日
TensorFlowLite:端侧机器学习框架
专知会员服务
30+阅读 · 2020年8月27日
【ICML2020Tutorial】机器学习信号处理,100页ppt
专知会员服务
109+阅读 · 2020年8月15日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
这位斯坦福PhD新生的论文被引数:接近4万
机器之心
1+阅读 · 2022年3月29日
TensorFlow Lite 设备端训练
TensorFlow
4+阅读 · 2021年12月20日
用 XNNPACK 加速量化推理
TensorFlow
1+阅读 · 2021年9月10日
社区分享 | 在物联网设备中运行 TensorFlow
TensorFlow
2+阅读 · 2021年8月13日
使用 TensorFlow Lite 简化移动端目标检测
TensorFlow
0+阅读 · 2021年8月4日
社区分享 | 在 Windows 下编译和使用 TensorFlow Lite
使用 TF Micro 和 SensiML 构建 TinyML 应用
TensorFlow
3+阅读 · 2021年6月21日
通过集成 XNNPACK 实现推理速度飞跃
TensorFlow
26+阅读 · 2020年7月30日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
0+阅读 · 2022年4月20日
On Feature Normalization and Data Augmentation
Arxiv
14+阅读 · 2020年2月25日
VIP会员
相关VIP内容
专知会员服务
17+阅读 · 2021年4月24日
TensorFlowLite:端侧机器学习框架
专知会员服务
30+阅读 · 2020年8月27日
【ICML2020Tutorial】机器学习信号处理,100页ppt
专知会员服务
109+阅读 · 2020年8月15日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
相关资讯
这位斯坦福PhD新生的论文被引数:接近4万
机器之心
1+阅读 · 2022年3月29日
TensorFlow Lite 设备端训练
TensorFlow
4+阅读 · 2021年12月20日
用 XNNPACK 加速量化推理
TensorFlow
1+阅读 · 2021年9月10日
社区分享 | 在物联网设备中运行 TensorFlow
TensorFlow
2+阅读 · 2021年8月13日
使用 TensorFlow Lite 简化移动端目标检测
TensorFlow
0+阅读 · 2021年8月4日
社区分享 | 在 Windows 下编译和使用 TensorFlow Lite
使用 TF Micro 和 SensiML 构建 TinyML 应用
TensorFlow
3+阅读 · 2021年6月21日
通过集成 XNNPACK 实现推理速度飞跃
TensorFlow
26+阅读 · 2020年7月30日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员