中文

将硬件构建模块暴露给机器学习框架

机器学习 2020-04-14 v1 机器学习

摘要

大量应用需要利用机器学习方法实现高吞吐量与低延迟算法。这种实时处理的需求可见于众多行业,从开发基于神经网络的预失真器以增强移动宽带,到 CERN 为粒子物理主要科学工作设计基于 FPGA 的触发器。在本论文中,我们探讨若将对神经元视为形如 f:BIBOf:B^{I} \rightarrow B^{O} 的独特布尔函数(其中 B={0,1}B = \{0,1\})时,小众领域如何能大幅受益。我们聚焦于如何设计补充此种神经元视角的拓扑结构、如何自动化此类神经网络设计策略,以及此类网络在 Xilinx FPGA 上的推理。将神经元视为独特布尔函数设计拓扑时会带来主要的硬件约束。根本上,由于输入位长每增加一位可能的排列组合翻倍,在硬件上实现此类拓扑会对神经元的“扇入”位数施加严格限制。我们通过探索实现稀疏性的不同方法并研究激活量化来解决这一限制。此外,我们开发了一个支持以自定义稀疏性与量化训练神经网络的库。该库还支持将训练好的稀疏量化网络从 PyTorch 转换为 VERILOG 代码,随后使用 Vivado 进行综合,这些均属于 LogicNet 工具流的一部分。为加速原型设计,我们还支持计算任意给定拓扑的最坏情况硬件开销。我们希望对极度稀疏量化神经网络行为的见解能为研究界所用,并由此使人们能够使用 LogicNet 设计流部署高效神经网络。

关键词

引用

@article{arxiv.2004.05898,
  title  = {Exposing Hardware Building Blocks to Machine Learning Frameworks},
  author = {Yash Akhauri},
  journal= {arXiv preprint arXiv:2004.05898},
  year   = {2020}
}

备注

62 pages, 22 figures, 14 tables