ZNN——一种在多核与众核共享内存机器上训练三维卷积网络的快速可扩展算法
神经与进化计算
2016-06-21 v1 计算机视觉与模式识别
分布式、并行与集群计算
机器学习
摘要
卷积网络(ConvNets)已成为计算机视觉的流行方法。加速计算代价高的ConvNet训练十分重要。我们提出一种基于分解为一组任务的新型并行算法,其中大多数任务是卷积或FFT。将Brent定理应用于任务依赖图意味着在并行计算的PRAM模型内,对于宽网络架构,可随处理器数量实现线性加速。为在真实共享内存机器上达到此类性能,我们的算法在计算收敛于网络同一节点的卷积时采用时间局部性以减少缓存未命中,并通过几乎无等待的并发方法对收敛卷积输出求和,以减少在临界区花费的时间。我们利用公开软件包ZNN实现该算法。多核CPU基准测试显示ZNN可获得大致等于物理核数的加速比。我们还展示ZNN在众核CPU(Xeon Phi Knights Corner)上获得超过90倍加速。这些加速针对常用宽度的网络架构。ZNN算法的任务并行适合CPU,而先前算法的SIMD并行兼容GPU。通过实例,我们展示ZNN可能快于或慢于特定GPU实现,取决于网络架构、核大小、输出块密度与大小的具体细节。由于通用CPU编程相对容易,ZNN开发维护成本可能更低。
引用
@article{arxiv.1510.06706,
title = {ZNN - A Fast and Scalable Algorithm for Training 3D Convolutional Networks on Multi-Core and Many-Core Shared Memory Machines},
author = {Aleksandar Zlateski and Kisuk Lee and H. Sebastian Seung},
journal= {arXiv preprint arXiv:1510.06706},
year = {2016}
}