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