ZNNi - 最大化 3D 卷积网络在多核 CPU 与 GPU 上的推理吞吐量
分布式、并行与集群计算
2016-06-21 v1 机器学习
摘要
滑动窗口卷积网络 (ConvNets) 已成为解决诸如图像分割以及目标检测与定位等计算机视觉问题的流行方法。在此,我们考虑推理问题,即应用先前训练的 ConvNet,并侧重于 3D 图像。我们的目标是最大化吞吐量,其定义为单位时间内计算的平均输出体素数量。在其他条件相同的情况下,处理更大的图像往往会提高吞吐量,因为在图像边界上浪费的计算比例更小。由此可知,如果一个表面上较慢的算法能够在可用 RAM 的限制内处理更大的图像,它最终可能具有更高的吞吐量。我们引入了用于卷积层和池化层的新型 CPU 和 GPU 原语,旨在最小化内存开销。这些原语包括基于高效剪枝 FFT 的卷积。我们的理论分析和实证测试揭示了若干有趣的发现。对于某些 ConvNet 架构,我们基于 FFT 的 GPU 原语优于 cuDNN,而这些原语又可能被我们的 CPU 原语超越。CPU 之所以能够实现更高的吞吐量,是因为它能快速访问更多的 RAM。一种让 GPU 访问主机 RAM 的新型原语可以显著提高 GPU 吞吐量。最后,一种 CPU-GPU 算法实现了所有方法中最高的吞吐量,比其他公开可用的滑动窗口 3D ConvNets 实现高出 10 倍或更多。我们所有的代码均已作为开源项目发布。
引用
@article{arxiv.1606.05688,
title = {ZNNi - Maximizing the Inference Throughput of 3D Convolutional Networks on Multi-Core CPUs and GPUs},
author = {Aleksandar Zlateski and Kisuk Lee and H. Sebastian Seung},
journal= {arXiv preprint arXiv:1606.05688},
year = {2016}
}