2017-02-24 78 views
0

考虑一个简单的n层堆叠RNN(LSTM,GRU等)用于顺序预测,什么是最有效的设备布局策略(如果有多个GPU可用)?我认为如果首选将一个GPU专用于RNN的每一层,那么Softmax和损失计算又如何呢?它们应该放置在GPU还是CPU上?更重要的是,如果我们进一步增加注意机制,是否应该把注意力放在CPU上?RNN的最佳设备放置策略?

+0

您是否尝试过分析任何组合? – user2717954

回答

0

这是一个活跃的研究领域;一般来说它取决于你网络的细节。可能你想把softmax和loss放在同一个GPU上(如果它们合适的话);可能在顶层的GPU上,或者在GPU上:0。关于注意力,我不认为有一个非常明确的答案。这取决于你的关注体重的大小,等等。在这些情况下,你最好的选择就是尝试我提出的softmax/loss的两个位置。这给你一个网格搜索4个可能的位置。尝试全部并回报:)

+0

谢谢!在我开始为softmax /注意力尝试不同的设备位置之前,我尝试比较使用1个GPU与4个GPU对于多层RNN的区别。我尝试过的模型具有以下架构:1d卷积+丢失+ 4 GRU + softmax,我试图将4个GPU分配到这些层。然而,使用4个GPU实际上比1个GPU(1个GPU时间轴:[link](https://drive.google.com/open?id=0Bycn-mCLj2bvWGxsbnRva3hWN2M),4个GPU时间轴:[链接](https://drive.google.com/open?id=0Bycn-mCLj2bvZXExYlhnRE5ZRm8)) – thinkbear

+0

从时间线配置文件来看,令我困惑的是,在4 GPU版本中,在一个GPU上计算单层RNN比1-GPU版本更长的时间。有没有什么明显的可以改进的地方? – thinkbear