在多节点上运行分布式Intel Caffe
一般有2种并行模式:数据并行(Data parallelism)和模型并行(model parallelism).
在模型并行化( model parallelism )方法里,分布式系统中的不同机器负责单个网络模型的不同部分 —— 例如,神经网络模型的不同网络层被分配到不同的机器。
在数据并行化( data parallelism )方法里,不同的机器有同一个模型的多个副本,每个机器分配到数据的一部分,然后将所有机器的计算结果按照某种方式合并。
Intel® Distribution of Caffe*采用的是数据并行即: 各个节点上相同的model,不同的数据分批。
Intel® Distribution of Caffe* 采用 Intel® Machine Learning Scaling Library (MLSL)提供分布式训练,
MLSL构建在MPI之上,包含Intel MLSL Software Development Kit (SDK) and the Intel(R) MPI Library Runtime组件,
其API支持深度学习框架(Caffe*, Theano*, Torch*, etc.)
MLSL提供数据并行和模型并行,支持SGD通信模式和分布式权重更新。
带有MLSL的Intel® Distribution of Caffe* 提供2种方式的多节点训练:
- 默认方式 – Caffe负责梯度的Allreduce操作,然后每个节点会在本地完成SGD并且随后进行Allgather来完成权重增加。
- 分布式权重更新方式 -