中文

Espresso:面向 BCNN 的高效前向传播

分布式、并行与集群计算 2018-03-08 v2 计算机视觉与模式识别 机器学习 神经与进化计算

摘要

存在许多应用场景需要优化深度神经网络 (DNN) 预测阶段的计算性能和内存占用。二元神经网络 (BDNN) 已被证明是实现此目标的有效途径。本文中,我们展示了如何使用二元表示实现卷积神经网络 (CNN)。Espresso 是一个紧凑而强大的库,用 C/CUDA 编写,在一个小于 400KB 的二进制文件中提供了 CNN 前向传播所需的所有功能,且无任何外部依赖。尽管主要设计用于利用大规模 GPU 并行性,Espresso 也为 CNN 提供了等效的 CPU 实现。Espresso 为 BCNN 提供了特殊的卷积层和全连接层,利用位打包和位运算实现高效执行。这些技术加速了矩阵乘法例程,同时减少了存储参数和激活值时的内存使用。我们通过实验表明,Espresso 显著快于现有的优化二元神经网络实现(约快 2 个数量级)。Espresso 基于 Apache 2.0 许可证发布,可在 http://github.com/fpeder/espresso 获取。

关键词

引用

@article{arxiv.1705.07175,
  title  = {Espresso: Efficient Forward Propagation for BCNNs},
  author = {Fabrizio Pedersoli and George Tzanetakis and Andrea Tagliasacchi},
  journal= {arXiv preprint arXiv:1705.07175},
  year   = {2018}
}

备注

10 pages, 4 figures